Low-level file object. Supports reading and writing. It is used instead of a regular file object for streaming access.
| 301 | # internal stream interface |
| 302 | #--------------------------- |
| 303 | class _LowLevelFile: |
| 304 | """Low-level file object. Supports reading and writing. |
| 305 | It is used instead of a regular file object for streaming |
| 306 | access. |
| 307 | """ |
| 308 | |
| 309 | def __init__(self, name, mode): |
| 310 | mode = { |
| 311 | "r": os.O_RDONLY, |
| 312 | "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, |
| 313 | }[mode] |
| 314 | if hasattr(os, "O_BINARY"): |
| 315 | mode |= os.O_BINARY |
| 316 | self.fd = os.open(name, mode, 0o666) |
| 317 | |
| 318 | def close(self): |
| 319 | os.close(self.fd) |
| 320 | |
| 321 | def read(self, size): |
| 322 | return os.read(self.fd, size) |
| 323 | |
| 324 | def write(self, s): |
| 325 | os.write(self.fd, s) |
| 326 | |
| 327 | class _Stream: |
| 328 | """Class that serves as an adapter between TarFile and |
no outgoing calls
no test coverage detected
searching dependent graphs…