o
    UhM                     @  s   d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ ddlmZ ddlmZ dddZG dd deZdddZedkrIe  dS dS )    )annotationsN)SUPPRESSActionArgumentParser	Namespace)Sequence)Any   )install)get_available_arch_platformsverboseboolreturnNonec                 C  sL   t d}t  }|t d || || r t j d S t j d S )Npbs_installerz%(levelname)s: %(message)s)	logging	getLoggerStreamHandlersetFormatter	Formatter
addHandlersetLevelDEBUGWARNING)r   loggerhandler r   j/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pbs_installer/__main__.py_setup_logger   s
   

 r   c                      s>   e Zd Zeedfd fddZ	ddddZdddZ  ZS )
ListActionNoption_stringsSequence[str]deststrdefaultr   help
str | Noner   r   c                   s   t  j||d||d d S )Nr   )r    r"   nargsr$   r%   )super__init__)selfr    r"   r$   r%   	__class__r   r   r)      s   

zListAction.__init__parserr   	namespacer   valuesstr | Sequence[Any] | Noneoption_stringc                 C  s   |    |  d S N)list_versionsexit)r*   r-   r.   r/   r1   r   r   r   __call__    s   zListAction.__call__c                 C  s(   ddl m} |D ]	}td|  qd S )Nr	   )PYTHON_VERSIONSz- )	_versionsr6   print)r*   r6   versionr   r   r   r3   *   s   zListAction.list_versions)
r    r!   r"   r#   r$   r   r%   r&   r   r   r2   )
r-   r   r.   r   r/   r0   r1   r&   r   r   r   r   )__name__
__module____qualname__r   r)   r5   r3   __classcell__r   r   r+   r   r      s    
r   c               	   C  s   t  \} }tddd}|d}|jddd |jdd	d
d |jddd
d |jddddd |jd| dd |jd|dd |jdddd
d |jddtdd | }t|j |j	d\}}}|shd }t
||j|j|j|j||jd! td" d S )#Nzpbs-installz%Installer for Python Build Standalone)descriptionzInstall Argumentsr9   z=The version of Python to install, e.g. 3.8, 3.10.4, pypy@3.10)r%   z--version-dirz.Install to a subdirectory named by the version
store_true)r%   actionz--build-dirzInclude the build directoryz-dz--destinationzThe directory to install toT)r%   requiredz--archz$Override the architecture to install)choicesr%   z
--platformz Override the platform to installz-vz	--verbosezEnable verbose loggingz-lz--listzList installable versions)rA   r%   @cpython)version_dirarchplatformimplementation	build_dirzDone!)r   r   add_argument_groupadd_argumentr   
parse_argsr   r   r9   
rpartitionr
   destinationrF   rG   rH   rJ   r8   )archs	platformsr-   install_groupargsimplhas_ampr9   r   r   r   main1   sH   


	rV   __main__)r   r   r   r   r:   )
__future__r   r   argparser   r   r   r   collections.abcr   typingr   _installr
   _utilsr   r   r   rV   r;   r   r   r   r   <module>   s    

(
