home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / OpenOffice / Apache_OpenOffice_4.1.1_Win_x86_install_fr.exe / openoffice1.cab / io.py < prev    next >
Text File  |  2014-07-29  |  3KB  |  90 lines

  1. """The io module provides the Python interfaces to stream handling. The
  2. builtin open function is defined in this module.
  3.  
  4. At the top of the I/O hierarchy is the abstract base class IOBase. It
  5. defines the basic interface to a stream. Note, however, that there is no
  6. separation between reading and writing to streams; implementations are
  7. allowed to raise an IOError if they do not support a given operation.
  8.  
  9. Extending IOBase is RawIOBase which deals simply with the reading and
  10. writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide
  11. an interface to OS files.
  12.  
  13. BufferedIOBase deals with buffering on a raw byte stream (RawIOBase). Its
  14. subclasses, BufferedWriter, BufferedReader, and BufferedRWPair buffer
  15. streams that are readable, writable, and both respectively.
  16. BufferedRandom provides a buffered interface to random access
  17. streams. BytesIO is a simple stream of in-memory bytes.
  18.  
  19. Another IOBase subclass, TextIOBase, deals with the encoding and decoding
  20. of streams into text. TextIOWrapper, which extends it, is a buffered text
  21. interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO
  22. is a in-memory stream for text.
  23.  
  24. Argument names are not part of the specification, and only the arguments
  25. of open() are intended to be used as keyword arguments.
  26.  
  27. data:
  28.  
  29. DEFAULT_BUFFER_SIZE
  30.  
  31.    An int containing the default buffer size used by the module's buffered
  32.    I/O classes. open() uses the file's blksize (as obtained by os.stat) if
  33.    possible.
  34. """
  35. # New I/O library conforming to PEP 3116.
  36.  
  37. __author__ = ("Guido van Rossum <guido@python.org>, "
  38.               "Mike Verdone <mike.verdone@gmail.com>, "
  39.               "Mark Russell <mark.russell@zen.co.uk>, "
  40.               "Antoine Pitrou <solipsis@pitrou.net>, "
  41.               "Amaury Forgeot d'Arc <amauryfa@gmail.com>, "
  42.               "Benjamin Peterson <benjamin@python.org>")
  43.  
  44. __all__ = ["BlockingIOError", "open", "IOBase", "RawIOBase", "FileIO",
  45.            "BytesIO", "StringIO", "BufferedIOBase",
  46.            "BufferedReader", "BufferedWriter", "BufferedRWPair",
  47.            "BufferedRandom", "TextIOBase", "TextIOWrapper",
  48.            "UnsupportedOperation", "SEEK_SET", "SEEK_CUR", "SEEK_END"]
  49.  
  50.  
  51. import _io
  52. import abc
  53.  
  54. from _io import (DEFAULT_BUFFER_SIZE, BlockingIOError, UnsupportedOperation,
  55.                  open, FileIO, BytesIO, StringIO, BufferedReader,
  56.                  BufferedWriter, BufferedRWPair, BufferedRandom,
  57.                  IncrementalNewlineDecoder, TextIOWrapper)
  58.  
  59. OpenWrapper = _io.open # for compatibility with _pyio
  60.  
  61. # for seek()
  62. SEEK_SET = 0
  63. SEEK_CUR = 1
  64. SEEK_END = 2
  65.  
  66. # Declaring ABCs in C is tricky so we do it here.
  67. # Method descriptions and default implementations are inherited from the C
  68. # version however.
  69. class IOBase(_io._IOBase):
  70.     __metaclass__ = abc.ABCMeta
  71.  
  72. class RawIOBase(_io._RawIOBase, IOBase):
  73.     pass
  74.  
  75. class BufferedIOBase(_io._BufferedIOBase, IOBase):
  76.     pass
  77.  
  78. class TextIOBase(_io._TextIOBase, IOBase):
  79.     pass
  80.  
  81. RawIOBase.register(FileIO)
  82.  
  83. for klass in (BytesIO, BufferedReader, BufferedWriter, BufferedRandom,
  84.               BufferedRWPair):
  85.     BufferedIOBase.register(klass)
  86.  
  87. for klass in (StringIO, TextIOWrapper):
  88.     TextIOBase.register(klass)
  89. del klass
  90.