docs: def _serialize_module(obj):
      """
      Tries to serialize a module by its __dict__ attr.
      Remove the builtins attr as this one is not relevant and extremely large.
      If its value is a callable, serialize it using serialize_obj, else, use its repr,
      because in this case we most likely run into max recursion depth errors.
      :param obj:
      :return:
      """
      obj = dict(obj.__dict__)
      if '__builtins__' in obj.keys():
          obj.pop('__builtins__')
      for k, v in obj.items():
          if callable(v):
              obj[k] = serialize_obj(v)
          else:
              obj[k] = repr(v)
      return obj