parameters: (
          self,
          bind=None,
          schema=None,
          quote_schema=None,
          naming_convention=None,
          info=None,
      )
docstring: Create a new MetaData object.
  
          :param bind:
            An Engine or Connection to bind to.  May also be a string or URL
            instance, these are passed to create_engine() and this MetaData will
            be bound to the resulting engine.
  
          :param reflect:
            Optional, automatically load all tables from the bound database.
            Defaults to False. ``bind`` is required when this option is set.
  
          :param schema:
             The default schema to use for the :class:`.Table`,
             :class:`.Sequence`, and potentially other objects associated with
             this :class:`.MetaData`. Defaults to ``None``.
  
             When this value is set, any :class:`.Table` or :class:`.Sequence`
             which specifies ``None`` for the schema parameter will instead
             have this schema name defined.  To build a :class:`.Table`
             or :class:`.Sequence` that still has ``None`` for the schema
             even when this parameter is present, use the :attr:`.BLANK_SCHEMA`
             symbol.
  
             .. note::
  
                  As referred above, the :paramref:`.MetaData.schema` parameter
                  only refers to the **default value** that will be applied to
                  the :paramref:`.Table.schema` parameter of an incoming
                  :class:`.Table` object.   It does not refer to how the
                  :class:`.Table` is catalogued within the :class:`.MetaData`,
                  which remains consistent vs. a :class:`.MetaData` collection
                  that does not define this parameter.  The :class:`.Table`
                  within the :class:`.MetaData` will still be keyed based on its
                  schema-qualified name, e.g.
                  ``my_metadata.tables["some_schema.my_table"]``.
  
                  The current behavior of the :class:`.ForeignKey` object is to
                  circumvent this restriction, where it can locate a table given
                  the table name alone, where the schema will be assumed to be
                  present from this value as specified on the owning
                  :class:`.MetaData` collection.  However, this implies  that a
                  table qualified with BLANK_SCHEMA cannot currently be referred
                  to by string name from :class:`.ForeignKey`.    Other parts of
                  SQLAlchemy such as Declarative may not have similar behaviors
                  built in, however may do so in a future release, along with a
                  consistent method of referring to a table in BLANK_SCHEMA.
  
  
             .. seealso::
  
                  :paramref:`.Table.schema`
  
                  :paramref:`.Sequence.schema`
  
          :param quote_schema:
              Sets the ``quote_schema`` flag for those :class:`.Table`,
              :class:`.Sequence`, and other objects which make usage of the
              local ``schema`` name.
  
          :param info: Optional data dictionary which will be populated into the
              :attr:`.SchemaItem.info` attribute of this object.
  
              .. versionadded:: 1.0.0
  
          :param naming_convention: a dictionary referring to values which
            will establish default naming conventions for :class:`.Constraint`
            and :class:`.Index` objects, for those objects which are not given
            a name explicitly.
  
            The keys of this dictionary may be:
  
            * a constraint or Index class, e.g. the :class:`.UniqueConstraint`,
              :class:`.ForeignKeyConstraint` class, the :class:`.Index` class
  
            * a string mnemonic for one of the known constraint classes;
              ``"fk"``, ``"pk"``, ``"ix"``, ``"ck"``, ``"uq"`` for foreign key,
              primary key, index, check, and unique constraint, respectively.
  
            * the string name of a user-defined "token" that can be used
              to define new naming tokens.
  
            The values associated with each "constraint class" or "constraint
            mnemonic" key are string naming templates, such as
            ``"uq_%(table_name)s_%(column_0_name)s"``,
            which describe how the name should be composed.  The values
            associated with user-defined "token" keys should be callables of the
            form ``fn(constraint, table)``, which accepts the constraint/index
            object and :class:`.Table` as arguments, returning a string
            result.
  
            The built-in names are as follows, some of which may only be
            available for certain types of constraint:
  
              * ``%(table_name)s`` - the name of the :class:`.Table` object
                associated with the constraint.
  
              * ``%(referred_table_name)s`` - the name of the :class:`.Table`
                object associated with the referencing target of a
                :class:`.ForeignKeyConstraint`.
  
              * ``%(column_0_name)s`` - the name of the :class:`.Column` at
                index position "0" within the constraint.
  
              * ``%(column_0N_name)s`` - the name of all :class:`.Column`
                objects in order within the constraint, joined without a
                separator.
  
              * ``%(column_0_N_name)s`` - the name of all :class:`.Column`
                objects in order within the constraint, joined with an
                underscore as a separator.
  
              * ``%(column_0_label)s``, ``%(column_0N_label)s``,
                ``%(column_0_N_label)s`` - the label of either the zeroth
                :class:`.Column` or all :class:`.Columns`, separated with
                or without an underscore
  
              * ``%(column_0_key)s``, ``%(column_0N_key)s``,
                ``%(column_0_N_key)s`` - the key of either the zeroth
                :class:`.Column` or all :class:`.Columns`, separated with
                or without an underscore
  
              * ``%(referred_column_0_name)s``, ``%(referred_column_0N_name)s``
                ``%(referred_column_0_N_name)s``,  ``%(referred_column_0_key)s``,
                ``%(referred_column_0N_key)s``, ...  column tokens which
                render the names/keys/labels of columns that are referenced
                by a  :class:`.ForeignKeyConstraint`.
  
              * ``%(constraint_name)s`` - a special key that refers to the
                existing name given to the constraint.  When this key is
                present, the :class:`.Constraint` object's existing name will be
                replaced with one that is composed from template string that
                uses this token. When this token is present, it is required that
                the :class:`.Constraint` is given an explicit name ahead of time.
  
              * user-defined: any additional token may be implemented by passing
                it along with a ``fn(constraint, table)`` callable to the
                naming_convention dictionary.
  
            .. versionadded:: 1.3.0 - added new ``%(column_0N_name)s``,
               ``%(column_0_N_name)s``, and related tokens that produce
               concatenations of names, keys, or labels for all columns referred
               to by a given constraint.
  
            .. seealso::
  
                  :ref:`constraint_naming_conventions` - for detailed usage
                  examples.
