code: def make_int(s, default='', ignore_commas=True):
      r
      if ignore_commas and isinstance(s, basestring):
          s = s.replace(',', '')
      try:
          return int(s)
      except (IndexError, ValueError, AttributeError, TypeError):
          pass
      try:
          return int(re.split(str(s), '[^-0-9,.Ee]')[0])
      except ValueError:
          try:
              return int(float(normalize_scientific_notation(str(s), ignore_commas)))
          except (ValueError, TypeError):
              try:
                  return int(first_digits(s))
              except (ValueError, TypeError):
                  return default
docs: r"""Coerce a string into an integer (long ints will fail)
  
      TODO:
      - Ignore dashes and other punctuation within a long string of digits,
         like a telephone number, partnumber, datecode or serial number.
      - Use the Decimal type to allow infinite precision
      - Use regexes to be more robust
  
      >>> make_int('12345')
      12345
      >>> make_int('0000012345000       ')
      12345000
      >>> make_int(' \t\n123,450,00\n')
      12345000