class_docstr: DeclarativeBase mixin to set a model's ``metadata`` based on ``__bind_key__``.
  
  If no ``__bind_key__`` is specified, the model will use the default metadata
  provided by ``DeclarativeBase`` or ``DeclarativeBaseNoMeta``.
  If the model doesn't set ``metadata`` or ``__table__`` directly
  and does set ``__bind_key__``, the model will use the metadata
  for the specified bind key.
  If the ``metadata`` is the same as the parent model, it will not be set
  directly on the child model.
  
  .. versionchanged:: 3.1.0
class_docstr_tok: ["DeclarativeBase","mixin","to","set","a","model","'s","``","metadata","``","based","on","``","__bind_key__","``",".","If","no","``","__bind_key__","``","is","specified",",","the","model","will","use","the","default","metadata","provided","by","``","DeclarativeBase","``","or","``","DeclarativeBaseNoMeta","``",".","If","the","model","does","n't","set","``","metadata","``","or","``","__table__","``","directly","and","does","set","``","__bind_key__","``",",","the","model","will","use","the","metadata","for","the","specified","bind","key",".","If","the","``","metadata","``","is","the","same","as","the","parent","model",",","it","will","not","be","set","directly","on","the","child","model",".","..","versionchanged",":",":","3.1.0"]
code: def __init_subclass__(
      cls: t.Type[BindMixin], **kwargs: t.Dict[str, t.Any]
  ) -> None:
      if not (
          "metadata" in cls.__dict__ or "__table__" in cls.__dict__
      ) and hasattr(cls, "__bind_key__"):
          bind_key = getattr(cls, "__bind_key__", None)
          parent_metadata = getattr(cls, "metadata", None)
          metadata = cls.__fsa__._make_metadata(bind_key)
  
          if metadata is not parent_metadata:
              cls.metadata = metadata
  
      super().__init_subclass__(**kwargs)
  
imports: from __future__ import annotations
  import re
  import typing
  import sqlalchemy
  import sqlalchemy.orm
  from .query import Query
label_desc: Use image node_id 1 for calling the BindMixin obj's underlying member method code with example usage: obj.__init_subclass__(cls) without return types