code: def serialize_identity(self, identity):
      
      section, check, iterargs = identity
      values = map(
          # separators are without space, which is the default in JavaScript;
          # just in case we need to make these keys in JS.
          partial(json.dumps, separators=(',', ':'))
          # iterargs are sorted, because it doesn't matter for the result
          # but it gives more predictable keys.
          # Though, arguably, the order generated by the profile is also good
          # and conveys insights on how the order came to be (clustering of
          # iterargs). `sorted(iterargs)` however is more robust over time,
          # the keys will be the same, even if the sorting order changes.
        , [str(section), check.id, sorted(iterargs)]
      )
      return '{{"section":{},"check":{},"iterargs":{}}}'.format(*values)
docs: Return a json string that can also  be used as a key.
  
      The JSON is explicitly unambiguous in the item order
      entries (dictionaries are not ordered usually)
      Otherwise it is valid JSON