� !A?h .���� gd�ZddlZdZdZdZeezZdZedzdzZd Zd Z eeze zezZ dd �Z ddl Z dd lmZiZGd �d��Ze���Gd�d��ZdS)) � ascii_letters�ascii_lowercase�ascii_uppercase�capwords�digits� hexdigits� octdigits� printable� punctuation� whitespace� Formatter�Template�Nz �abcdefghijklmnopqrstuvwxyz�ABCDEFGHIJKLMNOPQRSTUVWXYZ� 0123456789�abcdef�ABCDEF�01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c�� |pd�ttj|�|������S)N� )�join�map�str� capitalize�split)�s�seps �3/opt/alt/python-internal/lib64/python3.11/string.pyrr%s7�� � �J�3� � �S���������>�>� ?� ?�?�)�ChainMapc�f��eZdZ dZdZdZejZ�fd�Z d�Z d�Z e fd�Z e fd�Zd �Zd �Z�xZS) r �$z(?a:[_a-z][_a-z0-9]*)Nc �<��t�����d|jvr|j}n=t j|j��}|j}|jp|j}d|�d|�d|�d|�d� }t j ||j tj z��|_dS)N�patternz z(?: (?PzC) | # Escape sequence of two delimiters (?PzJ) | # delimiter and a Python identifier {(?Pz�)} | # delimiter and a braced identifier (?P) # Other ill-formed delimiter exprs ) ) �super�__init_subclass__�__dict__r$�_re�escape� delimiter� idpattern�braceidpattern�compile�flags�VERBOSE)�clsr$�delim�id�bid� __class__s �rr&zTemplate.__init_subclass__Es���� ���!�!�#�#�#� �� � $� $��k�G�G��J�s�}�-�-�E���B��$�5�� �C�� ��� ������ � ���G��k�'�3�9�s�{�+B�C�C�� � � rc��||_dS�N)�template)�selfr7s r�__init__zTemplate.__init__Ws �� �� � � rc� �|�d��}|jd|��d���}|sd}d}n<|td�|dd�����z }t|��}t d||fz���)N�invalidT)�keepends�������z.Invalid placeholder in string: line %d, col %d)�startr7� splitlines�lenr� ValueError)r8�mo�i�lines�colno�linenos r�_invalidzTemplate._invalid\s��� �H�H�Y� � ��� �b�q�b�!�,�,�d�,�;�;��� ��E��F�F���B�G�G�E�#�2�#�J�/�/�0�0�0�E���Z�Z�F��I� �%��)�*�*� *rc �����tur|�n|rt|������fd�}�j�|�j��S)Nc�<��|�d��p|�d��}|�t�|��S|�d����jS|�d�����|��t d�j����N�named�braced�escapedr;�#Unrecognized named group in pattern)�grouprr*rIrCr$�rDrM�mappingr8s ��r�convertz$Template.substitute..convertns�����H�H�W�%�%�;����(�);�);�E�� ��7�5�>�*�*�*��x�x� �"�"�.��~�%��x�x� �"�"�.�� � �b�!�!�!��B�!�\�+�+� +r��_sentinel_dict� _ChainMapr$�subr7�r8rS�kwsrTs`` r� substitutezTemplate.substitutehsg���� �n� $� $��G�G� � .���W�-�-�G� +� +� +� +� +� +��|������7�7�7rc �����tur|�n|rt|������fd�}�j�|�j��S)Nc���|�d��p|�d��}|�: t�|��S#t$r|���cYSwxYw|�d����jS|�d���|���St d�j���rL)rQr�KeyErrorr*rCr$rRs ��rrTz)Template.safe_substitute..convert�s�����H�H�W�%�%�;����(�);�);�E�� �&��w�u�~�.�.�.���&�&�&��8�8�:�:�%�%�%�&�����x�x� �"�"�.��~�%��x�x� �"�"�.��x�x�z�z�!��B�!�\�+�+� +s�A�A%�$A%rUrYs`` r�safe_substitutezTemplate.safe_substitute{sg���� �n� $� $��G�G� � .���W�-�-�G� +� +� +� +� +� +��|������7�7�7rc�"�|j�|j��D]n}|�d���dS|�d���?|�d���*|�d���t d|j����odS)Nr;FrMrNrOrPT)r$�finditerr7rQrC)r8rDs r�is_validzTemplate.is_valid�s����,�'�'�� �6�6� "� "�B��x�x� �"�"�.��u�u�����!�!�)��H�H�X�&�&�.��H�H�Y�'�'�/�!�!F��L�"�"�"���trc�\�g}|j�|j��D]�}|�d��p|�d��}|�||vr|�|���H|�?|�d���*|�d���t d|j�����|S)NrMrNr;rOrP)r$rar7rQ�appendrC)r8�idsrDrMs r�get_identifierszTemplate.get_identifiers�s������,�'�'�� �6�6� "� "�B��H�H�W�%�%�;����(�);�);�E�� �U�#�%5�%5�� � �5�!�!�!�!��-��H�H�Y�'�'�/��H�H�Y�'�'�/�!�!F��L�"�"�"��� r)�__name__� __module__� __qualname__r*r+r,r(� IGNORECASEr.r&r9rIrVr[r_rbrf� __classcell__)r4s@rr r 9s��������8��I� )�I��N� �N�E�D�D�D�D�D�$!�!�!� *� *� *�"0�8�8�8�8�&'5�8�8�8�8�* � � �������rr c�H�eZdZd�Zd�Z d d�Zd�Zd�Zd�Zd�Z d �Z d �Z d S) r c�0�|�|||��Sr6)�vformat)r8� format_string�args�kwargss r�formatzFormatter.format�s���|�|�M�4��8�8�8rc��t��}|�||||d��\}}|�|||��|S)N�)�set�_vformat�check_unused_args)r8rorprq� used_args�result�_s rrnzFormatter.vformat�sE���E�E� ��M�M�-��v�y�!�L�L� ��� ���y�$��7�7�7�� rrc ��|dkrtd���g}|�|��D�]\}} } } |r|�|��| ��| dkr(|durtd���t|��} |dz }n'| ���r|rtd���d}|�| ||��\} } |�| ��|�| | ��} |�| ||||dz |���\} }|�|� | | ������d� |��|fS)NrzMax string recursion exceededr>FzJcannot switch from manual field specification to automatic field numberingr=)�auto_arg_index) rC�parserdr�isdigit� get_field�add� convert_fieldrv� format_fieldr)r8rorprqrx�recursion_depthr|ry� literal_text� field_name� format_spec� conversion�obj�arg_useds rrvzFormatter._vformat�s��� �Q� � ��<�=�=� =���� � �=�)�)�, C�, C� =�L�*�k�:�� ,�� � �l�+�+�+��%� ��#�#�%��.�.�(�*5�6�6�6�"%�^�!4�!4�J�"�a�'�N�N��'�'�)�)�+�%�6�(�*5�6�6�6� &+�N�!%���z�4�� H� H� ��X�� � �h�'�'�'��(�(��j�9�9��/3�m�m���v���q�0�#1�/<�/3�/3�+� �^� � � �d�/�/��[�A�A�B�B�B���w�w�v����.�.rc�L�t|t��r||S||Sr6)� isinstance�int)r8�keyrprqs r� get_valuezFormatter.get_value�s(�� �c�3� � � ���9� ��#�;� rc��dSr6�)r8rxrprqs rrwzFormatter.check_unused_argss�� �rc�"�t||��Sr6)rr)r8�valuer�s rr�zFormatter.format_fields���e�[�)�)�)rc���|�|S|dkrt|��S|dkrt|��S|dkrt|��Std�|�����)Nr�r�az"Unknown conversion specifier {0!s})r�repr�asciirCrr)r8r�r�s rr�zFormatter.convert_field so�� � ��L� �3� � ��u�:�:� � �3� � ���;�;� � �3� � ���<�<� ��=�D�D�Z�P�P�Q�Q�Qrc�*�tj|��Sr6)�_string�formatter_parser)r8ros rr}zFormatter.parses���'� �6�6�6rc��tj|��\}}|�|||��}|D] \}}|rt||��}�||}�!||fSr6)r��formatter_field_name_splitr��getattr) r8r�rprq�first�restr��is_attrrEs rrzFormatter.get_field(sl���8��D�D� ��t��n�n�U�D�&�1�1��� � �J�G�Q�� ��c�1�o�o����!�f����E�z�rN)r) rgrhrirrrnrvr�rwr�r�r}rr�rrr r �s�������9�9�9����!"�3/�3/�3/�3/�l��� � � �*�*�*� R� R� R�(7�7�7� � � � � rr r6)�__all__r�r rrrrrrr r r�rer(� collectionsr rWrVr r&r r�rr�r�s1���  2� 2� 2������� �.��.���/�1� � �� �X� �� (� � � �5� � �]� "�[� 0�:� =� � @� @� @� @�����-�-�-�-�-�-���r�r�r�r�r�r�r�r�l ������y�y�y�y�y�y�y�y�y�yr