File: //opt/alt/python27/lib/python2.7/site-packages/alembic/config.pyo
�
�M!Vc @ s� d d l m Z d d l m Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m
Z
d d l m Z d e f d
� � YZ
d e f d � � YZ d d d
� Z e d k r� e � n d S( i����( t ArgumentParseri ( t SafeConfigParserN( t command( t util( t package_dir( t compatt Configc B s� e Z d Z d
d d
e j d
e j � d
d � Z d
Z d
Z
d
Z e j d � � Z
d � Z e j d � � Z d � Z d � Z d � Z d � Z d
� Z d
d � Z d
d � Z RS( sk
Represent an Alembic configuration.
Within an ``env.py`` script, this is available
via the :attr:`.EnvironmentContext.config` attribute,
which in turn is available at ``alembic.context``::
from alembic import context
some_param = context.config.get_main_option("my option")
When invoking Alembic programatically, a new
:class:`.Config` can be created by passing
the name of an .ini file to the constructor::
from alembic.config import Config
alembic_cfg = Config("/path/to/yourapp/alembic.ini")
With a :class:`.Config` object, you can then
run Alembic commands programmatically using the directives
in :mod:`alembic.command`.
The :class:`.Config` object can also be constructed without
a filename. Values can be set programmatically, and
new sections will be created as needed::
from alembic.config import Config
alembic_cfg = Config()
alembic_cfg.set_main_option("script_location", "myapp:migrations")
alembic_cfg.set_main_option("url", "postgresql://foo/bar")
alembic_cfg.set_section_option("mysection", "foo", "bar")
For passing non-string values to environments, such as connections and
engines, use the :attr:`.Config.attributes` dictionary::
with engine.begin() as connection:
alembic_cfg.attributes['connection'] = connection
command.upgrade(alembic_cfg, "head")
:param file_: name of the .ini file to open.
:param ini_section: name of the main Alembic section within the
.ini file
:param output_buffer: optional file-like input buffer which
will be passed to the :class:`.MigrationContext` - used to redirect
the output of "offline generation" when using Alembic programmatically.
:param stdout: buffer where the "print" output of commands will be sent.
Defaults to ``sys.stdout``.
.. versionadded:: 0.4
:param config_args: A dictionary of keys and values that will be used
for substitution in the alembic config file. The dictionary as given
is **copied** to a new one, stored locally as the attribute
``.config_args``. When the :attr:`.Config.file_config` attribute is
first invoked, the replacement variable ``here`` will be added to this
dictionary before the dictionary is passed to ``SafeConfigParser()``
to parse the .ini file.
.. versionadded:: 0.7.0
:param attributes: optional dictionary of arbitrary Python keys/values,
which will be populated into the :attr:`.Config.attributes` dictionary.
.. versionadded:: 0.7.5
.. seealso::
:ref:`connection_sharing`
t alembicc C sY | | _ | | _ | | _ | | _ | | _ t | � | _ | rU | j j | � n d S( s* Construct a new :class:`.Config`
N( t config_file_namet config_ini_sectiont
output_buffert stdoutt cmd_optst dictt config_argst
attributest update( t selft file_t ini_sectionR
R R R R ( ( s? /opt/alt/python27/lib/python2.7/site-packages/alembic/config.pyt __init__U s c C s i S( s A Python dictionary for storage of additional state.
This is a utility dictionary which can include not just strings but
engines, connections, schema objects, or anything else.
Use this to pass objects into an env.py script, such as passing
a :class:`sqlalchemy.engine.base.Connection` when calling
commands from :mod:`alembic.command` programmatically.
.. versionadded:: 0.7.5
.. seealso::
:ref:`connection_sharing`
:paramref:`.Config.attributes`
( ( R ( ( s? /opt/alt/python27/lib/python2.7/site-packages/alembic/config.pyR } s c G s'