Ë
    …V.jÈV  ã                  ól  — d dl mZ d dlmZ 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 d
l
mZ d dl
mZ d dl
mZ d dl
mZ d dl
mZ d dlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d„ d«      Z G d„ ded¬«      Z G d„ d«      Z	 	 d	 	 	 	 	 	 	 d d„Zedk(  r e«        yy)!é    )Úannotations)ÚArgumentParser)Ú	Namespace)ÚConfigParserN)ÚAny)Úcast)ÚDict)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTextIO)ÚUnion)Ú	TypedDicté   )Ú__version__)Úcommand)Úutil)Úcompatc                  ó  — e Zd ZU dZdddej
                  d ej                  «       df	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZdZ	de
d<   	 dZde
d	<   	 dZde
d
<   	 ej                  dd„«       Zdd„Zej                  dd„«       Zdd„Ze	 d 	 	 	 	 	 d!d„«       Ze	 	 	 	 	 	 d"d„«       Ze	 	 	 	 	 	 d#d„«       Z	 d$	 	 	 	 	 d%d„Zd&d„Zd'd„Zd(d„Z	 d$	 	 	 	 	 	 	 d)d„Zed*d„«       Ze	 d$	 	 	 	 	 d+d„«       Z	 d$	 	 	 	 	 d+d„Zej                  d,d„«       Zy)-ÚConfiga`  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 programmatically, 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("sqlalchemy.url", "postgresql://foo/bar")
        alembic_cfg.set_section_option("mysection", "foo", "bar")

    .. warning::

       When using programmatic configuration, make sure the
       ``env.py`` file in use is compatible with the target configuration;
       including that the call to Python ``logging.fileConfig()`` is
       omitted if the programmatic configuration doesn't actually include
       logging directives.

    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``.

    :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 ``ConfigParser()``
     to parse the .ini file.

    :param attributes: optional dictionary of arbitrary Python keys/values,
     which will be populated into the :attr:`.Config.attributes` dictionary.

     .. seealso::

        :ref:`connection_sharing`

    NÚalembicú"Union[str, os.PathLike[str], None]ÚstrÚcmd_optsúOptional[Namespace]c                ó¦   — || _         || _        || _        || _        || _        t        |«      | _        |r| j                  j                  |«       yy)z Construct a new :class:`.Config`N)	Úconfig_file_nameÚconfig_ini_sectionÚoutput_bufferÚstdoutr   ÚdictÚconfig_argsÚ
attributesÚupdate)ÚselfÚfile_Úini_sectionr    r!   r   r#   r$   s           úPC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\alembic/config.pyÚ__init__zConfig.__init__d   sQ   € ð !&ˆÔØ"-ˆÔØ*ˆÔØˆŒØ ˆŒÜ Ó,ˆÔÙØ�O‰O×"Ñ" :Õ.ð ó    r   r   c                ó   — i S )aþ  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.

        .. seealso::

            :ref:`connection_sharing`

            :paramref:`.Config.attributes`

        © ©r&   s    r)   r$   zConfig.attributes�   s	   € ð$ ˆ	r+   c                ó”   — |rt        |«      |z  }nt        |«      }t        j                  | j                  |dfi | j                  ¤Ž y)a¤  Render a message to standard out.

        When :meth:`.Config.print_stdout` is called with additional args
        those arguments will formatted against the provided text,
        otherwise we simply output the provided text verbatim.

        This is a no-op when the``quiet`` messaging option is enabled.

        e.g.::

            >>> config.print_stdout('Some text %s', 'arg')
            Some Text arg

        Ú
