� ��g���r�dZddlmZmZmZmZddlZddlZddlZdZ Gd�de ��Z d�Z d�Z d �Zd �ZdS) z*xmlWriter.py -- Simple XML authoring class�)�byteord�strjoin�tobytes�tostrNz c��eZdZedddfd�Zd�Zd�Zd�Zdd �Zd �Z dd �Z d �Z dd�Z d�Z d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)� XMLWriterN�utf_8� c�d�|����dd���dd��dkrtd���|dkr tj}t |d��s$||_t|d��|_d|_ nd|_||_d |_ |j� d ��t|_ n6#t$r)|j� d��t|_ YnwxYw|� |��|_|�%|� t j��|_n|� |��|_d |_g|_d |_||_d |_|�d ��|���dS)N�-��_�utf8z!Only UTF-8 encoding is supported.�write�wbTF�r�z&<?xml version="1.0" encoding="UTF-8"?>)�lower�replace� Exception�sys�stdout�hasattr�filename�open�file� _closeStreamrr�totype� TypeErrorr� indentwhite�os�linesep� newlinestr� indentlevel�stack� needindent�idlefunc� idlecounter� _writeraw�newline)�self� fileOrPathr r'�encodingr#s �h/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fontTools/misc/xmlWriter.py�__init__zXMLWriter.__init__ s��� �>�>� � � #� #�C�� ,� ,� 4� 4�S�"� =� =�� G� G��?�@�@� @� �� � ���J��z�7�+�+� &�&�D�M��Z��.�.�D�I� $�D� � � �D�M�"�D�I� %�D� � � �I�O�O�C� � � �!�D�K�K��� � � � �I�O�O�B� � � ��D�K�K�K� ���� �;�;�{�3�3��� � �"�k�k�"�*�5�5�D�O�O�"�k�k�*�5�5�D�O������ ���� �� ���� ���?�@�@�@� � � �����s�,&C�0D�Dc��|S�N��r+s r.� __enter__zXMLWriter.__enter__9s��� rc�.�|���dSr1)�close)r+�exception_type�exception_value� tracebacks r.�__exit__zXMLWriter.__exit__<s�� � � � � � � � rc�J�|jr|j���dSdSr1)rrr6r3s r.r6zXMLWriter.close?s/�� � � � �I�O�O� � � � � � � rTc�N�|�t|��|���dS)z Writes text.��indentN�r)�escape)r+�stringr>s r.rzXMLWriter.writeCs$�� ���v�f�~�~�f��5�5�5�5�5rc�<�|�d|zdz��dS)zWrites text in a CDATA section.z <![CDATA[z]]>N)r)�r+rAs r.� writecdatazXMLWriter.writecdataGs$�� ���{�V�+�e�3�4�4�4�4�4rFc�N�|�t|��|���dS)z�Writes a bytes() sequence into the XML, escaping non-ASCII bytes. When this is read in xmlReader, the original bytes can be recovered by encoding to 'latin-1'.)�stripN)r)� escape8bit)r+�datarFs r.� write8bitzXMLWriter.write8bitKs(�� ���z�$�'�'�u��5�5�5�5�5rc�N�|�t|��d���dS)z Writes text without indentation.Fr=Nr?rCs r.�write_noindentzXMLWriter.write_noindentRs$�� ���v�f�~�~�e��4�4�4�4�4rc��|r5|jr.|j�|j|jz��d|_|�|d���}|r|���}|j�|��dS)z Writes bytes, possibly indented.rr )r-N)r&rrr$r rrF)r+rHr>rF�ss r.r)zXMLWriter._writerawVs}�� � �d�o� � �I�O�O�D�,�t�/?�?� @� @� @��D�O� �K�K��w�K� /� /�� � ���� � �A� � ��������rc��|j�|j��d|_|j}|dzs|j�|���|dz|_dS)Nr�d)rrr#r&r(r')r+r(s r.r*zXMLWriter.newline`sZ�� � �����(�(�(�����&� ��S� � �T�]�%>� �M�M�O�O�O�&��?����rc�&�t|��}|�d��}|�d|dz��|dd�D].}|���|�d|z���/|�d��dS)Nr z<!-- rrz z -->)r@�splitr)r*)r+rH�lines�lines r.�commentzXMLWriter.commenths����d�|�|��� � �4� � �� ���w��q��)�*�*�*��!�"�"�I� +� +�D� �L�L�N�N�N� �N�N�7�T�>� *� *� *� *� ���v�����rc�Z�|j|i|��}d|�|�d�}|�|��dS)N�<z/>)�stringifyattrsr)�r+�_TAG_�args�kwargs�attrdatarHs r.� simpletagzXMLWriter.simpletagqsC��&�4�&��7��7�7���!�E�8�8�8�,�� ���t�����rc��|j|i|��}d|�|�d�}|�|��|j�|��|���dS)NrV�>)rWr)r%�appendr>rXs r.�begintagzXMLWriter.begintagvsd��&�4�&��7��7�7��� �5�(�(�(�+�� ���t���� � ���%� � � � � � � � � � � rc��|jr|jd|ks Jd���|jd=|���d|z}|�|��dS)N�����znonmatching endtagz</%s>)r%�dedentr))r+rYrHs r.�endtagzXMLWriter.endtag}s`���z�K�d�j��n��5�5�5�7K�5�5�5� �J�r�N� � � � � � ����� ���t�����rc�:�d}|dz}d}tdt|��|��D]r}t||||z���}d}d}td||��D]} ||z|| | |z�z}d}�|�|��|����sdS)N���rr � )�range�len�hexStrr)r*) r+rH� linelength� hexlinelength� chunksize�i�hexlinerS�white�js r.�dumphexzXMLWriter.dumphex�s���� �"�Q�� �� ��q�#�d�)�)�Z�0�0� � �A��T�!�a�*�n�"4�5�6�6�G��D��E��1�m�Y�7�7� � ���e�|�g�a�!�i�-�.?�&@�@����� �N�N�4� � � � �L�L�N�N�N�N� � rc�$�|jdz|_dS)Nr�r$r3s r.r>zXMLWriter.indent�s���+�a�/����rc�>�|jdksJ�|jdz |_dS)Nrrrwr3s r.rdzXMLWriter.dedent�s,����!�#�#�#�#��+�a�/����rc�6�|r&|rJ�t|�����}n"|rt|��dksJ�|d}ndSd}|D]I\}}t|tt f��st |��}|d|�dt |���d�z}�J|S)Nrrr rjz="�")�sorted�itemsrl� isinstance�bytes�str� escapeattr)r+rZr[� attributesrH�attr�values r.rWzXMLWriter.stringifyattrs�s��� � ��O�O�8��� � ���/�/�J�J� � ��t�9�9��>�>�>�>��a��J�J��2���%� A� A�K�D�%��e�e�S�\�2�2� #��E� � ���4����j��.?�.?�.?�.?�@�@�D�D�� r)T)F)TF)�__name__� __module__� __qualname__�INDENTr/r4r:r6rrDrIrKr)r*rTr]rarerur>rdrWr2rr.rr sE���������� +�+�+�+�Z���������6�6�6�6�5�5�5�6�6�6�6�5�5�5�����+�+�+������� ������ � � �0�0�0�0�0�0�����rrc���t|d��}|�dd��}|�dd��}|�dd��}|�dd ��}|S) Nr �&z&amp;rVz&lt;r_z&gt;� z&#13;)rr�rHs r.r@r@�sb�� ��w� � �D� �<�<��W� %� %�D� �<�<��V� $� $�D� �<�<��V� $� $�D� �<�<��g� &� &�D� �Krc�P�t|��}|�dd��}|S)Nrzz&quot;)r@rr�s r.r�r��s%�� �$�<�<�D� �<�<��X� &� &�D� �Krc�h�d�}tt||�d������S)zInput is Unicode string.c�v�t|��}d|cxkrdkr nn|dvr|Sdt|��zdzS)N� �z<&>z&#�;)�ord�repr)�c�ns r.� escapecharzescape8bit.<locals>.escapechar�sH�� ��F�F�� ��>�>�>�>�c�>�>�>�>�>�a�u�n�n��H��$�q�'�'�>�C�'� 'rzlatin-1)r�map�decode)rHr�s r.rGrG�s7��(�(�(� �3�z�4�;�;�y�#9�#9�:�:� ;� ;�;rc��tj}d}|D].}t|��}|||dz dzz||dzz}�/|S)Nr ��)rA� hexdigitsr)rM�h�rr�rqs r.rmrm�sT����A� �A� �/�/�� �A�J�J�� ��1��6�S�.�!� !�A�a�#�g�J� .��� �Hr)�__doc__�fontTools.misc.textToolsrrrrrr!rAr��objectrr@r�rGrmr2rr.�<module>r�s���0�0�E�E�E�E�E�E�E�E�E�E�E�E� � � � � � � � � � � � � ��\�\�\�\�\��\�\�\�~������ <� <� <� � � � � r
Memory