Return a file descriptor from a file object. Parameters: fileobj -- file object or file descriptor Returns: corresponding file descriptor Raises: ValueError if the object is invalid
(fileobj)
| 19 | |
| 20 | |
| 21 | def _fileobj_to_fd(fileobj): |
| 22 | """Return a file descriptor from a file object. |
| 23 | |
| 24 | Parameters: |
| 25 | fileobj -- file object or file descriptor |
| 26 | |
| 27 | Returns: |
| 28 | corresponding file descriptor |
| 29 | |
| 30 | Raises: |
| 31 | ValueError if the object is invalid |
| 32 | """ |
| 33 | if isinstance(fileobj, int): |
| 34 | fd = fileobj |
| 35 | else: |
| 36 | try: |
| 37 | fd = int(fileobj.fileno()) |
| 38 | except (AttributeError, TypeError, ValueError): |
| 39 | raise ValueError("Invalid file object: " |
| 40 | "{!r}".format(fileobj)) from None |
| 41 | if fd < 0: |
| 42 | raise ValueError("Invalid file descriptor: {}".format(fd)) |
| 43 | return fd |
| 44 | |
| 45 | |
| 46 | SelectorKey = namedtuple('SelectorKey', ['fileobj', 'fd', 'events', 'data']) |
no test coverage detected
searching dependent graphs…