N)r   r   Úwrite_outstreamr!   Úmessaging_opts)r&   ÚtextÚargÚoutputs       r)   Úprint_stdoutzConfig.print_stdout£   s>   € ñ  Ü˜“Y ‘_‰Fä˜“YˆFä×Ñ˜TŸ[™[¨&°$ÑN¸$×:MÑ:MÓNr+   c                óŒ  — | j                   rGt        j                  j                  t        j                  j	                  | j                   «      «      }nd}|| j
                  d<   t        | j
                  «      }| j                   r#t        j                  || j                   g«       |S |j                  | j                  «       |S )a  Return the underlying ``ConfigParser`` object.

        Direct access to the .ini file is available here,
        though the :meth:`.Config.get_section` and
        :meth:`.Config.get_main_option`
        methods provide a possibly simpler interface.

        Ú Úhere)r   ÚosÚpathÚabspathÚdirnamer#   r   r   Úread_config_parserÚadd_sectionr   )r&   r9   Úfile_configs      r)   r@   zConfig.file_configº   s�   € ð × Ò Ü—7‘7—?‘?¤2§7¡7§?¡?°4×3HÑ3HÓ#IÓJ‰DàˆDØ#'ˆ×Ñ˜Ñ Ü" 4×#3Ñ#3Ó4ˆØ× Ò Ü×%Ñ% k°D×4IÑ4IÐ3JÔKð Ðð ×#Ñ# D×$;Ñ$;Ô<ØÐr+   c                óÖ   — ddl }t        j                  j                  t        j                  j	                  |j
                  «      «      }t        j                  j                  |d«      S )z¥Return the directory where Alembic setup templates are found.

        This method is used by the alembic ``init`` and ``list_templates``
        commands.

        r   NÚ	templates)r   r:   r;   r<   r=   Ú__file__Újoin)r&   r   Úpackage_dirs      r)   Úget_template_directoryzConfig.get_template_directoryÑ   sA   € ó 	ä—g‘g—o‘o¤b§g¡g§o¡o°g×6FÑ6FÓ&GÓHˆÜ�w‰w�|‰|˜K¨Ó5Ð5r+   c                 ó   — y ©Nr-   ©r&   ÚnameÚdefaults      r)   Úget_sectionzConfig.get_sectionÝ   s   € ð $'r+   c                 ó   — y rH   r-   rI   s      r)   rL   zConfig.get_sectionå   s   € ð r+   c                 ó   — y rH   r-   rI   s      r)   rL   zConfig.get_sectionê   s   € ð 47r+   c                ó„   — | j                   j                  |«      s|S t        | j                   j                  |«      «      S )zùReturn all the configuration options from a given .ini file section
        as a dictionary.

        If the given section does not exist, the value of ``default``
        is returned, which is expected to be a dictionary or other mapping.

        )r@   Úhas_sectionr"   ÚitemsrI   s      r)   rL   zConfig.get_sectionï   s9   € ð ×Ñ×+Ñ+¨DÔ1ØˆNä�D×$Ñ$×*Ñ*¨4Ó0Ó1Ð1r+   c                ó>   — | j                  | j                  ||«       y)a:  Set an option programmatically within the 'main' section.

        This overrides whatever was in the .ini file.

        :param name: name of the value

        :param value: the value.  Note that this value is passed to
         ``ConfigParser.set``, which supports variable interpolation using
         pyformat (e.g. ``%(some_value)s``).   A raw percent sign not part of
         an interpolation symbol must therefore be escaped, e.g. ``%%``.
         The given value may refer to another value already in the file
         using the interpolation format.

        N)Úset_section_optionr   )r&   rJ   Úvalues      r)   Úset_main_optionzConfig.set_main_optionþ   s   € ð 	×Ñ × 7Ñ 7¸¸uÕEr+   c                óP   — | j                   j                  | j                  |«       y rH   )r@   Úremove_optionr   )r&   rJ   s     r)   Úremove_main_optionzConfig.remove_main_option  s   € Ø×Ñ×&Ñ& t×'>Ñ'>ÀÕEr+   c                óª   — | j                   j                  |«      s| j                   j                  |«       | j                   j                  |||«       y)a¸  Set an option programmatically within the given section.

        The section is created if it doesn't exist already.
        The value here will override whatever was in the .ini
        file.

        :param section: name of the section

        :param name: name of the value

        :param value: the value.  Note that this value is passed to
         ``ConfigParser.set``, which supports variable interpolation using
         pyformat (e.g. ``%(some_value)s``).   A raw percent sign not part of
         an interpolation symbol must therefore be escaped, e.g. ``%%``.
         The given value may refer to another value already in the file
         using the interpolation format.

        N)r@   rP   r?   Úset)r&   ÚsectionrJ   rT   s       r)   rS   zConfig.set_section_option  sD   € ð( ×Ñ×+Ñ+¨GÔ4Ø×Ñ×(Ñ(¨Ô1Ø×Ñ×Ñ˜W d¨EÕ2r+   c                óø   — | j                   j                  |«      s&t        j                  d| j                  ›d|›d�«      ‚| j                   j                  ||«      r| j                   j                  ||«      S |S )z9Return an option from the given section of the .ini file.zNo config file z found, or file has no '[z
]' section)r@   rP   r   ÚCommandErrorr   Ú
has_optionÚget)r&   r[   rJ   rK   s       r)   Úget_section_optionzConfig.get_section_option*  sr   € ð ×Ñ×+Ñ+¨GÔ4Ü×#Ò#à$(×$9Ó$9º7ðDóð ð ×Ñ×&Ñ& w°Ô5Ø×#Ñ#×'Ñ'¨°Ó6Ð6àˆNr+   c                 ó   — y rH   r-   rI   s      r)   Úget_main_optionzConfig.get_main_option8  s   € Ø?Br+   c                 ó   — y rH   r-   rI   s      r)   rb   zConfig.get_main_option;  s   € ð r+   c                ó<   — | j                  | j                  ||«      S )zãReturn an option from the 'main' section of the .ini file.

        This defaults to being a key from the ``[alembic]``
        section, unless the ``-n/--name`` flag were used to
        indicate a different section.

        )r`   r   rI   s      r)   rb   zConfig.get_main_option@  s   € ð ×&Ñ& t×'>Ñ'>ÀÀgÓNÐNr+   c                óv   — t        t        t        j                  dt	        | j
                  dd«      i«      «      S )zThe messaging options.ÚquietF)r   ÚMessagingOptionsr   ÚimmutabledictÚgetattrr   r.   s    r)   r2   zConfig.messaging_optsL  s7   € ô ÜÜ×ÑØœ' $§-¡-°¸%Ó@ÐAóó
ð 	
r+   )r'   r   r(   r   r    zOptional[TextIO]r!   r   r   r   r#   zMapping[str, Any]r$   zOptional[Dict[str, Any]]ÚreturnÚNone)rj   zDict[str, Any])r3   r   r4   r   rj   rk   )rj   r   )rj   r   ).)rJ   r   rK   rk   rj   zOptional[Dict[str, str]])rJ   r   rK   úDict[str, str]rj   rl   )rJ   r   rK   zMapping[str, str]rj   z(Union[Dict[str, str], Mapping[str, str]]rH   )rJ   r   rK   úOptional[Mapping[str, str]]rj   rm   )rJ   r   rT   r   rj   rk   )rJ   r   rj   rk   )r[   r   rJ   r   rT   r   rj   rk   )r[   r   rJ   r   rK   úOptional[str]rj   rn   )rJ   r   rK   r   rj   r   )rJ   r   rK   rn   rj   rn   )rj   rg   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úsysr!   r   rh   r*   r   Ú__annotations__r   r   Úmemoized_propertyr$   r6   r@   rF   r   rL   rU   rX   rS   r`   rb   r2   r-   r+   r)   r   r      sZ  … ñFðT 59Ø$Ø*.ØŸ™Ø(,Ø);¨×);Ñ);Ó)=Ø/3ð/à1ð/ð ð/ð (ð	/ð
 ð/ð &ð/ð 'ð/ð -ð/ð 
ó/ð( %)€HÐ!Ó(ð	ð <@ÐÐ8Ó?Ø2à"Ð˜Ó"ðð 
×Ñòó ðó&Oð. 
×Ñòó ðó,
6ð à),ð'Øð'Ø"&ð'à	!ò'ó ð'ð ðØðØ"0ðà	òó ðð ð7Øð7Ø"3ð7à	1ò7ó ð7ð
 AEð2Øð2Ø"=ð2à	$ó2óFó"Fó3ð2 AEðØðØ"%ðØ0=ðà	óð ÚBó ØBàà26ðØðØ"/ðà	òó ðð
 37ð
OØð
OØ"/ð
Oà	ó
Oð 
×Ñò
ó ñ
r+   r   c                  ó   — e Zd ZU ded<   y)rg   Úboolrf   N)ro   rp   rq   rt   r-   r+   r)   rg   rg   W  s   … Ø„Kr+   rg   F)Útotalc                  ó0   — e Zd Zddd„Zdd„Zdd„Zdd	d„Zy)
ÚCommandLineNc                ó&   — | j                  |«       y rH   )Ú_generate_args)r&   Úprogs     r)   r*   zCommandLine.__init__\  s   € Ø×Ñ˜DÕ!r+   c           	     ó  ‡‡— 	 	 	 	 	 	 	 	 	 	 d&ˆˆfd„}t        |¬«      }|j                  dddt        z  ¬«       |j                  ddt        t        j
                  j                  d	d
