parameters: (n, digits=8, format=DEFAULT_FORMAT)
return_statement: return s
docstring: Convert a python number to a number field.
docstring_summary: Convert a python number to a number field.
docstring_tokens: Convert a python number to a number field .
function: def itn(n, digits=8, format=DEFAULT_FORMAT):
      """Convert a python number to a number field.
      """
      # POSIX 1003.1-1988 requires numbers to be encoded as a string of
      # octal digits followed by a null-byte, this allows values up to
      # (8**(digits-1))-1. GNU tar allows storing numbers greater than
      # that if necessary. A leading 0o200 byte indicates this particular
      # encoding, the following digits-1 bytes are a big-endian
      # representation. This allows values up to (256**(digits-1))-1.
      if 0 <= n < 8 ** (digits - 1):
          s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL
      else:
          if format != GNU_FORMAT or n >= 256 ** (digits - 1):
              raise ValueError("overflow in number field")
  
          if n < 0:
              # XXX We mimic GNU tar's behaviour with negative numbers,
              # this could raise OverflowError.
              n = struct.unpack("L", struct.pack("l", n))[0]
  
          s = bytearray()
          for i in range(digits - 1):
              s.insert(0, n & 0o377)
              n >>= 8
          s.insert(0, 0o200)
      return s
function_tokens: def itn ( n , digits = 8 , format = DEFAULT_FORMAT ) : # POSIX 1003.1-1988 requires numbers to be encoded as a string of # octal digits followed by a null-byte, this allows values up to # (8**(digits-1))-1. GNU tar allows storing numbers greater than # that if necessary. A leading 0o200 byte indicates this particular # encoding, the following digits-1 bytes are a big-endian # representation. This allows values up to (256**(digits-1))-1. if 0 <= n < 8 ** ( digits - 1 ) : s = ( "%0*o" % ( digits - 1 , n ) ) . encode ( "ascii" ) + NUL else : if format != GNU_FORMAT or n >= 256 ** ( digits - 1 ) : raise ValueError ( "overflow in number field" ) if n < 0 : # XXX We mimic GNU tar's behaviour with negative numbers, # this could raise OverflowError. n = struct . unpack ( "L" , struct . pack ( "l" , n ) ) [ 0 ] s = bytearray ( ) for i in range ( digits - 1 ) : s . insert ( 0 , n & 0o377 ) n >>= 8 s . insert ( 0 , 0o200 ) return s