docstring_summary: Create a new MetaData object.
docstring_tokens: Create a new MetaData object .
function: def __init__(
          self,
          bind=None,
          schema=None,
          quote_schema=None,
          naming_convention=None,
          info=None,
      ):
          """Create a new MetaData object.
  
          :param bind:
            An Engine or Connection to bind to.  May also be a string or URL
            instance, these are passed to create_engine() and this MetaData will
            be bound to the resulting engine.
  
          :param reflect:
            Optional, automatically load all tables from the bound database.
            Defaults to False. ``bind`` is required when this option is set.
  
          :param schema:
             The default schema to use for the :class:`.Table`,
             :class:`.Sequence`, and potentially other objects associated with
             this :class:`.MetaData`. Defaults to ``None``.
  
             When this value is set, any :class:`.Table` or :class:`.Sequence`
             which specifies ``None`` for the schema parameter will instead
             have this schema name defined.  To build a :class:`.Table`
             or :class:`.Sequence` that still has ``None`` for the schema
             even when this parameter is present, use the :attr:`.BLANK_SCHEMA`
             symbol.
  
             .. note::
  
                  As referred above, the :paramref:`.MetaData.schema` parameter
                  only refers to the **default value** that will be applied to
                  the :paramref:`.Table.schema` parameter of an incoming
                  :class:`.Table` object.   It does not refer to how the
                  :class:`.Table` is catalogued within the :class:`.MetaData`,
                  which remains consistent vs. a :class:`.MetaData` collection
                  that does not define this parameter.  The :class:`.Table`
                  within the :class:`.MetaData` will still be keyed based on its
                  schema-qualified name, e.g.
                  ``my_metadata.tables["some_schema.my_table"]``.
  
                  The current behavior of the :class:`.ForeignKey` object is to
                  circumvent this restriction, where it can locate a table given
                  the table name alone, where the schema will be assumed to be
                  present from this value as specified on the owning
                  :class:`.MetaData` collection.  However, this implies  that a
                  table qualified with BLANK_SCHEMA cannot currently be referred
                  to by string name from :class:`.ForeignKey`.    Other parts of
                  SQLAlchemy such as Declarative may not have similar behaviors
                  built in, however may do so in a future release, along with a
                  consistent method of referring to a table in BLANK_SCHEMA.
  
  
             .. seealso::
  
                  :paramref:`.Table.schema`
  
                  :paramref:`.Sequence.schema`
  
          :param quote_schema:
              Sets the ``quote_schema`` flag for those :class:`.Table`,
              :class:`.Sequence`, and other objects which make usage of the
              local ``schema`` name.
  
          :param info: Optional data dictionary which will be populated into the
              :attr:`.SchemaItem.info` attribute of this object.
  
              .. versionadded:: 1.0.0
  
          :param naming_convention: a dictionary referring to values which
            will establish default naming conventions for :class:`.Constraint`
            and :class:`.Index` objects, for those objects which are not given
            a name explicitly.
  
            The keys of this dictionary may be:
  
            * a constraint or Index class, e.g. the :class:`.UniqueConstraint`,
              :class:`.ForeignKeyConstraint` class, the :class:`.Index` class
  
            * a string mnemonic for one of the known constraint classes;
              ``"fk"``, ``"pk"``, ``"ix"``, ``"ck"``, ``"uq"`` for foreign key,
              primary key, index, check, and unique constraint, respectively.
  
            * the string name of a user-defined "token" that can be used
              to define new naming tokens.
  
            The values associated with each "constraint class" or "constraint
            mnemonic" key are string naming templates, such as
            ``"uq_%(table_name)s_%(column_0_name)s"``,
            which describe how the name should be composed.  The values
            associated with user-defined "token" keys should be callables of the
            form ``fn(constraint, table)``, which accepts the constraint/index
            object and :class:`.Table` as arguments, returning a string
            result.
  
            The built-in names are as follows, some of which may only be
            available for certain types of constraint:
  
              * ``%(table_name)s`` - the name of the :class:`.Table` object
                associated with the constraint.
  
              * ``%(referred_table_name)s`` - the name of the :class:`.Table`
                object associated with the referencing target of a
                :class:`.ForeignKeyConstraint`.
  
              * ``%(column_0_name)s`` - the name of the :class:`.Column` at
                index position "0" within the constraint.
  
              * ``%(column_0N_name)s`` - the name of all :class:`.Column`
                objects in order within the constraint, joined without a
                separator.
  
              * ``%(column_0_N_name)s`` - the name of all :class:`.Column`
                objects in order within the constraint, joined with an
                underscore as a separator.
  
              * ``%(column_0_label)s``, ``%(column_0N_label)s``,
                ``%(column_0_N_label)s`` - the label of either the zeroth
                :class:`.Column` or all :class:`.Columns`, separated with
                or without an underscore
  
              * ``%(column_0_key)s``, ``%(column_0N_key)s``,
                ``%(column_0_N_key)s`` - the key of either the zeroth
                :class:`.Column` or all :class:`.Columns`, separated with
                or without an underscore
  
              * ``%(referred_column_0_name)s``, ``%(referred_column_0N_name)s``
                ``%(referred_column_0_N_name)s``,  ``%(referred_column_0_key)s``,
                ``%(referred_column_0N_key)s``, ...  column tokens which
                render the names/keys/labels of columns that are referenced
                by a  :class:`.ForeignKeyConstraint`.
  
              * ``%(constraint_name)s`` - a special key that refers to the
                existing name given to the constraint.  When this key is
                present, the :class:`.Constraint` object's existing name will be
                replaced with one that is composed from template string that
                uses this token. When this token is present, it is required that
                the :class:`.Constraint` is given an explicit name ahead of time.
  
              * user-defined: any additional token may be implemented by passing
                it along with a ``fn(constraint, table)`` callable to the
                naming_convention dictionary.
  
            .. versionadded:: 1.3.0 - added new ``%(column_0N_name)s``,
               ``%(column_0_N_name)s``, and related tokens that produce
               concatenations of names, keys, or labels for all columns referred
               to by a given constraint.
  
            .. seealso::
  
                  :ref:`constraint_naming_conventions` - for detailed usage
                  examples.
  
          """
          self.tables = util.immutabledict()
          self.schema = quoted_name(schema, quote_schema)
          self.naming_convention = (
              naming_convention
              if naming_convention
              else DEFAULT_NAMING_CONVENTION
          )
          if info:
              self.info = info
          self._schemas = set()
          self._sequences = {}
          self._fk_memos = collections.defaultdict(list)
  
          self.bind = bind
function_tokens: def __init__ ( self , bind = None , schema = None , quote_schema = None , naming_convention = None , info = None , ) : self . tables = util . immutabledict ( ) self . schema = quoted_name ( schema , quote_schema ) self . naming_convention = ( naming_convention if naming_convention else DEFAULT_NAMING_CONVENTION ) if info : self . info = info self . _schemas = set ( ) self . _sequences = { } self . _fk_memos = collections . defaultdict ( list ) self . bind = bind