«      d¬«       |j                  ddt        dd¬«       |j                  ddd¬«       |j                  ddd¬«       |j                  dddd¬«       |j                  «       }t        j                  ddiiŠt        t        «      D �cg c]  }t        t        |«      ‘Œ c}D �]W  }t        j                  |«      sŒ|j                  d   dk7  sŒ-|j                  dk(  sŒ=t!        j"                  |«      }|d    �+|d   d!t%        |d    «        }|d   t%        |d    «       d  }	n
|d   d!d  }g }	|‰v r"|D �
cg c]  }
‰|   j                  |
|
«      ‘Œ }}
|j&                  }|rJg }|j)                  d"«      D ]3  }|j+                  «       s n$|j-                  |j+                  «       «       Œ5 ng }|j/                  |j                  d#j1                  |«      ¬$«      Š ||‰||	«       ‰j3                  |||	f¬%«       �ŒZ || _        y c c}w c c}
w )'Nc           	     ó–  •— i dddt        dt        d¬«      f“ddd	t        t        d
¬«      f“ddt        dd¬«      f“ddt        t        d¬«      f“ddt        t        d¬«      f“ddt        dd¬«      f“ddt        dd¬«      f“ddt        t        d ¬«      f“d!d"t        t        d#¬«      f“d$d%t        t        d&¬«      f“d'd(d)t        dd*¬«      f“d+d,t        dd-¬«      f“d.d/t        dd0¬«      f“d1d2d3t        d4d5¬«      f“d6d7d8t        dd9¬«      f“d:d;t        dd<¬«      f“d=d>t        dd?¬«      f“}d@dAdBdCœ}|D ](  }||v sŒ||   }|dDdE |dE   }} |j                  |i |¤Ž Œ* |D ]\  }|dFk(  s| ‰	v r/‰	|    |   dFk(  r$‰
j                  dFdG|j                  dF«      ¬H«       Œ;‰
j                  ||j                  |«      ¬I«       Œ^ y )JNÚtemplatez-tz
--templateÚgenericz"Setup template for use with 'init')rK   ÚtypeÚhelpÚmessagez-mz	--messagez%Message string to use with 'revision')r‚   rƒ   Úsqlz--sqlÚ
store_truez\Don't emit SQL to database - dump to standard output/file instead. See docs on offline mode.©Úactionrƒ   Útagz--tagz<Arbitrary 'tag' name - can be used by custom env.py scripts.Úheadz--headzCSpecify head revision or <branchname>@head to base new revision on.Úsplicez--splicez6Allow a non-head revision as the 'head' to splice ontoÚ
depends_onz--depends-onÚappendzNSpecify one or more revision identifiers which this revision should depend on.Úrev_idz--rev-idz9Specify a hardcoded revision id instead of generating oneÚversion_pathz--version-pathz2Specify specific path from config for version fileÚbranch_labelz--branch-labelz3Specify a branch label to apply to the new revisionÚverbosez-vz	--verbosezUse more verbose outputÚresolve_dependenciesz--resolve-dependenciesz+Treat dependency versions as down revisionsÚautogeneratez--autogeneratezgPopulate revision script with candidate migration operations, based on comparison of database to model.Ú	rev_rangez-rz--rev-rangeÚstorez1Specify a revision range; format is [start]:[end]Úindicate_currentz-iz--indicate-currentzIndicate the current revisionÚpurgez--purgez7Unconditionally erase the version table before stampingÚpackagez	--packagezFWrite empty __init__.py files to the environment and version locationszlocation of scripts directoryzrevision identifierz/one or more revisions, or 'heads' for all heads)Ú	directoryÚrevisionÚ	revisionsr   éÿÿÿÿr›   Ú+)Únargsrƒ   ©rƒ   )r"   r   Úadd_argumentr_   )ÚfnÚparserÚ
positionalÚkwargsÚkwargs_optsÚpositional_helpr4   ÚargsÚkwÚpositional_translationsÚ	subparsers            €€r)   Úadd_optionsz/CommandLine._generate_args.<locals>.add_options`  sK  ø€ ðHØØØ ÜØ )Ü ØAôððHð ØØÜÜ Ð'NôððHð" ØÜØ+ð(ôðð#Hð4 ØÜÜ ð1ôðð5HðD ØÜÜ ð3ôððEHðT ØÜØ+ð0ôððUHðd Ø"ÜØ'ð@ôððeHðt ØÜÜ ð)ôððuHðD Ø$ÜÜ ð'ôð!ðEHðT Ø$ÜÜ ð'ôð!ðUHðd ØØÜ Ð3LÔMððeHðn 'Ø,ÜØ+ØJôð)ðoHð| Ø$ÜØ+ð0ôð!ð}HðN ØØ!ÜØ&ð2ôððOHð` #ØØ(ÜØ+Ø<ôð%ðaHðp ØÜØ+ð*ôððqHð@ ØÜØ+ð<ôððAHˆKðT =Ø1ØNñˆOó
 �Ø˜+Ò%Ø& sÑ+�DØ# A b˜z¨4°©8˜"�DØ'�F×'Ñ'¨Ð4°Ó4ð	 ó "�à˜;Ò&ØÐ4Ñ4Ø/°Ñ3°CÑ8¸KÒGà×*Ñ*Ø#Ø!Ø,×0Ñ0°Ó=ð +õ ð ×*Ñ*¨3°_×5HÑ5HÈÓ5MÐ*ÕNñ "r+   ©r}   z	--versionÚversionz%%(prog)s %s)rˆ   r­   z-cz--configÚALEMBIC_CONFIGzalembic.inizaAlternate config file; defaults to value of ALEMBIC_CONFIG environment variable, or "alembic.ini")r‚   rK   rƒ   z-nz--namer   z6Name of section in .ini file to use for Alembic configz-xr�   zlAdditional arguments consumed by custom env.py scripts, e.g. -x setting1=somesetting -x setting2=somesettingr‡   z
