code: def parse_int(value, base_unit=None):
      
  
      convert = {
          'kB': {'kB': 1, 'MB': 1024, 'GB': 1024 * 1024, 'TB': 1024 * 1024 * 1024},
          'ms': {'ms': 1, 's': 1000, 'min': 1000 * 60, 'h': 1000 * 60 * 60, 'd': 1000 * 60 * 60 * 24},
          's': {'ms': -1000, 's': 1, 'min': 60, 'h': 60 * 60, 'd': 60 * 60 * 24},
          'min': {'ms': -1000 * 60, 's': -60, 'min': 1, 'h': 60, 'd': 60 * 24}
      }
  
      value, unit = strtol(value)
      if value is not None:
          if not unit:
              return value
  
          if base_unit and base_unit not in convert:
              base_value, base_unit = strtol(base_unit, False)
          else:
              base_value = 1
          if base_unit in convert and unit in convert[base_unit]:
              multiplier = convert[base_unit][unit]
              if multiplier < 0:
                  value /= -multiplier
              else:
                  value *= multiplier
              return int(value/base_value)
docs: >>> parse_int('1') == 1
      True
      >>> parse_int(' 0x400 MB ', '16384kB') == 64
      True
      >>> parse_int('1MB', 'kB') == 1024
      True
      >>> parse_int('1000 ms', 's') == 1
      True
      >>> parse_int('1GB', 'MB') is None
      True
      >>> parse_int(0) == 0
      True