� ��g�B��h�dZddlmZdZgd�Z ddlTdZd S#e$�r ddlTddl m Z n#e$rddl TYnwxYwdZdd l Z e j d kZ dd lZn #e$rd ZYnwxYwee pe��Z[ [ereZndd lmZeee��reZndd l mZGd �de��Ze��fd�Zd�Zd"d�ZeZGd�de��Zdd lZ d#d�Zdd l Z e j!dkZ"e"re j#d��Z$ne j#d��Z$d�Z%dd l&Z&e&j'd���Z(ddl m)Z)d�Z*d�Z+d�Z,d�Z-d �Z.d$d!�Z/Yd SwxYw)%a�Shim module exporting the same ElementTree API for lxml and xml.etree backends. When lxml is installed, it is automatically preferred over the built-in xml.etree module. On Python 2.7, the cElementTree module is preferred over the pure-python ElementTree module. Besides exporting a unified interface, this also defines extra functions or subclasses built-in ElementTree classes to add features that are only availble in lxml, like OrderedDict for attributes, pretty_print and iterwalk. �)�tostrz#<?xml version='1.0' encoding='%s'?>)�Comment�dump�Element� ElementTree� fromstring�fromstringlist� iselement� iterparse�parse� ParseError�PI�ProcessingInstruction�QName� SubElement�tostring� tostringlist� TreeBuilder�XML� XMLParser�register_namespace)�*T)rFN)��)� OrderedDict)rc�6��eZdZdZe��f�fd� Z�xZS)rz4Element subclass that keeps the order of attributes.c ����tt|���|��t��|_|r|j�|��|r|j�|��dSdS)N)�superr�__init__�_Attrib�attrib�update)�self�tagr!�extra� __class__s ��d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fontTools/misc/etree.pyrzElement.__init__Usx��� �'�4� � � )� )�#� .� .� .�!�)�)�D�K�� +�� �"�"�6�*�*�*�� *�� �"�"�5�)�)�)�)�)� *� *�)�__name__� __module__� __qualname__�__doc__r r� __classcell__�r&s@r'rrRsL�������B�B�'.�w�y�y� *� *� *� *� *� *� *� *� *� *r(rc �N�|j||fi|��}|�|��|S)z�Must override SubElement as well otherwise _elementtree.SubElement fails if 'parent' is a subclass of Element object. )r&�append)�parentr$r!r%�elements r'rr]s7��#�&�"�3��8�8�%�8�8��� � �g�����r(c#�K�|dup |j|k}|r d|vrd|fV�|D]}t|||��D]}|V���|rd|fV�dSdS)N�start�end)r$� _iterwalk)r2�eventsr$�include�e�items r'r6r6es�������+�3����!3�� � %�w�&�(�(��G�$� $� $� $�� � �A�!�!�V�S�1�1� � ��� � � � � � � #��'�"� "� "� "� "� "� #� #r(�r5c#�K�t|��r|}n|���}|dkrd}t|||��D]}|V��dS)z�A tree walker that generates events from an existing tree as if it was parsing XML data with iterparse(). Drop-in replacement for lxml.etree.iterwalk. rN)r �getrootr6)�element_or_treer7r$r2r:s r'�iterwalkr?osn���� �_� %� %� 0�%�G�G�%�-�-�/�/�G� �#�:�:��C��g�v�s�3�3� � �D��J�J�J�J� � r(c�.��eZdZdZ d�fd� Z�xZS)ra"ElementTree subclass that adds 'pretty_print' and 'doctype' arguments to the 'write' method. Currently these are only supported for the default XML serialization 'method', and not also for "html" or "text", for these are delegated to the base class. NFc���|r4|dkr.tt|���||||���dS|�.|���dkr|rt d���d}d}n|�|duo|���dv}n|}|�d}|rt |j��t||��5}|r2|t|���z��|r |d��|r%|t|����|r |d��t|j��\} } t||j| | ��ddd��dS#1swxYwYdS) N�xml)�encoding�xml_declaration�method�unicodez<Serialisation to unicode must not request an XML declarationF)�ASCIIzUTF-8�UTF8zUS-ASCIIrG� ) rr�write�lower� ValueError�upper�_indent�_root� _get_writer�XML_DECLARATION� _tounicode� _namespaces�_serialize_xml) r#�file_or_filenamerCrDrE�doctype� pretty_print�write_declarationrJ�qnames� namespacesr&s �r'rJzElementTree.write�s���� �&�E�/�/��k�4�(�(�.�.�$�%�$3�!� /���� ���#����(8�(8�I�(E�(E�"��$�V����%*�!�$��� �(�$,�D�$8�%�X�^�^�=M�=M�V�>�!�!�%4�!���"��� $��� �#�#�#��-�x�8�8� F�E�$�$��E�/�H�N�N�,<�,<�<�=�=�=�#�$���d� � � ��$��E�*�W�-�-�.�.�.�#�$���d� � � �%0���%<�%<�"�� ��u�d�j�&�*�E�E�E� F� F� F� F� F� F� F� F� F� F� F� F���� F� F� F� F� F� Fs�1B E�E �E )NFNNF)r)r*r+r,rJr-r.s@r'rrsb������� � ��!����7 F�7 F�7 F�7 F�7 F�7 F�7 F�7 F�7 F�7 Fr(rc���|dkrtj��ntj��}t|���||||||���|���S)zjCustom 'tostring' function that uses our ElementTree subclass, with pretty_print support. rF)rCrDrErVrW)�io�StringIO�BytesIOrrJ�getvalue)r2rCrDrErVrW�streams r'rr�sl��#+�i�"7�"7������R�Z�\�\���G���"�"� ��+���%� #� � � ���� � � r(i��u[- - -￾-￿]u[- - -���-���￾-￿]c��� t|dd���}n7#t$rtd���t$rt |��YnwxYw|r)t �|��rtd���|S)aTest if a string is valid user input and decode it to unicode string using ASCII encoding if it's a bytes string. Reject all bytes/unicode input that contains non-XML characters. Reject all bytes input that contains non-ASCII characters. �ascii�strict�rC�errorsz^Bytes strings can only contain ASCII characters. Use unicode strings for non-ASCII characters.zYAll strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters)r�UnicodeDecodeErrorrL�AttributeError�_raise_serialization_error�_invalid_xml_string�search)�ss r'rRrR�s���  *��a�'�(�;�;�;�A�A��!� � � ��@��� �� *� *� *� &�q� )� )� )� )� )� *���� � �$�+�+�A�.�.� ��6��� ��s��1A �A c#�K� |j}|dkr|V�dSd}t|tj��r|}n}t|tj��rtj|��}d}nLtj��}d�|_||_ |j|_|j|_n#t$rYnwxYwtj ||dd���} |jV�|� ��|r|� ��dSdS#|� ��|r|� ��wwxYw#t$rDt|d|dkrd n|d� ��}|5|jV�ddd��YdS#1swxYwYYdSwxYw) NrFFTc��dS)NT�rnr(r'�<lambda>z_get_writer.<locals>.<lambda>&s��4�r(�xmlcharrefreplacerI)rCre�newline�wzutf-8rd) rJ� isinstancer\�BufferedIOBase� RawIOBase�BufferedWriter�writable�seekable�tellrg� TextIOWrapper�detach�open)rUrCrJ� detach_buffer�buf�wrapper�fs r'rPrPsE����4 %�$�*�E��9�$�$�� � � � � �!&� ��.��0A�B�B��*�C�C�� 0�"�,�?�?���+�,<�=�=�C�$(�M�M��+�-�-�C�#/�<�C�L� %�C�I��(8�'@�� �#3�#8�����)�����������*��%�.� � ���� %�!�-�'�'�'��N�N�$�$�$�$�%�� � � � � � � �%�%���N�N�$�$�$�$�%�� � � � � � �%�����c� � � �� ��$,� �$9�$9���x�*� ���A� � � ��g� � � � � � � � � � � � � � � � ���� � � � � � � � ���sS�D3� B#�# B0�/B0� D�-D0�3'F� E2�$ F�2E6 �6F�9E6 �:F�F)�_namespace_mapc����ddi�i���fd�}|���D�])}|j}t|t��r|j�vr||j��nHt|t ��r|�vr ||��n#|�!|t ur|turt|��|� ��D]^\}}t|t��r|j}|�vr ||��t|t��r|j�vr||j���_|j}t|t��r|j�vr||j����+��fS)Nc��� t|��}|dd�dkr�|dd��dd��\}}��|��}|�Ctj|��}|�dt ���z}nt|��}|dkr|�|<|r |�d|���|<dS|�|<dS|�|<dS#t $rt |��YdSwxYw)N��{�}zns%drB�:)rR�rsplit�getr��len� TypeErrorrh)�qname�urir$�prefixrZrYs ��r'� add_qnamez_namespaces.<locals>.add_qnameIs��� 2�"�5�)�)����!��9��#�#�$�Q�R�R�y�/�/��Q�7�7�H�C��'�^�^�C�0�0�F��~�!/�!3�C�!8�!8��!�>�%+�c�*�o�o�%=�F�F�%/��%7�%7�F�!�U�?�?�.4�J�s�O��,�39�6�6�3�3�(?��u� � � �(+��u� � � �$)�F�5�M�M�M��� 2� 2� 2�*�5�1�1�1�1�1�1� 2���s�B$B7�)B7�0B7�7C�C) �iterr$rsr�text�strrrrh�items)�elemr�r$�key�valuer�rZrYs @@r'rSrS@s���������� � 2� 2� 2� 2� 2� 2�2�I�I�K�K� %� %�D��(�C��#�u�%�%� 0��8�6�)�)��I�c�h�'�'�'���C��%�%� 0��f�$�$��I�c�N�N�N����S��%7�%7�C�r�M�M�*�3�/�/�/�"�j�j�l�l� *� *� ��U��c�5�)�)�#��(�C��f�$�$��I�c�N�N�N��e�U�+�+�*�� �&�0H�0H��I�e�j�)�)�)���9�D��$��&�&� %�4�9�F�+B�+B�� �$�)�$�$�$���z�!�!r(c �6�|j}|j}|tur|dt|��z���n>|tur|dt|��z���n||�t|��nd}|�3|r|t |����|D]}t |||d����n�|d|z��|rPt|���d����D]+\}} | rd| z} |d| �dt|���d ����,|j } | r�t| ��d kst| ��tur| ���} n!t| �����} | D]�\} } t| t��rt| j��} nt| ��} t| t��r|t| j��} nt| ��} |d || �d| �d �����|�t|��rN|d ��|r|t |����|D]}t |||d���|d |zd z��n |d��|jr|t |j����dSdS)Nz <!--%s-->z<?%s?>�<c��|dS)Nr�rn)�xs r'roz _serialize_xml.<locals>.<lambda>�s ��!�A�$�r()r�r�z xmlnsz="�"r�� �>z</z/>)r$r�rrRr� _escape_cdatarT�sortedr��_escape_attribr!r��typer rsr�tail)rJr�rYrZ�kwargsr$r�r9r�r��attrsr��k�vs r'rTrTxs���h���y�� �'�>�>� �E�+� �4� 0� 0�0� 1� 1� 1� 1� �)� )� )� �E�(�Z��-�-�-� .� .� .� .��C�O��C�����F�C��{��/��E�-��-�-�.�.�.��;�;�A�"�5�!�V�T�:�:�:�:�;���c�C�i� � � ��O�'-�"�(�(�*�*���(�(�(�O�O� ��V�"�2�%(�6�\�F���������9L�9L�9L�9L�M�N�N�N�N�� ���;��5�z�z�Q���$�u�+�+��*@�*@� %� � � � ���!'�u�{�{�}�}� 5� 5�� %� ;� ;���1�%�a��/�/�.� *�1�6� 2� 2�A�A� *�1� � �A�%�a��/�/�2� &�z�!�&�'9�'9� :�A�A� .�q� 1� 1�A����F�1�I�I�I�q�q�q�9�:�:�:�:��#�s�4�y�y�#��E�#�J�J�J��3���m�D�1�1�2�2�2�!�?�?��&�u�a���>�>�>�>��E�$��*�s�*�+�+�+�+��E�$�K�K�K� �9� ,� �E�-�� �*�*� +� +� +� +� +� ,� ,r(c�R�td|�dt|��j�d����)Nzcannot serialize z (type �))r�r�r)�r�s r'rhrh�s*���i�4�4�4��d���AT�AT�AT�U�V�V�Vr(c�� t|��}d|vr|�dd��}d|vr|�dd��}d|vr|�dd��}|S#ttf$rt |��YdSwxYw)N�&�&amp;r��&lt;r��&gt;�rR�replacer�rgrhr�s r'r�r��s��� -��d�#�#�D��d�{�{��|�|�C��1�1���d�{�{��|�|�C��0�0���d�{�{��|�|�C��0�0���K���>�*� -� -� -� &�t� ,� ,� ,� ,� ,� ,� -���s�AA!�! B�Bc�x� t|��}d|vr|�dd��}d|vr|�dd��}d|vr|�dd��}d|vr|�dd��}d |vr|�d d ��}|S#ttf$rt |��YdSwxYw) Nr�r�r�r�r�r�r�z&quot;rIz&#10;r�r�s r'r�r��s��� -��d�#�#�D��d�{�{��|�|�C��1�1���d�{�{��|�|�C��0�0���d�{�{��|�|�C��0�0���d�{�{��|�|�C��2�2���t�|�|��|�|�D�'�2�2���K���>�*� -� -� -� &�t� ,� ,� ,� ,� ,� ,� -���s�BB� B9�8B9c��d|dzz}t|��r�|jr|j���s |dz|_|jr|j���s||_|D]}t ||dz���|jr|j���s ||_dSdS|r)|jr|j���s ||_dSdSdS)NrIz r�)r�r��stripr�rN)r��level�is r'rNrN�s�� �5�4�<� �� �t�9�9� ��9� %�D�I�O�O�$5�$5� %���H�� ��9� �D�I�O�O�$5�$5� ��� �� )� )����e�a�i�(�(�(�(��9� �D�I�O�O�$5�$5� ��� � � � � �� �d�i� �t�y���/@�/@� ��� � � � � � � r()r;N)NNNNF)r)0r,�fontTools.misc.textToolsrrQ�__all__� lxml.etree� _have_lxml� ImportError�xml.etree.cElementTree�xml.etree.ElementTreer�sys� version_info�PY36�__pypy__�bool�_dict_is_ordered�dictr � collectionsrrsrr��_Elementrr6r?r� _ElementTreer\r�re� maxunicode�UCS2�compilerirR� contextlib�contextmanagerrPr�rSrTrhr�r�rNrnr(r'�<module>r�sr�� � �+�*�*�*�*�*�<�� � � ��0s������J�J�J���o�o�o�,�,�,�,�,� .�-�-�-�-�-�-�� �,�,�,�+�+�+�+�+�+�,�����J��J�J�J� � �v� %�D�������� �������������t�D�,�H�-�-�� �h��7����6�6�6�6�6�6��z�'�4� � �>���� >�=�=�=�=�=� *� *� *� *� *�(� *� *� *�(/�w�y�y�����#�#�#� � � � ��L�?F�?F�?F�?F�?F�l�?F�?F�?F�B�I�I�I������ !�!�!�!�0�I�I�I� �>�H� $�D� � �(�b�j� D� � ���)�b�j� Q� � �����,������6%�6%���6%�p5�4�4�4�4�4�6"�6"�6"�p3,�3,�3,�jW�W�W� -� -� -�-�-�-�$�������C o���sO��D1� *�D1� 6�D1�6�D1� A�D1�A�D1�A�CD1�0D1
Memory