HOME


Mini Shell 1.0
DIR: /snap/certbot/4482/lib/python3.12/site-packages/pyparsing/__pycache__/
Upload File :
Current File : //snap/certbot/4482/lib/python3.12/site-packages/pyparsing/__pycache__/common.cpython-312.pyc
�

�S�gi5���ddl�ddlmZmZmZddlmZGd�d�Zee�j�D�cgc]}e	|e
�s�
|��c}Zycc}w)�)�*)�
DelimitedList�any_open_tag�
any_close_tag�)�datetimec�z	�eZdZdZee�Z	ee�Z	e	e
�jd�je�Z
	e	e�jd�jeed��Z	ed�jd�je�Z	e�je�dze�je�zjd�Z	ej'd	��eeeed
�j+�ez�zzjd�Z	ej'e�ed�jd
�je�Z	ed�jd�je�Z	eezezjd�j5�Z	ed�jd�je�Z	ed�jd�je�Z	e	ee�jd�Z 	ed�jd�Z!	ed�jd�Z"e"de"zdzzjd�Z#ee"de"zdzz�dzee"de"zdzz�zjd�Z$e$jKd ��d!e!zjd"�Z&e'e#e&ze$zjd#��jd#�Z(	ed$�jd%�Z)	e*dFd&e+fd'��Z,e*dGd&e+fd(��Z-ed)�jd*�Z.	ed+�jd,�Z/	ed-�jd.�Z0	e1j*�e2j*�zZ3e*d/e+d0ed1e4fd2��Z5e'e6e7d3�e8�ze	e9d3�4�zee:d5�e;e8�d3z�z�z��j5�jd6�Z<e=ee>j�e<zd7�8��jd9�Z@	e*ed:���ZA	e*ed;���ZB	ed<�jd=�ZC	e*eDd>e��ZEe*eDd?e��ZFe*eDd@e,��ZGe*eDdAe-��ZHe*eDdBe5��ZIe*eDdCeA��ZJe*eDdDeB��ZKyE)H�pyparsing_commona7Here are some common low-level expressions that may be useful in
    jump-starting parser development:

    - numeric forms (:class:`integers<integer>`, :class:`reals<real>`,
      :class:`scientific notation<sci_real>`)
    - common :class:`programming identifiers<identifier>`
    - network addresses (:class:`MAC<mac_address>`,
      :class:`IPv4<ipv4_address>`, :class:`IPv6<ipv6_address>`)
    - ISO8601 :class:`dates<iso8601_date>` and
      :class:`datetime<iso8601_datetime>`
    - :class:`UUID<uuid>`
    - :class:`comma-separated list<comma_separated_list>`
    - :class:`url`

    Parse actions:

    - :class:`convert_to_integer`
    - :class:`convert_to_float`
    - :class:`convert_to_date`
    - :class:`convert_to_datetime`
    - :class:`strip_html_tags`
    - :class:`upcase_tokens`
    - :class:`downcase_tokens`

    Example::

        pyparsing_common.number.run_tests('''
            # any int or real number, returned as the appropriate type
            100
            -100
            +100
            3.14159
            6.02e23
            1e-12
            ''')

        pyparsing_common.fnumber.run_tests('''
            # any int or real number, returned as float
            100
            -100
            +100
            3.14159
            6.02e23
            1e-12
            ''')

        pyparsing_common.hex_integer.run_tests('''
            # hex numbers
            100
            FF
            ''')

        pyparsing_common.fraction.run_tests('''
            # fractions
            1/2
            -3/4
            ''')

        pyparsing_common.mixed_integer.run_tests('''
            # mixed fractions
            1
            1/2
            -3/4
            1-3/4
            ''')

        import uuid
        pyparsing_common.uuid.set_parse_action(token_map(uuid.UUID))
        pyparsing_common.uuid.run_tests('''
            # uuid
            12345678-1234-5678-1234-567812345678
            ''')

    prints::

        # any int or real number, returned as the appropriate type
        100
        [100]

        -100
        [-100]

        +100
        [100]

        3.14159
        [3.14159]

        6.02e23
        [6.02e+23]

        1e-12
        [1e-12]

        # any int or real number, returned as float
        100
        [100.0]

        -100
        [-100.0]

        +100
        [100.0]

        3.14159
        [3.14159]

        6.02e23
        [6.02e+23]

        1e-12
        [1e-12]

        # hex numbers
        100
        [256]

        FF
        [255]

        # fractions
        1/2
        [0.5]

        -3/4
        [-0.75]

        # mixed fractions
        1
        [1]

        1/2
        [0.5]

        -3/4
        [-0.75]

        1-3/4
        [1.75]

        # uuid
        12345678-1234-5678-1234-567812345678
        [UUID('12345678-1234-5678-1234-567812345678')]
    �integerzhex integer�z[+-]?\d+zsigned integer�/�fractionc��|d|dzS)Nr����)�tts ��/build/snapcraft-certbot-29b1212f749eeba2f1dece1adfe9a83a/parts/certbot/install/lib/python3.12/site-packages/pyparsing/common.py�<lambda>zpyparsing_common.<lambda>�s���A���B�����-z"fraction or mixed integer-fractionz[+-]?(?:\d+\.\d*|\.\d+)zreal numberz@[+-]?(?:\d+(?:[eE][+-]?\d+)|(?:\d+\.\d*|\.\d+)(?:[eE][+-]?\d+)?)z$real number with scientific notation�numberz[+-]?\d+\.?\d*(?:[eE][+-]?\d+)?�fnumberz;(?i:[+-]?(?:(?:\d+\.?\d*(?:e[+-]?\d+)?)|nan|inf(?:inity)?))�
