File: //opt/alt/python311/lib64/python3.11/__pycache__/compileall.cpython-311.pyc
�
    !A?hO  �                   �  � d Z ddlZddlZddlZddlZddlZddlZddlm	Z	 ddl
mZ g d�Zdd�Z
	 	 	 dddddd
�d�Z	 	 	 dddddd
�d�Z	 	 	 dd
�Zd� Zedk    r& e e�   �          �  �        Z ej        e�  �         dS dS )a�  Module/script to byte-compile all .py files to .pyc files.
When called as a script with arguments, this compiles the directories
given as arguments recursively; the -l option prevents it from
recursing into directories.
Without arguments, it compiles all modules on sys.path, without
recursing into subdirectories.  (Even though it should do so for
packages -- for now, you'll have to deal with packages separately.)
See module py_compile for details of the actual byte-compilation.
�    N)�partial)�Path)�compile_dir�compile_file�compile_pathc              #   �   K  � |dk     r.t          | t          j        �  �        rt          j        | �  �        } |s"t	          d�                    | �  �        �  �         	 t          j        | �  �        }n:# t          $ r- |dk     r"t	          d�                    | �  �        �  �         g }Y nw xY w|�                    �   �          |D ]�}|dk    r�	t          j	        �
                    | |�  �        }t          j	        �                    |�  �        s|V � �M|dk    ry|t          j        k    ri|t          j
        k    rYt          j	        �                    |�  �        r:t          j	        �                    |�  �        st          ||dz
  |��  �        E d {V �� ��d S )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         �1/opt/alt/python311/lib64/python3.11/compileall.pyr   r      s�  � � � ��q�y�y�Z��R�[�1�1�y��i��n�n��� -�
��&�&�s�+�+�,�,�,���
�3������� � � ��1�9�9��#�*�*�3�/�/�0�0�0��������� 
�J�J�L�L�L�� 	.� 	.���=� � ���7�<�<��T�*�*���w�}�}�X�&�&� 	.��N�N�N�N��!�m�m���	� 1� 1�d�b�i�6G�6G��g�m�m�H�%�%� 7H�.0�g�n�n�X�.F�.F� 7H� ��Y��]�',�.� .� .� 
.� 
.� 
.� 
.� 
.� 
.� 
.��	.� 	.s   �A1 �14B(�'B(F���r   ��stripdir�
prependdir�
limit_sl_dest�hardlink_dupesc
                �P  � d}|�|
�|�t          d�  �        �|�| }
|}d}|dk     rt          d�  �        �|dk    r*ddlm} 	  |�   �          ddlm} n# t
          $ r d}Y nw xY w|�t
          j        �   �         }t          | ||��  �        }d	}|dk    rp|�n|pd} ||�
�  �        5 }|�	                    t          t          |||||||	|
|||
��  �        |�  �        }t          |d	��  �        }ddd�  �         n# 1 swxY w Y   n"|D ]}t          ||||||||	|
|||
�
�  �        sd}� |S )a�  Byte-compile all modules in the given directory tree.
    Arguments (only dir is required):
    dir:       the directory to byte-compile
    maxlevels: maximum recursion level (default `sys.getrecursionlimit()`)
    ddir:      the directory that will be prepended to the path to the
               file as it is compiled into each byte-code file.
    force:     if True, force compilation, even if timestamps are up-to-date
    quiet:     full output with False or 0, errors only with 1,
               no output with 2
    legacy:    if True, produce legacy pyc paths instead of PEP 3147 paths
    optimize:  int or list of optimization levels or -1 for level of
               the interpreter. Multiple levels leads to multiple compiled
               files each with one optimization level.
    workers:   maximum number of parallel workers
    invalidation_mode: how the up-to-dateness of the pyc will be checked
    stripdir:  part of path to left-strip from source file path
    prependdir: path to prepend to beginning of original file path, applied
               after stripdir
    limit_sl_dest: ignore symlinks if they are pointing outside of
                   the defined path
    hardlink_dupes: hardlink duplicated pyc files
    N�PDestination dir (ddir) cannot be used in combination with stripdir or prependdirr   z%workers must be greater or equal to 0r   )�_check_system_limits)�ProcessPoolExecutor)r
   r   T)�max_workers)�ddir�force�rxr
   �legacy�optimize�invalidation_moder%   r&