# pydicom.filebase.DicomBytesIO

class pydicom.filebase.DicomBytesIO(initial_bytes: bytes | bytearray | memoryview = b'')

  Wrapper for `io.BytesIO` to simplify encoding/decoding DICOM datasets.

  See also

  `DicomIO`, `DicomFileLike`

  __init__(initial_bytes: bytes | bytearray | memoryview = b'') → None

    Create a new DicomBytesIO instance.

    Parameters:

      buffer (bytes | bytearray | memoryview, optional) – The buffer to write to or read from, default is an empty buffer.

  Methods

  `__init__`([initial_bytes]) | Create a new DicomBytesIO instance.
  `close`(*args, **kwargs) | Close the buffer (if possible)
  `read`([size]) | Read up to size bytes from the buffer and return them.
  `read_UL`() | Return a UL value read from the buffer.
  `read_US`() | Return a US value read from the buffer.
  `read_exact`(length[, nr_retries]) | Return length bytes read from the buffer.
  `read_tag`() | Return a DICOM tag value read from the buffer.
  `seek`(offset[, whence]) | Change the buffer position to the given byte offset, relative to the position indicated by whence and return the new absolute position.
  `tell`() | Return the current stream position of the buffer
  `write`(b, /) | Write the bytes-like object b to the buffer and return the number of bytes written.
  `write_UL`(val) | Write a UL value to the buffer.
  `write_US`(val) | Write a US value to the buffer.
  `write_tag`(tag) | Write a DICOM tag to the buffer.

  Attributes

  `is_implicit_VR` | Get/set the VR mode for encoding/decoding.
  `is_little_endian` | Get/set the endianness for encoding/decoding, `True` for little endian and `False` for big endian.
  `name` | Return the value of the `parent`'s `name` attribute, or `None` if no such attribute.
  `parent` | Return the buffer object being wrapped.

  close(*args: Any, **kwargs: Any) → Any

    Close the buffer (if possible)

  property is_implicit_VR: bool

    Get/set the VR mode for encoding/decoding. `True` for implicit VR and `False` for explicit VR.

  property is_little_endian: bool

    Get/set the endianness for encoding/decoding, `True` for little endian and `False` for big endian.

  property name: str | None

    Return the value of the `parent`’s `name` attribute, or `None` if no such attribute.

  property parent: ReadableBuffer | WriteableBuffer

    Return the buffer object being wrapped.

  read(size: int = -1, /) → bytes

    Read up to size bytes from the buffer and return them. If size is unspecified, all bytes until EOF are returned.

    Fewer than size bytes may be returned if the operating system call returns fewer than size bytes.

  read_UL() → int

    Return a UL value read from the buffer.

  read_US() → int

    Return a US value read from the buffer.

  read_exact(length: int, nr_retries: int = 3) → bytes

    Return length bytes read from the buffer.

    Parameters:

      - length (int) – The number of bytes to be read. If `None` (default) then read all the bytes available.

      - nr_retries (int, optional) – The number of tries to read data when the number of bytes read from the buffer is less than length. Default `3`.

    Returns:

      The read data.

    Return type:

      bytes

    Raises:

      EOFError – If unable to read length bytes.

  read_tag() → tuple[int, int]

    Return a DICOM tag value read from the buffer.

  seek(offset: int, whence: int = 0, /) → int

    Change the buffer position to the given byte offset, relative to the position indicated by whence and return the new absolute position.

  tell() → int

    Return the current stream position of the buffer

  write(b: bytes | bytearray | memoryview, /) → int

    Write the bytes-like object b to the buffer and return the number of bytes written.

  write_UL(val: int) → None

    Write a UL value to the buffer.

  write_US(val: int) → None

    Write a US value to the buffer.

  write_tag(tag: int) → None

    Write a DICOM tag to the buffer.