Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
options.cpython-313.pyc352 linesDownload Raw Back to __pycache__
1�

2��j�g����SrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	 SSK3Jr SSKJ
r
Jr SSKJrJrJrJrJrJrJrJrJrJr "SS\5r"S	S45r"SS5r"S
S5r\"5rS!S\ S\S\\!S\\ S\\ S\"S\\ S\\\/S4SS4Sjjr#S"S\\\ S\"S\\ 4Sjjr$S#S\ S\"SS4Sjjr%S$S\\SS4Sjjr&S\/S4SS4S jr'\"\5 g)%a�A command line parsing module that lets modules define their own options.5 6This module is inspired by Google's `gflags7<https://github.com/google/python-gflags>`_. The primary difference8with libraries such as `argparse` is that a global registry is used so9that options may be defined in any module (it also enables10`tornado.log` by default). The rest of Tornado does not depend on this11module, so feel free to use `argparse` or other configuration12libraries if you prefer them.13 14Options must be defined with `tornado.options.define` before use,15generally at the top level of a module. The options are then16accessible as attributes of `tornado.options.options`::17 18    # myapp/db.py19    from tornado.options import define, options20 21    define("mysql_host", default="127.0.0.1:3306", help="Main user DB")22    define("memcache_hosts", default="127.0.0.1:11011", multiple=True,23           help="Main user memcache servers")24 25    def connect():26        db = database.Connection(options.mysql_host)27        ...28 29    # myapp/server.py30    from tornado.options import define, options31 32    define("port", default=8080, help="port to listen on")33 34    def start_server():35        app = make_app()36        app.listen(options.port)37 38The ``main()`` method of your application does not need to be aware of all of39the options used throughout your program; they are all automatically loaded40when the modules are loaded.  However, all modules that define options41must have been imported before the command line is parsed.42 43Your ``main()`` method can parse the command line or parse a config file with44either `parse_command_line` or `parse_config_file`::45 46    import myapp.db, myapp.server47    import tornado48 49    if __name__ == '__main__':50        tornado.options.parse_command_line()51        # or52        tornado.options.parse_config_file("/etc/server.conf")53 54.. note::55 56   When using multiple ``parse_*`` functions, pass ``final=False`` to all57   but the last one, or side effects may occur twice (in particular,58   this can result in log messages being doubled).59 60`tornado.options.options` is a singleton instance of `OptionParser`, and61the top-level functions in this module (`define`, `parse_command_line`, etc)62simply call methods on it.  You may create additional `OptionParser`63instances to define isolated sets of options, such as for subcommands.64 65.. note::66 67   By default, several options are defined that will configure the68   standard `logging` module when `parse_command_line` or `parse_config_file`69   are called.  If you want Tornado to leave the logging configuration70   alone so you can manage it yourself, either pass ``--logging=none``71   on the command line or do the following to disable it in code::72 73       from tornado.options import options, parse_command_line74       options.logging = None75       parse_command_line()76 77.. note::78 79   `parse_command_line` or `parse_config_file` function should called after80   logging configuration and user-defined command line flags using the81   ``callback`` option definition, or these configurations will not take effect.82 83.. versionchanged:: 4.384   Dashes and underscores are fully interchangeable in option names;85   options can be defined, set, and read with any mix of the two.86   Dashes are typical for command-line usage while config files require87   underscores.88�N)�_unicode�89native_str)�define_logging_options)�basestring_type�exec_in)90�Any�Iterator�Iterable�Tuple�Set�Dict�Callable�List�TextIO�Optionalc��\rSrSrSrSrg)�Error�z1Exception raised by errors in the options module.�N)�__name__�91__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r��UD:\code\apps\devtools\python\user_packages\Python313\site-packages\tornado/options.pyrrs��;�rrc��\rSrSrSrS'SjrS\S\4SjrS\S\4Sjr	S\S	\SS4S92jr93S\4SjrS\S\
4SjrS\S\4S
jrS\S	\SS4SjrS\\\\44SjrS\\4SjrS\S\\\44SjrS\\\44SjrS(S\S\S\\S\\S\\S\
S\\S\\\/S4SS4SjjrS)S\\\S\
S\\4SjjrS*S\S\
SS4SjjrS+S \\ SS4S!jjr!S	\
SS4S"jr"S\/S4SS4S#jr#S'S$jr$S,S%jr%S&r&g)-�OptionParser�z�A collection of options, a dictionary with object-like access.94 95Normally accessed via static functions in the `tornado.options` module,96which reference a global instance.97�returnNc��0URS'/URS'URS[SURS9 g)N�_options�_parse_callbacks�helpzshow this help information)�typer%�callback)�__dict__�define�bool�_help_callback��selfs r�__init__�OptionParser.__init__�sB��$&��
�
�j�!�,.��
�
�(�)������-��(�(�		�	98r�namec�&�URSS5$)N�_�-)�replace�r-r0s  r�_normalize_name�OptionParser._normalize_name�s���|�|�C��%�%rc���URU5n[URRU5[5(aURUR5$[
SU-5e�NzUnrecognized option %r)r6�99isinstancer#�get�_Option�value�AttributeErrorr5s  r�__getattr__�OptionParser.__getattr__�sW���#�#�D�)���d�m�m�'�'��-�w�7�7��=�=��&�,�,�.�.��5��<�=�=rr=c���URU5n[URRU5[5(aURURU5$[
SU-5er9)r6r:r#r;r<�setr>�r-r0r=s   r�__setattr__�OptionParser.__setattr__�sY���#�#�D�)���d�m�m�'�'��-�w�7�7��=�=��&�*�*�5�1�1��5��<�=�=rc�D�SURR55$)Nc3�8# �UHoRv� M g7f�N�r0)�.0�opts  r�	<genexpr>�(OptionParser.__iter__.<locals>.<genexpr>�s���;�$:�S���$:�s�)r#�valuesr,s r�__iter__�OptionParser.__iter__�s��;�D�M�M�$8�$8�$:�;�;rc�@�URU5nXR;$rH)r6r#r5s  r�__contains__�OptionParser.__contains__�s���#�#�D�)���}�}�$�$rc�$�URU5$rH)r?r5s  r�__getitem__�OptionParser.__getitem__�s������%�%rc�$�URX5$rH)rDrCs   r�__setitem__�OptionParser.__setitem__�s������,�,rc��URR5VVs/sH!upURUR54PM# snn$s snnf)z;An iterable of (name, value) pairs.100 101.. versionadded:: 3.1102�r#�itemsr0r=�r-r0rKs   rr\�OptionParser.items�s<��103:>���9L�9L�9N�O�9N�I�D����3�9�9�;�'�9N�O�O��Os�(A104c�t�URR5Vs1sHoRiM sn$s snf)zGThe set of option-groups created by ``define``.105 106.. versionadded:: 3.1107)r#rN�108group_name)r-rKs  r�groups�OptionParser.groups�s-��109+/�-�-�*>�*>�*@�A�*@�3���*@�A�A��As�5�groupc���URR5VVs0sH8up#U(aXR:XdMURUR	5_M: snn$s snnf)a�The names and values of options in a group.110 111Useful for copying options into Application settings::112 113    from tornado.options import define, parse_command_line, options114 115    define('template_path', group='application')116    define('static_path', group='application')117 118    parse_command_line()119 120    application = Application(121        handlers, **options.group_dict('application'))122 123.. versionadded:: 3.1124)r#r\r`r0r=)r-rcr0rKs    r�125group_dict�OptionParser.group_dict�sU��&"�]�]�0�0�2�126�2�	���E�^�^�3�
"�C�H�H�c�i�i�k�!�2�127�	128��129s130�A!�A!c��URR5VVs0sH upURUR5_M" snn$s snnf)z<The names and values of all options.131 132.. versionadded:: 3.1133r[r]s   r�as_dict�OptionParser.as_dict�s<��1348<�}�}�7J�7J�7L�M�7L�)�$����#�)�)�+�%�7L�M�M��Ms�'A	�defaultr&r%�metavar�multipler'c	���URU5n	X�R;a*[SU	<SURU	R<35e[R135"S5n136U137b�U138RRnU139RbTU140RRRU:Xa0U141RRRS:XaU142Rn143U144RceU145RRRnOSnUW:XaSnUcU(dUb
URnO[nU(aUn
OUn
[UUUUUUUU
US9	nX�RU	'g)	a�Defines a new command line option.146 147``type`` can be any of `str`, `int`, `float`, `bool`,148`~datetime.datetime`, or `~datetime.timedelta`. If no ``type``149is given but a ``default`` is, ``type`` is the type of150``default``. Otherwise, ``type`` defaults to `str`.151 152If ``multiple`` is True, the option value is a list of ``type``153instead of an instance of ``type``.154 155``help`` and ``metavar`` are used to construct the156automatically generated command line help string. The help157message is formatted like::158 159   --name=METAVAR      help string160 161``group`` is used to group the defined options in logical162groups. By default, command line options are grouped by the163file in which they are defined.164 165Command line option names must be unique globally.166 167If a ``callback`` is given, it will be run with the new value whenever168the option is changed.  This can be used to combine command-line169and file-based options::170 171    define("config", type=str, help="path to config file",172           callback=lambda path: parse_config_file(path, final=False))173 174With this definition, options in the file specified by ``--config`` will175override options set earlier on the command line, but can be overridden176by later flags.177 178�Option z already defined in rNr)z	<unknown>�)�	file_namerjr&r%rkrlr`r')
r6r#rrp�sys�	_getframe�f_code�co_filename�f_back�co_name�	__class__�strr<)r-r0rjr&r%rkrlrcr'�179normalized�frame�options_filerpr`�options               rr)�OptionParser.define�sD��Z�)�)�$�/�180����&���t�}�}�Z�8�B�B�D��
��
�
�a� ���� �<�<�3�3�L�181���(��L�L�'�'�3�3�|�C��L�L�'�'�/�/�8�;������<�<�+�+�+����+�+�7�7�I�#�I���$��I��<��� 3��(�(������J�"�J���������!��182183��%+�
�
�j�!r�args�finalc�V�Uc[Rn/n[S[U55H�nXR	S5(dXSn O�XS:Xa	XS-Sn O�XRS5nUR
S5upgnURU5nX`R;aUR5 [SU-5eURUn	U(d%U	R[:XaSnO[SU-5eU	RU5 M� U(aUR5 U$)	a�Parses all options given on the command line (defaults to184`sys.argv`).185 186Options look like ``--option=value`` and are parsed according187to their ``type``. For boolean options, ``--option`` is188equivalent to ``--option=true``189 190If the option has ``multiple=True``, comma-separated values191are accepted. For multi-value integer options, the syntax192``x:y`` is also accepted and equivalent to ``range(x, y)``.193 194Note that ``args[0]`` is ignored since it is the program name195in `sys.argv`.196 197We return a list of all arguments that are not parsed as options.198 199If ``final`` is ``False``, parse callbacks will not be run.200This is useful for applications that wish to combine configurations201from multiple sources.202 203N�r3z--�=z$Unrecognized command line option: %r�truezOption %r requires a value)rq�argv�range�len�204startswith�lstrip�	partitionr6r#�205print_helprr&r*�parse�run_parse_callbacks)206r-r~r�	remaining�i�argr0�equalsr=r|s207          r�parse_command_line�OptionParser.parse_command_line;s��0�<��8�8�D��	��q�#�d�)�$�A��7�%�%�c�*�*� ��H�	���w�$�� �Q���M�	���'�.�.��%�C�"%�-�-��"4��D�%��'�'��-�D��=�=�(����!��B�T�I�J�J��]�]�4�(�F���;�;�$�&�"�E�� <�t� C�D�D��L�L���)%�,��$�$�&��r�pathc���S[RRU50n[US5n[	[UR
55X35 SSS5 UH�nURU5nX`R;dM%URUnUR(aO[X5[[45(d2[SUR<SURR <S35e[X55[La9UR[LdUR(aUR#X55 M�UR%X55 M� U(aUR'5 gg!,(df   GN"=f)aParses and loads the config file at the given path.208 209The config file contains Python code that will be executed (so210it is **not safe** to use untrusted config files). Anything in211the global namespace that matches a defined option will be212used to set that option's value.213 214Options may either be the specified type for the option or215strings (in which case they will be parsed the same way as in216`.parse_command_line`)217 218Example (using the options defined in the top-level docs of219this module)::220 221    port = 80222    mysql_host = 'mydb.example.com:3306'223    # Both lists and comma-separated strings are allowed for224    # multiple=True.225    memcache_hosts = ['cache1.example.com:11011',226                      'cache2.example.com:11011']227    memcache_hosts = 'cache1.example.com:11011,cache2.example.com:11011'228 229If ``final`` is ``False``, parse callbacks will not be run.230This is useful for applications that wish to combine configurations231from multiple sources.232 233.. note::234 235    `tornado.options` is primarily a command-line library.236    Config file support is provided for applications that wish237    to use it, but applications that prefer config files may238    wish to look at other libraries instead.239 240.. versionchanged:: 4.1241   Config files are now always interpreted as utf-8 instead of242   the system default encoding.243 244.. versionchanged:: 4.4245   The special variable ``__file__`` is available inside config246   files, specifying the absolute path to the config file itself.247 248.. versionchanged:: 5.1249   Added the ability to set options via strings in config files.250 251�__file__�rbNrn� is required to be a list of z or a comma-separated string)�osr��abspath�openrr�readr6r#rlr:�listrxrr0r&rr�rBr�)r-r�r�config�fr0ryr|s        r�parse_config_file�OptionParser.parse_config_fileqs��\�b�g�g�o�o�d�3�4��
�$��
���J�q�v�v�x�(�&�9���D��-�-�d�3�J��]�]�*����z�2���?�?�%�f�l�T�3�K�@�@�#� &�{�{�F�K�K�,@�,@�B������%��,��K�K�s�*�f�o�o��L�L���.��J�J�v�|�,�#�&��$�$�&��+�
�s�$E-�-252E<�filec	��Uc[Rn[S[RS-US9 [SUS9 0nURR5H.nUR
UR/5RU5 M0 [UR55GHOupEU(a*[S[RRU5-US9 URSS9 UGHnURUR 5nUR"(aUS	UR"--
nUR$=(d S253nUR&b"UR&S254:waUSUR&--
n[(R*"US5n[-U5S
:�d[-U5S:XaUR/SS2555 [SU<SSUS<3US9 USSHn	[S<SSU	<3US9 M GM GMR [US9 g)z@Prints all the command line options to stderr (or another file).NzUsage: %s [OPTIONS]r�r�z256 257Options:258z
259%s options:260c��UR$rHrI)r|s r�<lambda>�)OptionParser.print_help.<locals>.<lambda>�s��f�k�kr)�keyr�roz
 (default %s)�,�z  --�30� r��34)rq�stderr�printr�r#rN�261setdefaultr`�append�sortedr\r�r��normpath�sortr6r0rkr%rj�textwrap�wrapr��insert)262r-r��by_groupr|�filename�o�prefix�description�lines�lines263          rr��OptionParser.print_help�s����<��:�:�D�
�#�c�h�h�q�k�1��=�
�n�4�(����m�m�*�*�,�F����� 1� 1�2�6�=�=�f�E�-�"�(�.�.�"2�3�K�H���'�"�'�'�*:�*:�8�*D�D�4�P�
�F�F�1�F�2����-�-�f�k�k�:���>�>��c�F�N�N�2�2�F�$�k�k�/�R���>�>�-�&�.�.�B�2F��?�V�^�^�#C�C�K� �
�
�k�7�;���v�;��#�s�5�z�Q���L�L��B�'����a��9��E�!�!�"�I�D���T�2��>�&��	4�$	�4�rc�`�U(a'UR5 [R"S5 gg)Nr)r�rq�exit�r-r=s  rr+�OptionParser._help_callback�s����O�O���H�H�Q�K�rc�:�URRU5 g)zAAdds a parse callback, to be invoked when option parsing is done.N)r$r��r-r's  r�add_parse_callback�OptionParser.add_parse_callback�s�����$�$�X�.rc�8�URH264nU"5 M grH)r$r�s  rr�� OptionParser.run_parse_callbacks�s���-�-�H��J�.rc��[U5$)a�Returns a wrapper around self that is compatible with265`unittest.mock.patch`.266 267The `unittest.mock.patch` function is incompatible with objects like ``options`` that268override ``__getattr__`` and ``__setattr__``.  This function returns an object that can be269used with `mock.patch.object <unittest.mock.patch.object>` to modify option values::270 271    with mock.patch.object(options.mockable(), 'name', value):272        assert options.name == value273)�	_Mockabler,s r�mockable�OptionParser.mockable�s�����rr)r!N�NNNNFNN�NT�TrH)r!r�)'rrrrrr.rxr6rr?rDr	rOr*rRrUrXr274rr\rrar
rerhrr&rr)rr�r�rr�r+r�r�r�rrrrrr�s6���	275�&�C�&�C�&�>��>��>�>��>�C�>�D�>�<�(�<�%��%��%�&��&��&�-��-�C�-�D�-�P�x��c�3�h��0�P�B��C��B�276��277��S�#�X��278�.N��c�3�h��N��#�"�!%��#�48�Z+��Z+��Z+��t�n�	Z+�279�s�m�Z+��#��
Z+��Z+���}�Z+��8�S�E�4�K�0�1�Z+�280�Z+�z?C�4��T�#�Y�'�4�7;�4�	
�c��4�lE'�c�E'�$�E'�$�E'�N�x��/��4��<�D��T��281/�8�B��H�+=�/�$�/��rrc�d�\rSrSrSrS\SS4SjrS\S\4Sjr	S\S	\SS4S282jr283S\SS4SjrSrg)
r�i�a�`mock.patch` compatible wrapper for `OptionParser`.284 285As of ``mock`` version 1.0.1, when an object uses ``__getattr__``286hooks instead of ``__dict__``, ``patch.__exit__`` tries to delete287the attribute it set instead of setting a new one (assuming that288the object does not capture ``__setattr__``, so the patch289created a new attribute in ``__dict__``).290 291_Mockable's getattr and setattr pass through to the underlying292OptionParser, and delattr undoes the effect of a previous setattr.293�optionsr!Nc�>�XRS'0URS'g)Nr#�294_originals)r()r-r�s  rr.�_Mockable.__init__�s��$+�
�
�j�!�&(��
�
�l�#rr0c�.�[URU5$rH)�getattrr#r5s  rr?�_Mockable.__getattr__s���t�}�}�d�+�+rr=c��XR;dS5e[URU5URU'[URX5 g)Nzdon't reuse mockable objects)r�r�r#�setattrrCs   rrD�_Mockable.__setattr__s?���?�?�*�J�,J�J�*� '��
�
�t� <��������
�
�t�+rc�b�[URXRRU55 grH)r�r#r��popr5s  r�__delattr__�_Mockable.__delattr__s����
�
�t�_�_�%8�%8��%>�?rr)
rrrrrrr.rxrr?rDr�rrrrr�r��s]��295�)��)��)�296,��,��,�,��,�C�,�D�,�297@��@��@rr�c��\rSrSr\"5rS"S\S\S\\	S\\S\\S\298S	\\S299\\S\\\/S4SS4S
jjrS\4Sjr
S\S\4SjrS\SS4Sjr/SQrS\S\R"4SjrSSSSSSSSSS.	rSr\R,"S\-\R.5rS\S\R24SjrS\S\3004SjrS\S\4S jrS!rg)#r<iNr0rjr&r%rkrlrpr`r'r!c301���Uc	U(a/nXlUc[S5eX0lX@lXPlX`lXplX�lX�lX l	[RUlg)Nztype must not be None)
r0�302ValueErrorr&r%rkrlrpr`r'rjr<�UNSET�_value)303r-r0rjr&r%rkrlrpr`r's304          rr.�_Option.__init__sY���?�x��G��	��<��4�5�5��	��	��� �
�"��$�� �
����m�m��rc�l�UR[RLaUR$UR$rH)r�r<r�rjr,s rr=�
_Option.value0s$��#�{�{�g�m�m�;�t�|�|�L����Lrr=c�"�[RUR[RUR[UR305[UR0RURUR5nUR(a�/UlURS5H�n[UR[R5(aVUR!S5upEnU"U5nU(aU"U5OUnURR#[%XxS-55 M�URR'U"U55 M� O
U"U5UlUR(bUR)UR5 UR+5$)N�,�:r�)�datetime�_parse_datetime�	timedelta�_parse_timedeltar*�_parse_boolr�
_parse_stringr;r&rlr��split�306issubclass�numbers�Integralr��extendr�r�r'r=)	r-r=�_parse�part�lo_strr2�hi_str�lo�his	         rr��
_Option.parse3s$�����t�3�3����� 5� 5��$�"�"��T�/�/�	307�308�#��I�I�t�y�y�309�	��=�=��D�K����C�(���d�i�i��)9�)9�:�:�(,���s�(;�%�F�v����B�+1����r�B��K�K�&�&�u�R�a��'8�9��K�K�&�&�v�d�|�4�)�!��-�D�K��=�=�$��M�M�$�+�+�&��z�z�|�rc310�|�UR(a�[U[5(d1[SUR<SUR311R<35eUHSnUcM[X R3125(aM$[SUR<SUR313R<35e O\UbY[XR3145(d?[SUR<SUR315R<S[U5<S35eXlURbURUR5 gg)Nrnr�z is required to be a z (z given))	rlr:r�rr0r&rr�r')r-r=�items   rrB�_Option.setMs����=�=��e�T�*�*���y�y�$�)�)�"4�"4�6������#�J�t�Y�Y�,G�,G���9�9�d�i�i�&8�&8�:����� ��E�9�9�)E�)E���y�y�$�)�)�"4�"4�d�5�k�C������=�=�$��M�M�$�+�+�&�%r)316z%a %b %d %H:%M:%S %Yz%Y-%m-%d %H:%M:%Sz%Y-%m-%d %H:%Mz%Y-%m-%dT%H:%Mz%Y%m%d %H:%M:%Sz%Y%m%d %H:%Mz%Y-%m-%dz%Y%m%dz%H:%M:%Sz%H:%Mc��URH#n[RRX5s $ [	SU-5e![a MBf=f)Nz!Unrecognized date/time format: %r)�_DATETIME_FORMATSr��strptimer�r)r-r=�formats   rr��_Option._parse_datetimersU���,�,�F�
��(�(�1�1�%�@�@�-�317�7�%�?�@�@���
��
�s�A�318A�A�hours�minutes�seconds�milliseconds�microseconds�days�weeks)	�h�m�min�s�sec�ms�us�d�wz-[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?z\s*(%s)\s*(\w*)\s*c���[R"5nSnU[U5:a�URR	X5nU(d319[5e[
URS55nURS5=(d SnURRXf5nU[R"S0Xe0D6-
nUR5nU[U5:aM�U$![320a ef=f)Nrr��rr)r�r�r��_TIMEDELTA_PATTERN�match�	Exception�floatrc�_TIMEDELTA_ABBREV_DICTr;�end)r-r=�sum�startr�num�unitss       rr��_Option._parse_timedelta�s���	��$�$�&�C��E��#�e�*�$��+�+�1�1�%�?���#�+�%��A�G�G�A�J�'������321�/�i���3�3�7�7��E���x�)�)�9�U�L�9�9��������#�e�*�$��J���	��	�s�CC �C � C,c�(�UR5S;$)N)�false�0r�)�lowerr�s  rr��_Option._parse_bool�s���{�{�}�$7�7�7rc��[U5$rH)rr�s  rr��_Option._parse_string�s�����r)322r�r'rjrpr`r%rkrlr0r&)NNNNFNNN)rrrr�objectr�rxrrr&r*rr.r=r�rBrr�r�r�_FLOAT_PATTERN�re�compile�323IGNORECASErr�r�r�r�rrrrr<r<s���
�H�E�324�#�"�!%��#'�$(�48�$��$��$��t�n�	$�325�s�m�$��#��
$��$��C�=�$��S�M�$��8�S�E�4�K�0�1�$�326�$�6M�s�M��3��3��4'��'��'�0��A�S�A�X�->�->�A��
��
����
�
�327��F�N������.��
�
����c��h�.@�.@��$8��8��8��3��3�rr<r0rjr&r%rkrlrcr'r!c�6�[RUUUUUUUUS9$)zGDefines an option in the global namespace.328 329See `OptionParser.define`.330)rjr&r%rkrlrcr')r�r))r0rjr&r%rkrlrcr's        rr)r)�s2���>�>���
�
������	�	rr~rc�(�[RXS9$)zUParses global options from the command line.331 332See `OptionParser.parse_command_line`.333�r)r�r�)r~rs  rr�r��s���%�%�d�%�8�8rr�c�(�[RXS9$)zQParses global options from a config file.334 335See `OptionParser.parse_config_file`.336r/)r�r�)r�rs  rr�r��s��337�$�$�T�$�7�7rr�c�,�[RU5$)zaPrints all the command line options to stderr (or another file).338 339See `OptionParser.print_help`.340)r�r�r�s rr�r��s��341���d�#�#rc�.�[RU5 g)ziAdds a parse callback, to be invoked when option parsing is done.342 343See `OptionParser.add_parse_callback`344N)r�r�)r's rr�r��s��345���x�(rr�r�r�rH)(rr�r�r*rqr�r��tornado.escaperr�tornado.logr�tornado.utilrr�typingrr	r346rrr
rrrrrrrr�r<r�rxr&r*r)r�r�r�r�rrr�<module>r7s��� T�l��	�347�	��/�.�1����	�I�	�i�i�X@�@�<S�S�l�.������!���04��348
��
���4�.���3�-�	�349�c�]���
��C�=���x���t��,�-��350��659�9�351�4��9�352�9�-1�9�	�#�Y�9�8�C�8��8��8�$�X�f�%�$��$�)��"�d�(�!3�)��)��w�r
codekingpro/portable-devtools · Team Ai