+
    i  c                   s   R t Rt. ROt^ RIt^ RIt^ R	IHt ^ R
IHtHtH	t	H
t
HtHtHtHtHtHtHtHtHtHtHt ^ t^t^t ! R R]P2                  ]P4                  R7      t ! R R]P8                  ]4      t ! R R]P<                  ]4      t ! R R]P@                  ]4      t!]PE                  ]4       ]]]]]3 F  t#]PE                  ]#4       K  	  ]]3 F  t#]!PE                  ]#4       K  	  A# ^ RIH$t$ ]PE                  ]$4       ]&! ]'](,          4      t) ! R R]P4                  R7      t* ! R R]P4                  R7      t+R#   ]% d     LFi ; i)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>IOBase	RawIOBaseBufferedIOBase
TextIOBaseReaderWriterN)_check_methods)DEFAULT_BUFFER_SIZEBlockingIOErrorUnsupportedOperationopen	open_codeFileIOBytesIOStringIOBufferedReaderBufferedWriterBufferedRWPairBufferedRandomIncrementalNewlineDecodertext_encodingTextIOWrapperc                   sB    ] tR t^Gt]P
                  P                  tRtR# )r     N)__name__
__module____qualname____firstlineno___io_IOBase__doc____static_attributes__r       /usr/lib64/python3.14/io.pyr    r    G   s    kk!!Gr   )Z	metaclassc                   sB    ] tR t^Jt]P
                  P                  tRtR# )r   r   N)r   r   r   r   r   
_RawIOBaser   r   r   r   r    r   r   J   s    nn$$Gr   c                   sB    ] tR t^Mt]P
                  P                  tRtR# )r   r   N)r   r   r   r   r   _BufferedIOBaser   r   r   r   r    r   r   M   s    !!))Gr   c                   sB    ] tR t^Pt]P
                  P                  tRtR# )r   r   N)r   r   r   r   r   _TextIOBaser   r   r   r   r    r   r   P   s    oo%%Gr   )_WindowsConsoleIOc                   sp   a  ] tR t^kt o RtRt]P                  RR l4       t]	R 4       t
]	! ]4      tRtV tR# )r   zUProtocol for simple I/O reader instances.

This protocol only supports blocking I/O.
c                   R# )z~Read data from the input stream and return it.

If *size* is specified, at most *size* items (bytes/characters) will be
read.
Nr   )selfZsize   ""r    readZReader.reads       r   c                :    V \         J d   \        VR 4      # \        # )r(   )r   r   NotImplementedZclsZC   &&r    __subclasshook__ZReader.__subclasshook__{   s    &=!!V,,r   r   N).)r   r   r   r   r   	__slots__abcabstractmethodr(   classmethodr.   GenericAlias__class_getitem__r   __classdictcell__Z__classdict__   @r    r   r   k   sJ     
 I   
 $L1r   c                   sl   a  ] tR t^t o RtRt]P                  R 4       t]	R 4       t
]	! ]4      tRtV tR# )r   zUProtocol for simple I/O writer instances.

This protocol only supports blocking I/O.
c               r%   )zIWrite *data* to the output stream and return the number of items written.Nr   )r&   Zdatar'   r    writeZWriter.write   r)   r   c                r*   )r8   )r   r   r+   r,   r-   r    r.   ZWriter.__subclasshook__   s    &=!!W--r   r   N)r   r   r   r   r   r/   r0   r1   r8   r2   r.   r3   r4   r   r5   r6   r7   r    r   r      sL     
 IX X  
 $L1r   )r   r
   r   r    r   r   r   r   r   r   r   r   r   r   r   r	   SEEK_SETSEEK_CURSEEK_ENDr   r   r   r   r   ),r   Z
__author__Z__all__r   r0   Z_collections_abcr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r9   r:   r;   r   ZABCMetar    r!   r   r"   r   r#   r   ZregisterZklassr$   ZImportErrorZtypeZlistZintr3   r   r   r   r   r    <module>r<      sV  !H8
  
 +J J J J J 
"S[[CKK "% %*S((& *&& & 
  6 ~~~EE" &E '	*% () DI2s{{ 222s{{ 2K  		s   0E EE