parameters: (self, tarfile)
return_statement: return self
docstring: Process a GNU sparse header plus extra headers.
docstring_summary: Process a GNU sparse header plus extra headers.
docstring_tokens: Process a GNU sparse header plus extra headers .
function: def _proc_sparse(self, tarfile):
          """Process a GNU sparse header plus extra headers.
          """
          # We already collected some sparse structures in frombuf().
          structs, isextended, origsize = self._sparse_structs
          del self._sparse_structs
  
          # Collect sparse structures from extended header blocks.
          while isextended:
              buf = tarfile.fileobj.read(BLOCKSIZE)
              pos = 0
              for i in range(21):
                  try:
                      offset = nti(buf[pos:pos + 12])
                      numbytes = nti(buf[pos + 12:pos + 24])
                  except ValueError:
                      break
                  if offset and numbytes:
                      structs.append((offset, numbytes))
                  pos += 24
              isextended = bool(buf[504])
          self.sparse = structs
  
          self.offset_data = tarfile.fileobj.tell()
          tarfile.offset = self.offset_data + self._block(self.size)
          self.size = origsize
          return self
function_tokens: def _proc_sparse ( self , tarfile ) : # We already collected some sparse structures in frombuf(). structs , isextended , origsize = self . _sparse_structs del self . _sparse_structs # Collect sparse structures from extended header blocks. while isextended : buf = tarfile . fileobj . read ( BLOCKSIZE ) pos = 0 for i in range ( 21 ) : try : offset = nti ( buf [ pos : pos + 12 ] ) numbytes = nti ( buf [ pos + 12 : pos + 24 ] ) except ValueError : break if offset and numbytes : structs . append ( ( offset , numbytes ) ) pos += 24 isextended = bool ( buf [ 504 ] ) self . sparse = structs self . offset_data = tarfile . fileobj . tell ( ) tarfile . offset = self . offset_data + self . _block ( self . size ) self . size = origsize return self