ieee_float�
identifierzK(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})){3}zIPv4 addressz[0-9a-fA-F]{1,4}�hex_integer�:�zfull IPv6 address)r�z::zshort IPv6 addressc�,�td�|D��dkS)Nc3�`K�|]&}tjj|�s�#d���(y�w)rN)r
�
_ipv6_part�matches)�.0rs  r�	<genexpr>z,pyparsing_common.<lambda>.<locals>.<genexpr>�s$����O�B�'7�'B�'B�'J�'J�2�'N�a�O�s�$.�.�)�sum��ts rrzpyparsing_common.<lambda>�s��#�O�!�O�O�RS�S�rz::ffff:zmixed IPv6 addresszIPv6 addressz:[0-9a-fA-F]{2}([:.-])[0-9a-fA-F]{2}(?:\1[0-9a-fA-F]{2}){4}zMAC address�fmtc����fd�}|S)a�
        Helper to create a parse action for converting parsed date string to Python datetime.date

        Params -
        - fmt - format to be passed to datetime.strptime (default= ``"%Y-%m-%d"``)

        Example::

            date_expr = pyparsing_common.iso8601_date.copy()
            date_expr.set_parse_action(pyparsing_common.convert_to_date())
            print(date_expr.parse_string("1999-12-31"))

        prints::

            [datetime.date(1999, 12, 31)]
        c���	tj|d��j�S#t$r}t	||t|���d}~wwxYw�Nr)r�strptime�date�
ValueError�ParseException�str)�ss�llr�ver)s    �r�cvt_fnz0pyparsing_common.convert_to_date.<locals>.cvt_fnsK���
6��(�(��A���4�9�9�;�;���
6�$�R��S��W�5�5��
6�s�&*�	A�A	�	Ar�r)r5s` r�convert_to_datez pyparsing_common.convert_to_dates���&	6��
rc����fd�}|S)aHelper to create a parse action for converting parsed
        datetime string to Python datetime.datetime

        Params -
        - fmt - format to be passed to datetime.strptime (default= ``"%Y-%m-%dT%H:%M:%S.%f"``)

        Example::

            dt_expr = pyparsing_common.iso8601_datetime.copy()
            dt_expr.set_parse_action(pyparsing_common.convert_to_datetime())
            print(dt_expr.parse_string("1999-12-31T23:59:59.999"))

        prints::

            [datetime.datetime(1999, 12, 31, 23, 59, 59, 999000)]
        c���	tj|d��S#t$r}t||t	|���d}~wwxYwr,)rr-r/r0r1)�s�lr(r4r)s    �rr5z4pyparsing_common.convert_to_datetime.<locals>.cvt_fn1sB���
