code: def create_class(self, data, options=None, **kwargs):
          
          obj_map = dict(
              (cls.type, cls)
              for cls in [
                  PythonClass,
                  PythonFunction,
                  PythonModule,
                  PythonMethod,
                  PythonPackage,
                  PythonAttribute,
                  PythonData,
                  PythonException,
              ]
          )
          try:
              cls = obj_map[data["type"]]
          except KeyError:
              LOGGER.warning("Unknown type: %s" % data["type"])
          else:
              obj = cls(
                  data,
                  class_content=self.app.config.autoapi_python_class_content,
                  options=self.app.config.autoapi_options,
                  jinja_env=self.jinja_env,
                  url_root=self.url_root,
                  **kwargs
              )
  
              lines = sphinx.util.docstrings.prepare_docstring(obj.docstring)
              if lines and "autodoc-process-docstring" in self.app.events.events:
                  self.app.emit(
                      "autodoc-process-docstring",
                      cls.type,
                      obj.name,
                      None,  # object
                      None,  # options
                      lines,
                  )
              obj.docstring = "\n".join(lines)
  
              for child_data in data.get("children", []):
                  for child_obj in self.create_class(
                      child_data, options=options, **kwargs
                  ):
                      obj.children.append(child_obj)
              yield obj
docs: Create a class from the passed in data
  
          :param data: dictionary data of parser output