
    Rh                         d Z dZg dZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ de_        dZdZdZ G d	 d
ej0                  ej2                        Z G d dej6                  e      Z G d dej:                  e      Z G d dej>                  e      Z ejC                  e
       eeeeefD ]  Z"ejC                  e"        eefD ]  Z"e jC                  e"        ["	 ddlm#Z# ejC                  e#       y# e$$ r Y yw xY w)a  The io module provides the Python interfaces to stream handling. The
builtin open function is defined in this module.

At the top of the I/O hierarchy is the abstract base class IOBase. It
defines the basic interface to a stream. Note, however, that there is no
separation between reading and writing to streams; implementations are
allowed to raise an OSError if they do not support a given operation.

Extending IOBase is RawIOBase which deals simply with the reading and
writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide
an interface to OS files.

BufferedIOBase deals with buffering on a raw byte stream (RawIOBase). Its
subclasses, BufferedWriter, BufferedReader, and BufferedRWPair buffer
streams that are readable, writable, and both respectively.
BufferedRandom provides a buffered interface to random access
streams. BytesIO is a simple stream of in-memory bytes.

Another IOBase subclass, TextIOBase, deals with the encoding and decoding
of streams into text. TextIOWrapper, which extends it, is a buffered text
interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO
is an in-memory stream for text.

Argument names are not part of the specification, and only the arguments
of open() are intended to be used as keyword arguments.

data:

DEFAULT_BUFFER_SIZE

   An int containing the default buffer size used by the module's buffered
   I/O classes. open() uses the file's blksize (as obtained by os.stat) if
   possible.
zGuido van Rossum <guido@python.org>, Mike Verdone <mike.verdone@gmail.com>, Mark Russell <mark.russell@zen.co.uk>, Antoine Pitrou <solipsis@pitrou.net>, Amaury Forgeot d'Arc <amauryfa@gmail.com>, Benjamin Peterson <benjamin@python.org>)BlockingIOErroropen	open_codeIOBase	RawIOBaseFileIOBytesIOStringIOBufferedIOBaseBufferedReaderBufferedWriterBufferedRWPairBufferedRandom
TextIOBaseTextIOWrapperUnsupportedOperationSEEK_SETSEEK_CURSEEK_ENDDEFAULT_BUFFER_SIZEtext_encodingIncrementalNewlineDecoder    N)r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   io      c                   8    e Zd Zej                  j
                  Zy)r   N)__name__
__module____qualname___io_IOBase__doc__     /usr/lib/python3.12/io.pyr   r   H   s    kk!!Gr$   r   )	metaclassc                   8    e Zd Zej                  j
                  Zy)r   N)r   r   r   r    
_RawIOBaser"   r#   r$   r%   r   r   K   s    nn$$Gr$   r   c                   8    e Zd Zej                  j
                  Zy)r
   N)r   r   r   r    _BufferedIOBaser"   r#   r$   r%   r
   r
   N   s    !!))Gr$   r
   c                   8    e Zd Zej                  j
                  Zy)r   N)r   r   r   r    _TextIOBaser"   r#   r$   r%   r   r   Q   s    oo%%Gr$   r   )_WindowsConsoleIO)%r"   
__author____all__r    abcr   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r!   ABCMetar   r(   r   r*   r
   r,   r   registerklassr-   ImportErrorr#   r$   r%   <module>r5      s9  !H8
P  
J J J J J #'   
"S[[CKK "% %*S((& *&& & 
  6 ~~~ #EE"# & E	*% ()  		s   -D DD