class_docstr: tool for converting a function's input signature to an unique key
  
  This keymap does not serialize objects, but does do some formatting.
  Since the keys are stored as raw objects, there is no information loss,
  and thus it is easy to recover the original input signature.  However,
  to use an object as a key, the object must be hashable.
docstr: use a flattened scheme for generating a key
docstr_tok: ["use","a","flattened","scheme","for","generating","a","key"]
code: def encode(self, *args, **kwds):
      """use a flattened scheme for generating a key"""
      key = args
      if kwds:
          sorted_items = self._sorted(list(kwds.items()))
          if self._mark:
              key += self._mark
          for item in sorted_items:
              key += item
      if self.typed:  # XXX: 'mark' between each part, so easy to split
          if self._mark:
              key += self._mark
          key += self._tuple(self._type(v) for v in args)
          if kwds:
              if self._mark:
                  key += self._mark
              key += self._tuple(
                  self._type(v) for (k, v) in sorted_items
              )
      elif (
          self._len(key) == 1 and self._type(key[0]) in self._fasttypes
      ):
          key = key[0]
      # __chain__
      if self.outer:
          return self.inner(key)
      return key
  
imports: from copy import copy
  from klepto.crypto import hash, string, pickle
label_desc: Use image node_id 10 for calling the keymap obj's underlying member method code with example usage: obj.encode() and returns: key, self