File: //opt/saltstack/salt/lib/python3.10/site-packages/relenv/__pycache__/pyversions.cpython-310.pyc
o
;j�� � @ s� d Z ddlmZ ddlZddlZddlZddlZddlZddl Z ddl
ZddlZ
ddlZddlmZmZ ddlmZmZmZmZmZ erHddlZe�e�ZeZeZ
e
Zg d�Zg d�ZdZd Zd�dd�Z d�dd�Z!d�d�dd�Z"d�dd�Z#d�dd�Z$d�d#d$�Z%d�d(d)�Z&d*Z'd*Z(dZ)dZ*d+d,iZ+d�d.d/�Z,d�d0d1�Z-d�d2d3�Z.d�d5d6�Z/d�d8d9�Z0d�d:d;�Z1d�d<d=�Z2d�d>d?�Z3d�d@dA�Z4d�dBdC�Z5d�dDdE�Z6d�dFdG�Z7d�dHdI�Z8dJZ9d�d�dMdN�Z:d�dPdQ�Z;d�dRdS�Z<d�dTdU�Z=d�dVdW�Z>d�dXdY�Z?d�d[d\�Z@d�d]d^�ZAd�d_d`�ZBd�dadb�ZCd�d�dfdg�ZDd�didj�ZEd�dkdl�ZF d�dddm�d�drds�ZGd�dtdu�ZHd�d�dwdx�ZId�d{d|�ZJd�dd��ZKed�k�r?e-� dS dS )�z
Versions utility.
� )�annotationsN)�
TYPE_CHECKING�Any)�Version� check_url�download_url� fetch_url�fetch_url_content)r �os�
subprocess�sys)zkeyserver.ubuntu.comzkeys.openpgp.orgzpgp.mit.edu)zhttps://github.com/Yhg1s.gpgz)https://keybase.io/pablogsal/pgp_keys.ascz*https://keybase.io/stevedower/pgp_keys.ascz$https://keybase.io/ambv/pgp_keys.ascz#https://keybase.io/nad/pgp_keys.asczBhttps://www.python.org/ftp/python/{version}/Python-{version}.{ext}�x�str�returnr c C s$ | � dd�d � dd�d }t|�S )NzPython � �<r )�splitr )r
�_� r �E/opt/saltstack/salt/lib/python3.10/site-packages/relenv/pyversions.py�_ref_versionG s r c C s | � d�d � d�d S )Nzhref="r �"r �r �r
r r r � _ref_pathL s r F�version�gzip�bool�tuple[str, str | None]c C sL |rd| � d| � d�}n d| � d| � d�}| t d�k r|d fS ||� d�fS )Nz"https://www.python.org/ftp/python/z/Python-z.tgz�.tar.xz�2.3�.asc�r )r r Ztarballr r r �
_release_urlsP s r# �keyid�serverc C s* t jdd|d| gdd�}|jdkrdS dS )N�gpgz--keyserverz--recv-keysT��capture_outputr F)r �run�
returncode)r$ r% �procr r r �_receive_key[ s
r, �Nonec C s� ddl } tD ]J}| �� }zt||� W n ty/ } ztd|� d|� �� W Y d}~qd}~ww tjg d�|�� dd�}|j dkrPtd|� d|j
�� �� � �� qdS ) a Import Python release manager public keys from their canonical homes.
Keyservers regularly fail to serve newly-issued release manager keys, so
we pull each key listed at python.org/downloads/metadata/pgp/ directly
from the URL the release managers themselves publish.
r Nz)Could not fetch release manager key from �: )r&