add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�WcW4���dZddlZddlZddlZddlmZddlmZgd�ZGd�d�Z	dd
�Z
d�Zejdej�jZd
�Zd�Zedkr`eej(�dkree	��dSej(dZee�5Zee	ee��ddd�dSdS#1swYdSxYw)�8A lexical analyzer class for simple shell-like syntaxes.�N)�deque)�StringIO)�shlex�split�quote�joinc�j�eZdZdZ		dd�Zed��Zd�Zdd�Zd�Z	d	�Z
d
�Zd�Zdd�Z
d
�Zd�ZdS)rrNFc��t|t�r
t|�}|�||_||_nt
j|_d|_||_|rd|_nd|_d|_	d|_
|jr|xjdz
c_
d|_d|_d|_
d|_d	|_d
|_t#�|_d|_d|_d|_t#�|_d|_|sd}n|d
urd}||_|rzt#�|_|xjdz
c_
|jj5t6j9|��}|jj;|�|_
dSdS)N��#�?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz 	
Fz'"�\�"� �rTz();<>|&z~-./*?=)�
isinstance�strr�instream�infile�sys�stdin�posix�eof�
commenters�	wordchars�
whitespace�whitespace_split�quotes�escape�
escapedquotes�stater�pushback�lineno�debug�token�	filestack�source�_punctuation_chars�_pushback_chars�	maketrans�dict�fromkeys�	translate)�selfrrr�punctuation_chars�ts      �/usr/lib64/python3.12/shlex.py�__init__zshlex.__init__st���h��$�$���)�H���$�D�M� �D�K�K��I�I�D�M��D�K���
��5��D�H�H��D�H����B����:�:�:��N�N�N� ^�
_�N�N�#��� %��������� �����
����
������
���
�������� � � "���
�$�
&�
&� )��"3�����#(�7�D� ��N�N�N�i�'�N�N����(�(����7H�)I�J�A�!�^�^�5�5�a�8�D�N�N�N���c��|jS�N)r)�r/s r2r0zshlex.punctuation_charsDs���&�&�&r4c��|jdkrtdt|�z�|jj	|�dS)z:Push a token onto the stack popped by the get_token methodrzshlex: pushing token N)r%�print�reprr#�
appendleft)r/�toks  r2�
push_tokenzshlex.push_tokenHs?���:�:��?�?��)�D��I�5�6�6��
�
� � ��%�%�%�%r4c�v�t|t�r
t|�}|jj	|j
|j|jf�||_||_d|_|jr:|�td|j
���dStd|j���dSdS)z9Push an input source onto the lexer's input source stack.rNzshlex: pushing to file zshlex: pushing to stream )
rrrr'r;rrr$r%r9)r/�	newstream�newfiles   r2�push_sourcezshlex.push_sourceNs����i��%�%� ��+�I����!�!�4�;�;��
�
�t�{�{�"K�L�L����!��
�����:�:�:��"���T�[�[�[�B�C�C�C�C���t�}�}�}�F�G�G�G�G�	�:r4c�
�|jj�|jj�\|_|_|_|jr&td|j|j
fz�d|_dS)zPop the input source stack.zshlex: popping to %s, line %drN)	r�closer'�popleftrr$r%r9r"r7s r2�
pop_sourcezshlex.pop_source\sm���
�
�����48�N�N�4J�4J�4L�1���d�m�T�[��:�:�:��1��]�]�D�K�K�0�1�
2�
2���
�
�
r4c��|jrH|jj�}|jdkrtdt	|�z�|S|j�}|j�m||jkr]|j|j��}|r|\}}|j||�|j�}||jkr�]||jkrK|js|jS|j�|j�}||jkr�K|jdkr:||jkrtdt	|�z�|Std�|S)zBGet a token from the input stream (or from stack if it's nonempty)rzshlex: popping token Nz
shlex: token=zshlex: token=EOF)
r#rDr%r9r:�
read_tokenr(�
sourcehookrA�	get_tokenrr'rE)r/r<�raw�specr@r?s      r2rIzshlex.get_tokenesR���=�=�=��-�-�'�'�)�C��z�z�Q����-��S�	�9�:�:��J��o�o����;�;�"�����$�$����t���'8�9���4�+/�(�W�i��$�$�Y��8�8��n�n�&������$�$���T�X�X�o�o��>�>�>��x�x�����!�!��n�n�&���T�X�X�o�o���:�:��?�?��d�h�h����o��S�	�1�2�2��
��(�)�)��
r4c���d}d}	|jr(|jr|jj�}n|jj	d�}|dkr|xj
dz
c_|jdkrtd|j�d|���|j�	d	|_	�nY|jdk�r`|s	d|_�n=||jvr;|jd
kr
td�|js|jr|r�n���||jvr2|jj�|xj
dz
c_�n�|jr||jvrd}||_�n�||jvr||_	d|_�no||jvr||_	d
|_�nQ||j vr|js||_	||_�n'|j"r||_	d|_�n||_	|js|jr|r�n��|j|j vr�d}|s*|jd
kr
td�t%d��||jkr3|js|xj|z
c_	d|_�nhd|_�n]|jr;||jvr-|j|j&vr|j}||_�n|xj|z
c_	�n�|j|jvr�|s*|jd
kr
td�t%d��||j vr5||jkr%||kr|xj|jz
c_	|xj|z
c_	||_�nZ|jdv�rK|s	d|_�nB||jvrB|jd
kr
td�d|_|js|jr|r�n���||jvrb|jj�|xj
dz
c_|j�r�d|_|js|jr|r�n����|jd
krX||jvr|xj|z
c_	�nK||jvr|jj)|�d|_�n|jr||j vr||_n�|jr||jvr
d}||_n�||jvs(||j vs|j"r$||jvr|xj|z
c_	n�|jr|jj)|�n|j*j-|�|jd
kr
td�d|_|js|jr|rn����|j}d	|_	|jr
|s|d	krd}|jdkr,|rtdt/|�z�|Std�|S)NFrTr�
�zshlex: in state z I see character: r�z+shlex: I see whitespace in whitespace state�a�cz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rPrQz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r0r*�popr�readr$r%r9r"r&rrr�readliner rrr�
ValueErrorr!�appendr#r;r:)r/�quoted�escapedstate�nextchar�results     r2rGzshlex.read_token�s-��������%�%�%�$�*>�*>�*>��/�/�3�3�5����=�=�-�-�a�0���4�������q� ����z�z�Q�����$�*�*�*�*�BJ�(�L�M�M��z�z�!���
�����s�"�"��x�!%�D�J������0�0��z�z�Q����K�L�L��z�z�z�d�j�j�j�V�V�� �����0�0��M�M�*�*�,�,��K�K�K�1�$�K�K�K��Z�Z�Z�H����$;�$;�#&�L�!)�D�J�J�����/�/�!)�D�J�!$�D�J�J���!7�!7�7�7�!)�D�J�!$�D�J�J�����,�,��:�:�:�%-��
�!)�D�J�J��*�*�*�!)�D�J�!$�D�J�J�!)�D�J��z�z�z�d�j�j�j�V�V�� ����t�{�{�*�*����x��z�z�Q����@�A�A�$�%;�<�<��t�z�z�)�)��:�:�:��
�
�
�h�.�
�
�%(��
��%(��
�
��j�j�j�X����%<�%<�����+�+�B,�B,�#'�:�:�L�!)�D�J�J��J�J�J�(�*�J�J�J����t�{�{�*�*��x��z�z�Q����@�A�A�$�%;�<�<�!�D�K�K�/�/� �D�J�J�.�.�8�|�3K�3K��J�J�J�$�*�*�,�J�J��
�
�
�h�&�
�
�)��
�
����z�)�)��x�!%�D�J������0�0��z�z�Q����E�F�F�!$�D�J��z�z�z�d�j�j�j�V�V�� �����0�0��M�M�*�*�,�,��K�K�K�1�$�K�K��z�z�z�%(��
��:�:�:�$�*�*�*���!�$��Z�Z�3�&�&��4�#9�#9�9�9��
�
�
�h�.�
�
�
�#�4�?�?�:�:� �0�0�7�7��A�A�%(��
���Z�Z�Z�H����$;�$;�!)�D�J�J��Z�Z�Z�H����$;�$;�#&�L�!)�D�J�J��$�.�.�0�0�H����4K�4K��/�/�/�"�$�*@�*@�@�@��J�J�J�(�*�J�J�J��-�-�-��,�,�3�3�H�=�=�=��
�
�0�0��:�:��z�z�Q����F�G�G�!$�D�J��z�z�z�d�j�j�j�V�V�� �G�H������
��:�:�:�f�f��2����F��:�:��>�>��v��)�D��L�8�9�9��
��,�-�-��
r4c�V�|ddkr|dd}t|jt�rltjj|�sKtjj
tjj|j�|�}|t|d�fS)z(Hook called on a filename to be sourced.rrr������r)	rrr�os�path�isabsr	�dirname�open)r/r@s  r2rHzshlex.sourcehooksv���1�:�����a��m�G��d�k�k�3�'�'����
�
�g�0F�0F��g�g�l�l�2�7�7�?�?�4�;�;�#?��I�G���g�s�+�,�,r4c�H�|�|j}|�|j}d||fzS)z<Emit a C-compiler-like, Emacs-friendly error-message leader.Nz"%s", line %d: )rr$)r/rr$s   r2�error_leaderzshlex.error_leader s.���>��[�[�F��>��[�[�F�"�f�f�%5�5�5r4c��|Sr6�r7s r2�__iter__zshlex.__iter__(s���r4c�V�|j�}||jkrt�|Sr6)rIr�
StopIteration)r/r&s  r2�__next__zshlex.__next__+s(����� ���D�H�H������r4)NNFFr6)NN)�__name__�
__module__�__qualname__�__doc__r3�propertyr0r=rArErIrGrHrdrgrjrfr4r2rrs�������>�>�9>�#(�-9�-9�-9�-9�^�'�'��'�&�&�&�H�H�H�H�������@P�P�P�d-�-�-�6�6�6�6��������r4rFTc�x�|�
td��t||��}d|_|sd|_t	|�S)z-Split the string *s* using shell-like syntax.Nzs argument must not be None)rTr)rUrrr�list)�s�commentsr�lexs    r2rr1s@���y��6�7�7�
���
�
�C��C���8������9�r4c�6�djd�|D��S)z3Return a shell-escaped string from *split_command*.rc3�2K�|]}t|����dSr6)r)�.0�args  r2�	<genexpr>zjoin.<locals>.<genexpr>>s"����8�8�3�E�#�J�J�J�J�J�8�8r4)r	)�
split_commands r2r	r	<s���8�8�8�8�-�8�8�8�8r4z[^\w@%+=:,./-]c�Z�|sdSt|��|Sd|jdd�zdzS)z1Return a shell-escaped version of the string *s*.z''N�'z'"'"')�_find_unsafe�replace)rrs r2rrCs8���1��t��A���������3�	�*�*�S�0�0r4c�f�	|j�}|sdStdt|�z��1)NrzToken: )rIr9r:)�lexer�tts  r2�
_print_tokensr�Os4��
�
�_�_�
���r��E�
�i�$�r�(�"�#�#�	r4�__main__r)FT)rnr^�rer�collectionsr�ior�__all__rrr	�compile�ASCII�searchr}rr�rk�len�argv�fnrb�frfr4r2�<module>r�s���>�>�
�	�	�	�	�	�	�	�
�
�
�
�������������
-�
-�
-��\�\�\�\�\�\�\�|����9�9�9�
�r�z�z�+�R�X�X�6�=�=��	1�	1�	1�$�$�$��z���
�s�3�8�8�}�����
�e�e�g�����
�X�X�a�[��
�T�"�X�	(���M�%�%��2�,�'�'�	(�	(�	(�	(�	(�	(�	(���
	(�	(�	(�	(�	(�	(�	(�	(�	(�	(���s�(C�C