parameters: (max_int)
return_statement: return name_function
docstring: Returns a function that receives a single integer
      and returns it as a string padded by enough zero characters
      to align with maximum possible integer
  
      >>> name_f = build_name_function(57)
  
      >>> name_f(7)
      '07'
      >>> name_f(31)
      '31'
      >>> build_name_function(1000)(42)
      '0042'
      >>> build_name_function(999)(42)
      '042'
      >>> build_name_function(0)(0)
      '0'
docstring_summary: Returns a function that receives a single integer
      and returns it as a string padded by enough zero characters
      to align with maximum possible integer
docstring_tokens: Returns a function that receives a single integer and returns it as a string padded by enough zero characters to align with maximum possible integer
function: def build_name_function(max_int):
      """ Returns a function that receives a single integer
      and returns it as a string padded by enough zero characters
      to align with maximum possible integer
  
      >>> name_f = build_name_function(57)
  
      >>> name_f(7)
      '07'
      >>> name_f(31)
      '31'
      >>> build_name_function(1000)(42)
      '0042'
      >>> build_name_function(999)(42)
      '042'
      >>> build_name_function(0)(0)
      '0'
      """
      # handle corner cases max_int is 0 or exact power of 10
      max_int += 1e-8
  
      pad_length = int(math.ceil(math.log10(max_int)))
  
      def name_function(i):
          return str(i).zfill(pad_length)
  
      return name_function
function_tokens: def build_name_function ( max_int ) : # handle corner cases max_int is 0 or exact power of 10 max_int += 1e-8 pad_length = int ( math . ceil ( math . log10 ( max_int ) ) ) def name_function ( i ) : return str ( i ) . zfill ( pad_length ) return name_function