--raiseerrr†   z!Raise a full stack trace on errorz-qz--quietzDo not log to std output.rš   r›   r   Ú_zalembic.commandé   r   r0   Ú rŸ   )Úcmd)
r¡   r   r¢   r   r£   r   r¤   r   rj   rk   )r   r    r   r   r:   Úenvironr_   Úadd_subparsersr   ÚstampÚdirri   ÚinspectÚ
isfunctionro   rp   r   Úinspect_getfullargspecÚlenrr   ÚsplitÚstripr�   Ú
add_parserrD   Úset_defaultsr¢   )r&   r}   r«   r¢   Ú
subparsersÚnr¡   Úspecr£   ÚkwargrJ   Úhelp_Ú	help_textÚliner©   rª   s                 @@r)   r|   zCommandLine._generate_args_  sì  ù€ ðc	OØðc	OØ ðc	OØ.1ðc	OØ;>ðc	Oàöc	OôJ   TÔ*ˆà×ÑØ 	°>ÄKÑ3Oð 	ô 	
ð 	×ÑØØÜÜ—J‘J—N‘NÐ#3°]ÓCðDð 	ô 	
ð 	×ÑØØÜØØLð 	ô 	
ð 	×ÑØØð;ð 	ô 	
ð 	×ÑØØØ4ð 	ô 	
ð
 	×ÑØØØØ,ð	 	ô 	
