MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / next

Method next

tools/python-3.11.9-amd64/Lib/tarfile.py:2583–2643  ·  view source on GitHub ↗

Return the next member of the archive as a TarInfo object, when TarFile is opened for reading. Return None if there is no more available.

(self)

Source from the content-addressed store, hash-verified

2581
2582 #--------------------------------------------------------------------------
2583 def next(self):
2584 """Return the next member of the archive as a TarInfo object, when
2585 TarFile is opened for reading. Return None if there is no more
2586 available.
2587 """
2588 self._check("ra")
2589 if self.firstmember is not None:
2590 m = self.firstmember
2591 self.firstmember = None
2592 return m
2593
2594 # Advance the file pointer.
2595 if self.offset != self.fileobj.tell():
2596 if self.offset == 0:
2597 return None
2598 self.fileobj.seek(self.offset - 1)
2599 if not self.fileobj.read(1):
2600 raise ReadError("unexpected end of data")
2601
2602 # Read the next block.
2603 tarinfo = None
2604 while True:
2605 try:
2606 tarinfo = self.tarinfo.fromtarfile(self)
2607 except EOFHeaderError as e:
2608 if self.ignore_zeros:
2609 self._dbg(2, "0x%X: %s" % (self.offset, e))
2610 self.offset += BLOCKSIZE
2611 continue
2612 except InvalidHeaderError as e:
2613 if self.ignore_zeros:
2614 self._dbg(2, "0x%X: %s" % (self.offset, e))
2615 self.offset += BLOCKSIZE
2616 continue
2617 elif self.offset == 0:
2618 raise ReadError(str(e)) from None
2619 except EmptyHeaderError:
2620 if self.offset == 0:
2621 raise ReadError("empty file") from None
2622 except TruncatedHeaderError as e:
2623 if self.offset == 0:
2624 raise ReadError(str(e)) from None
2625 except SubsequentHeaderError as e:
2626 raise ReadError(str(e)) from None
2627 except Exception as e:
2628 try:
2629 import zlib
2630 if isinstance(e, zlib.error):
2631 raise ReadError(f'zlib error: {e}') from None
2632 else:
2633 raise e
2634 except ImportError:
2635 raise e
2636 break
2637
2638 if tarinfo is not None:
2639 self.members.append(tarinfo)
2640 else:

Callers 3

__init__Method · 0.95
_loadMethod · 0.95
__iter__Method · 0.95

Calls 9

_checkMethod · 0.95
_dbgMethod · 0.95
strFunction · 0.85
fromtarfileMethod · 0.80
ReadErrorClass · 0.70
tellMethod · 0.45
seekMethod · 0.45
readMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected