mercurial/util.py
changeset 19194 1d08df65cd3c
parent 18938 e22107cff6bf
child 19211 3bfd7f1e7485
equal deleted inserted replaced
19191:ab9de1e8fc36 19194:1d08df65cd3c
  1922             _timenesting[0] -= indent
  1922             _timenesting[0] -= indent
  1923             sys.stderr.write('%s%s: %s\n' %
  1923             sys.stderr.write('%s%s: %s\n' %
  1924                              (' ' * _timenesting[0], func.__name__,
  1924                              (' ' * _timenesting[0], func.__name__,
  1925                               timecount(elapsed)))
  1925                               timecount(elapsed)))
  1926     return wrapper
  1926     return wrapper
       
  1927 
       
  1928 _sizeunits = (('m', 2**20), ('k', 2**10), ('g', 2**30),
       
  1929               ('kb', 2**10), ('mb', 2**20), ('gb', 2**30), ('b', 1))
       
  1930 
       
  1931 def sizetoint(s):
       
  1932     '''Convert a space specifier to a byte count.
       
  1933 
       
  1934     >>> sizetoint('30')
       
  1935     30
       
  1936     >>> sizetoint('2.2kb')
       
  1937     2252
       
  1938     >>> sizetoint('6M')
       
  1939     6291456
       
  1940     '''
       
  1941     t = s.strip().lower()
       
  1942     try:
       
  1943         for k, u in _sizeunits:
       
  1944             if t.endswith(k):
       
  1945                 return int(float(t[:-len(k)]) * u)
       
  1946         return int(t)
       
  1947     except ValueError:
       
  1948         raise error.ParseError(_("couldn't parse size: %s") % s)