ð ×*Ñ*Ó,ˆ
ô �M‰M˜J¨Ð4ð3
Ðô 14´G´Ó=±¨1”7œ7 AÕ&°Õ=ˆBä×"Ñ" 2Õ&Ø—K‘K ‘N cÓ)Ø—M‘MÐ%6Ó6ä×4Ñ4°RÓ8�Ø˜‘7Ð&Ø!% a¡¨¬c°$°q±'«l¨]Ð!;�JØ  ™G¤S¨¨a©£\ M OÐ4‘Eà!% a¡¨¨ �JØ�EàÐ0Ñ0ñ %/ó"á$.˜Dð 0°Ñ3×7Ñ7¸¸dÕCØ$.ð ð "ð Ÿ
™
�ÙØ "�IØ %§¡¨DÖ 1˜Ø#Ÿz™zœ|Ù!à%×,Ñ,¨T¯Z©Z«\Õ:ñ	 !2ð !#�IØ&×1Ñ1Ø—K‘K c§h¡h¨yÓ&9ð 2ó �	ñ ˜B 	¨:°uÔ=Ø×&Ñ&¨B°
¸EÐ+BÐ&ÖCðG >ðH ˆ�ùòI >ùò"s   Ã?I<Æ-Jc                ód  — |j                   \  }}}	  ||g|D �cg c]  }t        ||d «      ‘Œ c}¢­i |D �ci c]  }|t        ||d «      “Œ c}¤Ž y c c}w c c}w # t        j                  $ r@}|j                  r‚ t        j
                  t        |«      fi |j                  ¤Ž Y d }~y d }~ww xY wrH   )r²   ri   r   r]   ÚraiseerrÚerrr   r2   )r&   ÚconfigÚoptionsr¡   r£   rÂ   ÚkÚes           r)   Úrun_cmdzCommandLine.run_cmdW  s¬   € Ø '§¡ÑˆˆJ˜ð
	:ÙØðá5?Ó@±Z°”'˜' 1 dÕ+°ZÑ@òñ :?Ó?¹°A�1”g˜g q¨$Ó/Ñ/¸Ñ?óùâ@ùÚ?øä× Ñ ò 	:Ø×ÒØä—‘œ˜Q›Ñ9 6×#8Ñ#8×9ûð		:ús2   ’A šA
