� c��jP���� ddlZddlZddlZddlZddlZddlZddlmZddl m Z gd�Z d d�Z dddddd�d�Z dddddd�d �Z dd �Zd �Zed k(r!ee� �Zej(e�yy)�N)�partial)�Path)� compile_dir� compile_file� compile_pathc#�K�|dkr/t|tj�rtj|�}|st dj |�� tj |�}|j�|D]�}|dk(r� tjj||�}tjj|�s|���M|dkDs�S|tjk7s�g|tjk7s�{tjj|�s��tjj|�r��t||dz |��Ed{�����y#t$r%|dkrt dj |��g}Y��wxYw7�8�w)N�zListing {!r}...zCan't list {!r}� __pycache__r�)� maxlevels�quiet)� isinstance�os�PathLike�fspath�print�format�listdir�OSError�sort�path�join�isdir�curdir�pardir�islink� _walk_dir)�dirr r �names�name�fullnames �#/usr/lib64/python3.12/compileall.pyrrs(���� �q�y�Z��R�[�[�1��i�i��n�� � ��&�&�s�+�,��� � �3���  �J�J�L��� �=� � ��7�7�<�<��T�*���w�w�}�}�X�&��N��!�m��� � � 1�d�b�i�i�6G��g�g�m�m�H�%�b�g�g�n�n�X�.F� ��Y��]�',�.� .� .��� �� �1�9� �#�*�*�3�/� 0����� .�sU�AF�E�)A$F�F�"F�6F�F�6F� F� F�*F�<F�?F�FF��stripdir� prependdir� limit_sl_dest�hardlink_dupesc �d� d}|�| �| � td��|�|} |} d}|dkr td��|dk7rddlm} |�ddlm}|�t j�}t|||��}d}|dk7r�|�~ddl }|j�d k(r|jd �}nd}|xsd}|||� �5}|jtt||||||| | | | | � � |�}t|d� �}ddd�|S|D]}t|||||||| | | | | �� r�d}�|S#t $rd}Y��wxYw#1swY|SxYw)N�PDestination dir (ddir) cannot be used in combination with stripdir or prependdirrz%workers must be greater or equal to 0r )�_check_system_limits)�ProcessPoolExecutor)r r T�fork� forkserver)� max_workers� mp_context) �ddir�force�rxr �legacy�optimize�invalidation_moder$r%r&r')�defaultr#F)� ValueError�concurrent.futures.processr*�concurrent.futuresr+�NotImplementedError�sys�getrecursionlimitr�multiprocessing�get_start_method� get_context�maprr�min)rr r0r1r2r r3r4�workersr5r$r%r&r'r+r*�files�successr=r/�executor�results�files r"rr0s����0�� ��X�1�Z�5K��G�I� I� ����� �����{��@�A�A��!�|�C� ?� � "� ?����)�)�+� � �c��)� <�E��G��!�|�+�7�� � +� +� -�� 7�(�4�4�\�B�J��J��/�T�� �W�,6�8�;C��l�l�7�<�04�E�.0��28�4<�=N�4<�6@�9F�:H� $J�$)� *�G��'�4�0�G�8�, �N��D���d�E�2�u� &��2C�)1�j�.;�/=� ?�  �� � �N��M#� ��G� �� 8�, �N�s�D�.9D%� D"�!D"�%D/c �� � |�|�| � td��d} tj|�}|�tj|�nd}tjj |�} d}|� tjj || �}|��|j tjj�}|j tjj�}t|�}t||�D]\}}||k(s� |j|��tjj |�}| �C|�!tjj | |�}n tjj | |�}t|t�r|g}tt|��}| rt|�dkr td��|�|j!|�}|r| S| �]tjj#|�r>t%| �j'�t%|�j'�j(vr| Si}tjj+|��r�|D]f}|r |dz||<�|dk\r0|dk\r|nd}t,j.j1||� �}|||<�Ct,j.j1|�}|||<�h| dd | d d}}|d k(�rU|s� ttj2|�j4�}t7j8d t,j.j:d|d z�}|j=�D]/}t?|d�5}|jAd�}ddd�|k7s�/n| S |stEdjG|�� tI|�D]}\}}||}tKjL|||d||��} |dkDs�,| s�/|||dz }!tOjP||!d��s�StjR|�tjT|!|��  dk(rd} | S| S#1swY��xYw#tB$rY��wxYw#tJjV$r�}"d} |dk\r| cYd}"~"S|rtEdjG|��n tEdd��tXjZj\xstYj^�}#|"j`jc|#d��je|#�}$tE|$�Yd}"~"| Sd}"~"wtfthtBf$rf}%d} |dk\r| cYd}%~%S|rtEdjG|��n tEdd��tE|%jjjldz|%�Yd}%~%| Sd}%~%wwxYw)Nr)Tr zXHardlinking of duplicated bytecode makes sense only for more than one optimization level�crr �)� optimization�����z.pyz<4sLLl���rb� zCompiling {!r}...)r4r5F)�shallowz*** Error compiling {!r}...z*** )�end�backslashreplace)�errors�:)7r7rrr�basenamer�split�sep�list�zip�remover�int�sorted�set�len�searchrr�resolve�parents�isfile� importlib�util�cache_from_source�stat�st_mtime�struct�pack� MAGIC_NUMBER�values�open�readrrr� enumerate� py_compile�compile�filecmp�cmp�unlink�link�PyCompileErrorr;�stdout�encoding�getdefaultencoding�msg�encode�decode� SyntaxError� UnicodeError� __class__�__name__)&r!r0r1r2r r3r4r5r$r%r&r'rDr �dfile�fullname_parts�stripdir_parts� ddir_parts�spart�opart�mo� opt_cfiles� opt_level�opt�cfile�head�tail�mtime�expect�chandle�actual�index�ok�previous_cfile�errrvrx�es& r"rr�s����. ��X�1�Z�5K��G�I� I��G��y�y��"�H�&.�&:�r�y�y��"��H� �7�7� � �H� %�D� �E� ����� � �T�4�(����!������ � �4��!������ � �4���.�)� ����?�L�E�5���~��!�!�%�(�@���� � �j�)���� �=��G�G�L�L��X�6�E��G�G�L�L��U�3�E��(�C� ��:���c�(�m�$�H��#�h�-�!�+��F�G� G� �~� �Y�Y�x� �� ��N�� �R�W�W�^�^�H�%=� � � � &� &� (��X��0F�0F�0H�0P�0P� P��N��J� �w�w�~�~�h��!�I��(0�3�� �9�%���>�'0�A�~�)�2�C�&�^�^�=�=�%�C�>�9�E�,1�J�y�)�%�N�N�<�<�X�F�E�,1�J�y�)�"��#�2�Y��R�S� �d�� �5�=�� ������ 1� :� :�;�E�#�[�[��)�.�.�2M�2M�)*�E�K�,?�A�F�!+�!2�!2�!4��!�%��.�'�%,�\�\�"�%5�F�/�!�V�+�!� "5� '��"� ��)�0�0��:�;�" $�(1�(�(;�$�E�9�&�y�1�E�#�+�+�H�e�U�D�5>�>O�Q�B��q�y�^�)3�H�U�Q�Y�4G�)H��"�;�;�u�n�e�L��I�I�e�,��G�G�N�E�:�)<�@��7�#�G� �N�7�N�[/�.�� ������,�,� ����A�:�"�N���7�>�>�x�H�I��&�b�)��:�:�.�.�J�#�2H�2H�2J���g�g�n�n�X�6H�n�I�P�P�QY�Z���c� � � �N�� ��w�7� 5����A�:�"�N���7�>�>�x�H�I��&�b�)��a�k�k�*�*�S�0�!�4�4� �N�� 5�s�� A:P)�P� P)�#P)�6P8�=P8�#P8�$-P8�P& �"P)�) P5�4P5�8U-� S0�U-�BS0�0U-�U(�U-�A U(�(U-c �� d}tjD]B}|r|tjk(r|r|dks� t d��,|xrt ||d|||||��}�D|S)NTr zSkipping current directory)r r3r4r5)r;rrrrr) � skip_curdirr r1r r3r4r5rDrs r"rrsl�� ��G��x�x���s�b�i�i�'�[��q�y��2�3�� �+�������!�"3� #�G� � �N�c�� � ddl}|jd��}|jdddddd��|jd td d � �|jd ddd��|jddddd��|jdddd��|jddddd��|jdd d!dd"��|jd#d$d%dd&��|jd'd(d)dd*��|jd+d,d-d.�/�|jd0d1d2d3�4�|jd5d6d7td8�9�tj D�cgc],}|j j�jd:d;���.}}|jd�|jd?d@tdAdB�C�|jdDdEdFdG�/�|jdHddIdJ��|j�}|j}|jr$ddl }|j|j�|_ |jdKk(rd|_|j � |j }n |j"}|j$�dLg|_t'|j$�d7k(r|j(r|j+dM�|j,�)|j.� |j0�|j+dN�|j2rg |j2d;k(rt4j6nt9|j2dO�P�5}|D]!} |j;| j=���# ddd�|jFr>|jFjd;d:�jI�} tj | } nd} dT} |�r4|D�],} tJjLjO| �rtQ| |j,|jR|j|j@|jT| |j.|j0|j$|j|j(�U� r��dS} ��tW| ||j,|jR|j|j@|jT|jX| |j.|j0|j$|j|j(�V�r��+dS} ��/| St[|jT|jR|j@| �W�Scc}w#1swY���xYw#t>$r6|j@dQkr$tCdRjE|j2��YySwxYw#t\$r|j@dQkr tCdX�YySwxYw)YNrz1Utilities to support installing Python libraries.)� descriptionz-l� store_constr z!don't recurse into subdirectories)�action�constr6�dest�helpz-r� recursionzhcontrol the maximum recursion level. if `-l` and `-r` options are specified, then `-r` takes precedence.)�typer�r�z-f� store_truer1z/force rebuild even if timestamps are up to date)r�r�r�z-q�countr zIoutput only error messages; -qq will suppress the error messages as well.)r�r�r6r�z-br3z0use legacy (pre-PEP3147) compiled file locationsz-d�DESTDIRr0z�directory to prepend to file paths for use in compile-time tracebacks and in runtime tracebacks in cases where the source file is unavailable)�metavarr�r6r�z-s�STRIPDIRr$z�part of path to left-strip from path to source file - for example buildroot. `-d` and `-s` options cannot be specified together.z-p� PREPENDDIRr%z�path to add as prefix to path to source file - for example / to make it absolute when some part is removed by `-s` option. `-d` and `-p` options cannot be specified together.z-x�REGEXPr2zskip files matching the regular expression; the regexp is searched for in the full path of each file considered for compilationz-i�FILE�flistzzadd all the files and directories listed in FILE to the list considered for compilation; if "-", names are read from stdin)r�r�r�� compile_destzFILE|DIR�*zrzero or more file and directory names to compile; if no arguments given, defaults to the equivalent of -l sys.path)r��nargsr�z-jz --workersr zRun compileall concurrently)r6r�r��_�-z--invalidation-modez�set .pyc invalidation mode; defaults to "checked-hash" if the SOURCE_DATE_EPOCH environment variable is set, and "timestamp" otherwise.)�choicesr�z-o�append� opt_levelsz�Optimization levels to run compilation with. Default is -1 which uses the optimization level of the Python interpreter itself (see -O).)r�r�r�r�z-e�DIRr&z+Ignore symlinks pointing outsite of the DIRz--hardlink-dupesr'zHardlink duplicated pyc filesrJ�����zYHardlinking of duplicated bytecode makes sense only for more than one optimization level.z.-d cannot be used in combination with -s or -pzutf-8)rvr zError reading file list {}FT)r5r$r%r4r&r')rBr5r$r%r4r&r')r3r1r r5z [interrupted])/�argparse�ArgumentParser� add_argumentrZrn�PycInvalidationModer �lower�replacer[� parse_argsr�r2�reror&r�r r�r]r'�errorr0r$r%r�r;�stdinrkr��striprr rrr5�upperrrrarr1r3rrBr�KeyboardInterrupt)r��parser�mode�invalidation_modes�args� compile_destsr�r �f�line�ivl_moder5rDr�s r"�mainr�:sl���� � $� $�G�%�I�F� ����]�!� $�;�@��B� ����3�[�<��>� ����\��N��P� ����W�7�A�;��<� ����\��O��Q� ����i�v�t�,��.�  ����j� � $�4��6�  ����l�,� $�4��6� ����h�T�4�H��J� ����f�7�B��D� ���� �#�A��C� ����k�1� �'D��F�'1�&D�&D�F�&D�d��)�)�/�/�+�3�3�C��=�&D��F� ���-� &�'9� :�7��9�  ����X�C�l�K��M� ����e�/�J��L� ���*�<�-�<��>� � � � �D��%�%�M� �w�w���*�*�T�W�W�%��� ���R��!��� �~�~�!��N�N� ��N�N� � �����$��� �4�?�?��q� �T�%8�%8�� � �C� E� �y�y�� � � �!�T�_�_�%@�� � �E�F� �z�z� �#�z�z�3��#�)�)�����g�6�7�;<��D�!�(�(�����6��7� ����)�)�1�1�#�s�;�A�A�C��&�:�:�8�D�� ���G� � �%���7�7�>�>�$�'�'��d�i�i����T�W�W�(,� � �D�K�K�:K�15���37�?�?�15���6:�6H�6H�7;�7J�7J�L�#(��&�t�Y�� � �'+�z�z�4�7�7�D�J�J�'+�{�{�D�L�L�9J�04� � �26�/�/�04���59�5G�5G�6:�6I�6I�K�#(��+&�,�N��t�{�{�$�*�*�&*�j�j�2C�E� E��uF�`7�7��� ��z�z�A�~��2�9�9�$�*�*�E�F�� ��R �� �:�:��>� �#� $���sV�61S5�6T�'S:�:T�B#U �5B U �U �,U �:T�?T�r�s��� � � ��� ���� 7��.�.7<�EF�"&�Q�48��t�E�Q�fCD�(*�#'�S�59�d�#�E�S�jAB�(*�#'��DV�r �z���$�&�j�/�K� �C�H�H�[��r