code: def human2bytes(s):
      """
      Attempts to guess the string format based on default symbols
      set and return the corresponding bytes as an integer.
      When unable to recognize the format ValueError is raised.
  
        >>> human2bytes('0 B')
        0
        >>> human2bytes('1 K')
        1024
        >>> human2bytes('1 M')
        1048576
        >>> human2bytes('1 Gi')
        1073741824
        >>> human2bytes('1 tera')
        1099511627776
  
        >>> human2bytes('0.5kilo')
        512
        >>> human2bytes('0.1  byte')
        0
        >>> human2bytes('1 k')  # k is an alias for K
        1024
        >>> human2bytes('12 foo')
        Traceback (most recent call last):
            ...
        ValueError: can't interpret '12 foo'
      """
      init = s
      num = ""
      while s and s[0:1].isdigit() or s[0:1] == ".":
          num += s[0]
          s = s[1:]
      num = float(num)
      letter = s.strip()
      for name, sset in SYMBOLS.items():
          if letter in sset:
              break
      else:
          if letter == "k":
              # treat 'k' as an alias for 'K' as per: http://goo.gl/kTQMs
              sset = SYMBOLS["customary"]
              letter = letter.upper()
          else:
              raise ValueError("can't interpret %r" % init)
      prefix = {sset[0]: 1}
      for i, s in enumerate(sset[1:]):
          prefix[s] = 1 << (i + 1) * 10
      return int(num * prefix[letter])
  
imports: import sys
  from tabulate import tabulate
label_desc: Use image node_id 2 for calling a global function with example usage: human2bytes(s) and returns: int