®	A ·AÁA Á
A ÁB/Á/6B*Â*B/c                óò   — | j                   j                  |«      }t        |d«      s| j                   j                  d«       y t	        |j
                  |j                  |¬«      }| j                  ||«       y )Nr²   ztoo few arguments)r'   r(   r   )r¢   Ú
parse_argsÚhasattrÚerrorr   rÉ   rJ   rÍ   )r&   ÚargvrÊ   Úcfgs       r)   ÚmainzCommandLine.mainf  s`   € Ø—+‘+×(Ñ(¨Ó.ˆÜ�w Ô&ð �K‰K×ÑÐ1Õ2äØ—n‘nØ#ŸL™LØ ôˆCð
 �L‰L˜˜gÕ&r+   rH   )r}   rn   rj   rk   )rÉ   r   rÊ   r   rj   rk   )rÒ   úOptional[Sequence[str]]rj   rk   )ro   rp   rq   r*   r|   rÍ   rÔ   r-   r+   r)   rz   rz   [  s   „ ô"óvóp:õ'r+   rz   c                ó<   — t        |¬«      j                  | ¬«       y)z(The console runner function for Alembic.r¬   )rÒ   N)rz   rÔ   )rÒ   r}   r¤   s      r)   rÔ   rÔ   u  s   € ô �TÔ×Ñ TÐÕ*r+   Ú__main__)NN)rÒ   rÕ   r}   rn   r¤   r   rj   rk   ) Ú
__future__r   Úargparser   r   Úconfigparserr   r·   r:   rs   Útypingr   r   r	   r
   r   r   r   r   r   Útyping_extensionsr   r8   r   r   r   r   r   rg   rz   rÔ   ro   r-   r+   r)   Ú<module>rÝ      s±   ðÝ "å #Ý Ý %Û Û 	Û 
Ý Ý Ý Ý Ý Ý Ý Ý Ý å 'å Ý Ý Ý ÷y
ñ y
ôx	�y¨õ ÷W'ñ W'ðv %)Øð+Ø
!ð+à
ð+ð ð+ð 
ó	+ð ˆzÒÙ…Fð r+   