<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

]-                 @   s8  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z y d  d l m Z Wn e k
 rj d Z Yn Xd  d l	 m
 Z
 d d d g Z d d d  d d	  Z d d d
 d d  d
 d d d d  Z d d
 d d  d
 d d d  Z d d  d
 d  d
 d d d  Z d d   Z e d k r4e e    Z e j e  d S)    N)ProcessPoolExecutor)partialcompile_dircompile_filecompile_path
   c             c   sa  | s t  d j |    y t j |   } Wn7 t k
 re | d k  r[ t  d j |    g  } Yn X| j   x | D] } | d k r qw t j j |  |  } | d  k	 r t j j | |  } n d  } t j j |  s | Vqw | d k rw | t j	 k rw | t j
 k rw t j j |  rw t j j |  rw t | d | d | d d	 | Ed  Hqw Wd  S)
NzListing {!r}...   zCan't list {!r}__pycache__r   ddir	maxlevels   quiet)printformatoslistdirOSErrorsortpathjoinisdircurdirpardirislink	_walk_dir)dirr
   r   r   namesnamefullnamedfile r    //opt/alt/python35/lib64/python3.5/compileall.pyr      s,    
*%r   Fr   c	             C   s  | d  k	 r$ | d k  r$ t  d   t |  d | d | d | }	 d }
 | d  k	 r | d k r t d  k	 r | pu d  } t d |  U } | j t t d | d | d	 | d | d
 | d | |	  } t | d d }
 Wd  QRXn5 x2 |	 D]* } t | | | | | | |  s d }
 q W|
 S)Nr   z%workers must be greater or equal to 0r   r   r
   r   max_workersforcerxlegacyoptimizedefault)
ValueErrorr   r   mapr   r   min)r   r   r
   r#   r$   r   r%   r&   workersfilessuccessexecutorresultsfiler    r    r!   r   4   s(    	$	
c             C   s'  d } t  j j |   } | d  k	 r< t  j j | |  }	 n d  }	 | d  k	 rg | j |   }
 |
 rg | St  j j |   r#| r |  d } nc | d k r | d k r | n d } t j j |  d | } n t j j |   } t  j j	 |  } | d  d  | d d   } } | d k r#| syo t
 t  j |   j  } t j d t j j |  } t | d	   } | j d
  } Wd  QRX| | k r| SWn t k
 rYn X| st d j |    y" t j |  | |	 d d | } Wn-t j k
 r} z d } | d k r| S| r+t d j |    n t d d d | j j t j j d d } | j t j j  } t |  WYd  d  } ~ Xn t t t f k
 r} z^ d } | d k r| S| rt d j |    n t d d d t | j  j! d |  WYd  d  } ~ Xn X| d k r#d } | S)Nr   cr    optimization   z.pyz<4slrb   zCompiling {!r}...Tr&   r   z*** Error compiling {!r}...z*** enderrorsbackslashreplace:r;   )"r   r   basenamer   searchisfile	importlibutilcache_from_sourcedirnameintstatst_mtimestructpackMAGIC_NUMBERopenreadr   r   r   
py_compilecompilePyCompileErrormsgencodesysstdoutencodingdecodeSyntaxErrorUnicodeError	__class____name__)r   r
   r#   r$   r   r%   r&   r-   r   r   mocfileopt	cache_dirheadtailmtimeexpectchandleactualokerrrN   er    r    r!   r   \   st    	!		*c             C   s   d } xs t  j D]h } | s, | t j k rK |  rK | d k  rx t d  q | ou t | | d  | d | d | d | } q W| S)Nr   r   zSkipping current directoryr   r%   r&   )rP   r   r   r   r   r   )skip_curdirr   r#   r   r%   r&   r-   r   r    r    r!   r      s    c        
      C   s  d d  l  }  |  j d d  } | j d d d d d d d	 d
 d d d | j d d t d
 d d d | j d d d d
 d d d | j d d d d
 d d d d d | j d d d d
 d d d | j d d d d
 d  d d  d d! | j d" d d# d
 d$ d d  d d% | j d& d d' d
 d( d d) | j d* d d+ d, d- d d. | j d/ d0 d d1 d t d d2 | j   } | j } | j rd d  l } | j | j  | _ | j	 d  k	 r| j	 } n	 | j
 } | j rxyY | j d3 k rt j n t | j  + } x! | D] } | j | j    qWWd  QRXWn; t k
 rw| j d4 k  rot d5 j | j   d6 SYn X| j d  k	 r| j pd  | _ d7 } y | r>x | D] }	 t j j |	  rt |	 | j | j | j | j | j  s6d6 } qt |	 | | j | j | j | j | j d8 | j sd6 } qW| St d | j d | j d | j  SWn/ t k
 r| j d4 k  rt d9  d6 SYn Xd7 S):Nr   descriptionz1Utilities to support installing Python libraries.z-lactionstore_constconstr'   r   destr   helpz!don't recurse into subdirectoriesz-rtype	recursionzhcontrol the maximum recursion level. if `-l` and `-r` options are specified, then `-r` takes precedence.z-f
store_truer#   z/force rebuild even if timestamps are up to datez-qcountr   zIoutput only error messages; -qq will suppress the error messages as well.z-br%   z0use legacy (pre-PEP3147) compiled file locationsz-dmetavarDESTDIRr
   zdirectory to prepend to file paths for use in compile-time tracebacks and in runtime tracebacks in cases where the source file is unavailablez-xREGEXPr$   zskip 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compile_destzFILE|DIRnargs*zrzero or more file and directory names to compile; if no arguments given, defaults to the equivalent of -l sys.pathz-jz	--workersr   zRun compileall concurrently-r   zError reading file list {}FTr+   z
[interrupted]) argparseArgumentParseradd_argumentrC   
parse_argsru   r$   rerL   rm   r   rt   rP   stdinrI   appendstripr   r   r   r   r+   r   r   r>   r   r
   r#   r%   r   r   KeyboardInterrupt)
ry   parserargscompile_destsr}   r   fliner-   rj   r    r    r!   main   s~    						*"		

	r   __main__r   r   )r   rP   importlib.utilr?   rK   rF   concurrent.futuresr   ImportError	functoolsr   __all__r   r   r   r   r   rW   rC   exit_statusexitr    r    r    r!   <module>   s*   'P[