o
    wiW                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ de	fddZ
de	de	fdd	Zde	fd
dZdee	e	f fddZeddde	fddZde	fddZde	de	fddZdS )    N)	lru_cache)Tuplereturnc                   C   s   t   S N)	_platformsystemlower r	   r	   O/home/app/Keep/.python/lib/python3.10/site-packages/prisma/binaries/platform.pyname	   s   r   filec                 C   s2   t  dkrd| vrd| v r| ddS | d S | S )Nwindowsz.exez.gzz.exe.gz)r   replace)r   r	   r	   r
   check_for_extension   s
   r   c                     s4   t  \}  | dkrdS t fdddD rdS dS )Nalpinec                 3   s    | ]}| v V  qd S r   r	   ).0distrodistro_id_liker	   r
   	<genexpr>   s    zlinux_distro.<locals>.<genexpr>)ZcentosZfedorarhelr   Zdebian)_get_linux_distro_detailsany)	distro_idr	   r   r
   linux_distro   s   
r   c                  C   sj   t jddgt jdd} t| jt }td|}|r |	dnd}td|}|r/|	dnd}||fS )	Ncatz/etc/os-releaseTstdoutcheckzID="?([^"\n]*)"?    zID_LIKE="?([^"\n]*)"?)

subprocessrunPIPEstrr   sysgetdefaultencodingresearchgroup)processoutputmatchr   r   r	   r	   r
   r   "   s   r   )maxsizec                  C   s8   t  } | dkr	| S t }|dkrdS t }| d| S )Nlinuxr   z
linux-muslz	-openssl-)r   r   get_openssl)platformr   sslr	   r	   r
   binary_platform.   s   r2   c                  C   s*   t jg dt jdd} tt| jt S )N)Zopensslversionz-vTr   )r!   r"   r#   parse_openssl_versionr$   r   r%   r&   )r*   r	   r	   r
   r/   <   s   r/   stringc                 C   s&   t d| }|d u rdS |dd S )Nz^OpenSSL\s(\d+\.\d+)\.\d+z1.1.xr   z.x)r'   r,   r)   )r5   r,   r	   r	   r
   r4   A   s   r4   )r'   r%   r!   r0   r   	functoolsr   typingr   r$   r   r   r   r   r2   r/   r4   r	   r	   r	   r
   <module>   s    