class_docstr: Class that defines methods for generating code from schemas
  
  Parameters
  ----------
  classname : string
      The name of the class to generate
  schema : dict
      The dictionary defining the schema class
  rootschema : dict (optional)
      The root schema for the class
  basename : string or list of strings (default: "SchemaBase")
      The name(s) of the base class(es) to use in the class definition
  schemarepr : CodeSnippet or object, optional
      An object whose repr will be used in the place of the explicit schema.
      This can be useful, for example, when the generated code should reference
      a predefined schema object. The user must ensure that the schema within
      the evaluated code is identical to the schema used to generate the code.
  rootschemarepr : CodeSnippet or object, optional
      An object whose repr will be used in the place of the explicit root
      schema.
  altair_classes_prefix : string, optional
  **kwargs : dict
      Additional keywords for derived classes.
code: def __init__(
      self,
      classname: str,
      schema: dict,
      rootschema: Optional[dict] = None,
      basename: Union[str, List[str]] = "SchemaBase",
      schemarepr: Optional[object] = None,
      rootschemarepr: Optional[object] = None,
      nodefault: Optional[List[str]] = None,
      haspropsetters: bool = False,
      altair_classes_prefix: Optional[str] = None,
      **kwargs,
  ) -> None:
      self.classname = classname
      self.schema = schema
      self.rootschema = rootschema
      self.basename = basename
      self.schemarepr = schemarepr
      self.rootschemarepr = rootschemarepr
      self.nodefault = nodefault or ()
      self.haspropsetters = haspropsetters
      self.kwargs = kwargs
      self.altair_classes_prefix = altair_classes_prefix
  
imports: import re
  import textwrap
  from typing import Set, Final, Optional, List, Union, Dict, Tuple
  from dataclasses import dataclass
  from .utils import SchemaInfo, is_valid_identifier, indent_docstring, jsonschema_to_python_types, flatten
label_desc: Use image node_id 2 to create a new SchemaGenerator object  with example: obj = SchemaGenerator(classname, schema, rootschema, basename, schemarepr, rootschemarepr, nodefault, haspropsetters, altair_classes_prefix)