4��(�(��1��s�3�3���
4�$�Q��3�r�7�3�3��
4�s��	A�;�Arr6s` r�convert_to_datetimez$pyparsing_common.convert_to_datetimes���&	4��
rz7(?P<year>\d{4})(?:-(?P<month>\d\d)(?:-(?P<day>\d\d))?)?zISO8601 datez�(?P<year>\d{4})-(?P<month>\d\d)-(?P<day>\d\d)[T ](?P<hour>\d\d):(?P<minute>\d\d)(:(?P<second>\d\d(\.\d*)?)?)?(?P<tz>Z|[+-]\d\d:?\d\d)?zISO8601 datetimez2[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}�UUIDr:r;�tokensc�F�tjj|d�S)aParse action to remove HTML tags from web page HTML source

        Example::

            # strip HTML links from normal text
            text = '<td>More info at the <a href="https://github.com/pyparsing/pyparsing/wiki">pyparsing</a> wiki page</td>'
            td, td_end = make_html_tags("TD")
            table_text = td + SkipTo(td_end).set_parse_action(pyparsing_common.strip_html_tags)("body") + td_end
            print(table_text.parse_string(text).body)

        Prints::

            More info at the pyparsing wiki page
        r)r
�_html_stripper�transform_string)r:r;r>s   r�strip_html_tagsz pyparsing_common.strip_html_tagsHs��  �.�.�?�?��q�	�J�Jr�,)�
exclude_charsz 	�	commaItem�)�defaultzcomma separated listc�"�|j�S�N)�upperr's rrzpyparsing_common.<lambda>ks��Q�W�W�Y�rc�"�|j�SrI)�lowerr's rrzpyparsing_common.<lambda>ns��q�w�w�y�ra�(?P<url>(?:(?:(?P<scheme>https?|ftp):)?\/\/)(?:(?P<auth>\S+(?::\S*)?)@)?(?P<host>(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(:(?P<port>\d{2,5}))?(?P<path>\/[^?# ]*)?(\?(?P<query>[^#]*))?(#(?P<fragment>\S*))?)�url�convertToInteger�convertToFloat�
convertToDate�convertToDatetime�
stripHTMLTags�upcaseTokens�downcaseTokensN)z%Y-%m-%d)z%Y-%m-%dT%H:%M:%S.%f)L�__name__�
__module__�__qualname__�__doc__�	token_map�int�convert_to_integer�float�convert_to_float�Word�nums�set_name�set_parse_actionr�hexnumsr�Regex�signed_integerr�add_parse_action�Opt�suppress�
mixed_integerr&�real�sci_real�
streamlinerrr�
identchars�identbodycharsr�ipv4_addressr!�_full_ipv6_address�_short_ipv6_address�
add_condition�_mixed_ipv6_address�Combine�ipv6_address�mac_address�staticmethodr1r7r<�iso8601_date�iso8601_datetime�uuidrrr@�ParseResultsrB�	OneOrMore�Literal�LineEnd�
printables�White�
FollowedBy�
_commasepitemr�
quoted_string�copy�comma_separated_list�
upcase_tokens�downcase_tokensrM�replaced_by_pep8rNrOrPrQrRrSrTrrrr
r
s���O�b#�3����!��'����4�j�!�!�)�,�=�=�>P�Q�G�D�	
�W�
���}�-�>�>�y��b�?Q�R��G�	�k��	��"�	#�	�	�,�	-��
W�	��)�)�*:�;�

�	�
�
�
+�
+�,<�
=�	>��h�z��	
�
U����7�8�	�>�C��C��(9�(9�(;�h�(F�$G�G�G��h�3�4��g��"�"�3�'�	�(�)�	��-�	 �	�	�*�	+�	�
M�	�Q�R�	��8�	9�	�	�*�	+�
�
/���o��.�
8�
8��
B�
M�
M�
O�F�G�	�0�1�	��)�	�	�	�*�	+��
4�	�L�M�	��,�	�	�	�*�	+��
]��j�.�1�:�:�<�H�J�d��V���h�~���3��*�+�4�4�]�C�J�$��j�(8�A�'=�=�G�G����	�J�#�
�*�f�4�4�5�
�	�

�j�C�*�,��6�6�
7�	8��h�#�$�	�
�%�%�S��%�|�3�=�=�>R�S���	�1�	1�4G�	G�Q�Q��	
���h�~��	�
0��E���h�}���G���S����4������4�B���h�~���$��	R���h�!�"��]��F�G�P�P�QW�X�D�5�*�\�*�*�,�/E�}�/E�/E�/G�G�N��K�3�K�3�K��K��K�$	�����
��9�*���z��5�6��e�E�l�j���S��&A�%A�A�B�C�
�	
�
���	��+�	��)��M��� �=�0�"�=���h�%�&��e� ��+>�!?�@�M�7�"�9�-@�#A�B�O�7��*	
�.�\�h�u�o�]�^&�
$�$4�5G�I[�$\�]��!�"2�3C�EU�"V�W�N� �!1�/�?�!S�T�M�$�%5�6I�K^�%_�`�� �!1�/�?�!S�T�M�� 0��� O�P�L�!�"2�3C�_�"U�V�Nrr
N)�core�helpersrrrrr
�vars�values�
isinstance�
ParserElement�_builtin_exprs)�vs0r�<module>r�sT���?�?��dW�dW�R
�$�%�,�,�.��
�*�Q�
�2N�A����s�A�A