MCPcopy Index your code
hub / github.com/python/cpython / seek

Method seek

Lib/compression/_common/_streams.py:130–158  ·  view source on GitHub ↗
(self, offset, whence=io.SEEK_SET)

Source from the content-addressed store, hash-verified

128 self._decompressor = self._decomp_factory(**self._decomp_args)
129
130 def seek(self, offset, whence=io.SEEK_SET):
131 # Recalculate offset as an absolute file position.
132 if whence == io.SEEK_SET:
133 pass
134 elif whence == io.SEEK_CUR:
135 offset = self._pos + offset
136 elif whence == io.SEEK_END:
137 # Seeking relative to EOF - we need to know the file's size.
138 if self._size < 0:
139 while self.read(io.DEFAULT_BUFFER_SIZE):
140 pass
141 offset = self._size + offset
142 else:
143 raise ValueError("Invalid value for whence: {}".format(whence))
144
145 # Make it so that offset is the number of bytes to skip forward.
146 if offset < self._pos:
147 self._rewind()
148 else:
149 offset -= self._pos
150
151 # Read and discard data until we reach the desired position.
152 while offset > 0:
153 data = self.read(min(io.DEFAULT_BUFFER_SIZE, offset))
154 if not data:
155 break
156 offset -= len(data)
157
158 return self._pos
159
160 def tell(self):
161 """Return the current file position."""

Callers 1

_rewindMethod · 0.45

Calls 3

readMethod · 0.95
_rewindMethod · 0.95
formatMethod · 0.45

Tested by

no test coverage detected