code: def _memory_usage(self, pid='self', category="hwm", container=None):
          
          if container:
              # TODO: Put some debug output here with switch to Logger
              # since this is relatively untested.
              cmd = "docker stats " + container + " --format '{{.MemUsage}}' --no-stream"
              mem_use_str = subprocess.check_output(cmd, shell=True)
              mem_use = mem_use_str.split("/")[0].split()
              
              mem_num = re.findall('[\d\.]+', mem_use_str.split("/")[0])[0]
              mem_scale = re.findall('[A-Za-z]+', mem_use_str.split("/")[0])[0]
  
              #print(mem_use_str, mem_num, mem_scale)
              mem_num = float(mem_num)
              if mem_scale == "GiB":
                  return mem_num * 1e6
              elif mem_scale == "MiB":
                  return mem_num * 1e3
              elif mem_scale == "KiB":
                  return mem_num
              else:
                  # What type is this?
                  return 0
  
          # Thanks Martin Geisler:
          status = None
          result = {'peak': 0, 'rss': 0, 'hwm': 0}
          
          try:
              # This will only work on systems with a /proc file system
              # (like Linux).
              # status = open('/proc/self/status')
              proc_spot = '/proc/%s/status' % pid
              status = open(proc_spot)
              for line in status:
                  parts = line.split()
                  key = parts[0][2:-1].lower()
                  if key in result:
                      result[key] = int(parts[1])
          except:
              return 0
  
          finally:
              if status is not None:
                  status.close()
          # print(result[category])
          return result[category]
docs: Memory usage of the process in kilobytes.
  
          :param str pid: Process ID of process to check
          :param str category: Memory type to check. 'hwm' for high water mark.