(self, pos, whence=0)
| 969 | return n |
| 970 | |
| 971 | def seek(self, pos, whence=0): |
| 972 | if self.closed: |
| 973 | raise ValueError("seek on closed file") |
| 974 | try: |
| 975 | pos_index = pos.__index__ |
| 976 | except AttributeError: |
| 977 | raise TypeError(f"{pos!r} is not an integer") |
| 978 | else: |
| 979 | pos = pos_index() |
| 980 | if whence == 0: |
| 981 | if pos < 0: |
| 982 | raise ValueError("negative seek position %r" % (pos,)) |
| 983 | self._pos = pos |
| 984 | elif whence == 1: |
| 985 | with self._lock: |
| 986 | self._pos = max(0, self._pos + pos) |
| 987 | elif whence == 2: |
| 988 | with self._lock: |
| 989 | self._pos = max(0, len(self._buffer) + pos) |
| 990 | else: |
| 991 | raise ValueError("unsupported whence value") |
| 992 | return self._pos |
| 993 | |
| 994 | def tell(self): |
| 995 | if self.closed: |
no outgoing calls