code: def pretty_size(value):
      
      exp = int(math.log(value, 1024)) if value > 0 else 0
      unit = 'bkMGTPEZY'[exp]
      if exp == 0:
          return '%d%s' % (value, unit)       # value < 1024, result is always without fractions
  
      unit_value = value / (1024.0 ** exp)    # value in the relevant units
      places = int(math.log(unit_value, 10))  # number of digits before decimal point
      return '%.*f%s' % (2 - places, unit_value, unit)
docs: Convert a number of bytes into a human-readable string.
  
      Output is 2...5 characters. Values >= 1000 always produce output in form: x.xxxU, xx.xxU, xxxU, xxxxU.