HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/compose/config/__pycache__/interpolation.cpython-310.pyc
o

S�`E'�@sddlZddlZddlmZddlmZddlmZddl	m
Z
ddl	mZe�e
�ZGdd	�d	�Zd
d�Zdd
�Zdd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZdZdZdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Z d(d)�Z!d*d+�Z"Gd,d-�d-�Z#e#�Z$dS).�N)�Template�)�ConfigurationError)�COMPOSEFILE_V1)�parse_bytes)�parse_nanoseconds_intc@seZdZdd�Zdd�ZdS)�InterpolatorcCs||_||_dS�N)�	templater�mapping)�selfr
r�r
�>/usr/lib/python3/dist-packages/compose/config/interpolation.py�__init__s
zInterpolator.__init__cCs,z
|�|��|j�WStyt|��wr	)r
�
substituter�
ValueError�InvalidInterpolation�r�stringr
r
r�interpolates
�zInterpolator.interpolateN)�__name__�
__module__�__qualname__rrr
r
r
rrsrcsB|tkr
tt|��ntt|����fdd���fdd�|��D�S)Ncs���fdd�|p
i��D�S)Nc	s"i|]
\}}|t�||����qSr
)�interpolate_value��.0�key�val)�interpolator�name�sectionr
r�
<dictcomp>"s��zKinterpolate_environment_variables.<locals>.process_item.<locals>.<dictcomp>)�items)r�config_dict)rr )rr�process_item!s
�z7interpolate_environment_variables.<locals>.process_itemcs i|]\}}|�||pi��qSr
r
)rrr#)r$r
rr!'s��z5interpolate_environment_variables.<locals>.<dictcomp>)�V1rr�TemplateWithDefaultsr")�version�configr �environmentr
)rr$r r�!interpolate_environment_variabless

�r*cCsd�|||�S)Nz{}/{}/{}��format)�
config_keyr rr
r
r�get_config_path-sr.cCsxzt||t|||��WSty#}ztdj||||jd���d}~wty;}z
tdj|||||jd���d}~ww)NzXInvalid interpolation format for "{config_key}" option in {section} "{name}": "{string}")r-rr rzdMissing mandatory value for "{config_key}" option interpolating {value} in {section} "{name}": {err})r-�valuerr �err)�recursive_interpolater.rrr,r�UnsetRequiredSubstitutionr0)rr-r/r r�er
r
rr1s2�������rcsrdd��t|t�rt����|��St|t�r$���fdd�|��D�St|t�r3��fdd�|D�St��|�S)NcSsd�||�S)Nz{}/{}r+)�config_pathrr
r
r�appendH�z%recursive_interpolate.<locals>.appendc	s$i|]\}}|t|���|���qSr
�r1r�r5r4rr
rr!Ns��z)recursive_interpolate.<locals>.<dictcomp>csg|]}t|����qSr
r7)rr)r4rr
r�
<listcomp>Ssz)recursive_interpolate.<locals>.<listcomp>)�
isinstance�str�	converter�convertr�dictr"�list)�objrr4r
r8rr1Gs

�
r1c@s6eZdZdje�d�ddd�Zedd��Zdd	�Z	d
S)r&z�
        {delim}(?:
            (?P<escaped>{delim}) |
            (?P<named>{id})      |
            {{(?P<braced>{bid})}}  |
            (?P<invalid>)
        )
        �$z[_a-z][_a-z0-9]*z)[_a-z][_a-z0-9]*(?:(?P<sep>:?[-?])[^}]*)?)�delim�id�bidcCs�d|kr|�d�\}}}|�|�p|Sd|kr%|�d�\}}}|�||�Sd|krB|�d�\}}}|�|�}|s@|p;|}t|��|Sd|kr_|�d�\}}}||vrW|�|�S|pZ|}t|��dS)Nz:-�-z:?�?)�	partition�getr2)�braced�sepr�var�_�defaultr0�resultr
r
r�process_braced_groupes(

�z)TemplateWithDefaults.process_braced_groupcs��fdd�}�j�|�j�S)Ncs�|�d�p	|�d�}|�d�}|dur!|�d�}|r!��||��S|dur8�|}t|t�r3|�d�}d�|�S|�d�durB�jS|�d�durN��|�td�j	��)	N�namedrIrJzutf-8�{}�escaped�invalidz#Unrecognized named group in pattern)
�grouprOr:�bytes�decoder,�	delimiter�_invalidr�pattern)�morPrIrJr�rrr
rr=�s$





�z0TemplateWithDefaults.substitute.<locals>.convert)rY�sub�template)rrr=r
r[rr}szTemplateWithDefaults.substituteN)
rrrr,�re�escaperY�staticmethodrOrr
r
r
rr&Ws�
r&c@�eZdZdd�ZdS)rcC�
||_dSr	)rrr
r
rr��
zInvalidInterpolation.__init__N�rrrrr
r
r
rr��rc@ra)r2cCrbr	)r0)r�custom_err_msgr
r
rr�rcz"UnsetRequiredSubstitution.__init__Nrdr
r
r
rr2�rer2z[^/]+z.+cGst�d�d�|���S)Nz^{}$�/)r^�compiler,�join��argsr
r
r�re_path�srlcCst|t|�Sr	�rl�
PATH_JOKER)r rr
r
r�
re_path_basic�r6rocGstdtg|�R�S)N�servicermrjr
r
r�service_path�srqcCs<t|t�s|S|��}|dvrdS|dvrdStd�|���)N)�y�yes�true�onT)�n�no�false�offFz!"{}" is not a valid boolean value)r:r;�lowerrr,��sr
r
r�
to_boolean�s
r}cCsZt|t�s|St�d|���rd|dd�}zt|dd�WSty,td�|���w)Nz	^0[0-9]+$�0orr)�basez"{}" is not a valid integer)r:r;r^�match�strip�intrr,r{r
r
r�to_int�s
�r�cCs6t|t�s|Szt|�WStytd�|���w)Nz"{}" is not a valid float)r:r;�floatrr,r{r
r
r�to_float�s

�r�cCst|tttf�r
d�|�S|S)NrQ)r:�boolr�r�r,)�or
r
r�to_str�s
r�cCs"t|�}|durtd�|���|S)Nz"{}" is not a valid byte value)rrr,)r|�vr
r
r�bytes_to_int�sr�cCst|t�s|Stt|�d�S)Ni�)r:r;r�r)r�r
r
r�to_microseconds�s
r�c"@s`eZdZiedd�e�eddd�e�edde�e�ed�e�ed�e�ed�e�ed	�e�ed
�e�ed�e�edd
�e�edd
�e�edd�e�edd�e	�edde
�e�edd�e�eddd�e�edddd�e�ieddd�e�eddd�e�eddd�e�eddd�e�eddd�e�ed�e�ede�e�ed�e	�ed �e�ed!d"�e�ed!d#�e�ed$�e�ed%e
�e�ed%e
d&�e�ed%e
d'�e�ed(�e	�ed)�e	��ed*�e	ed+�e	ed,d)�e	ed,d-d.�e	ed,d/d0�eed1d2�e	ed1d3�e	ed1d4�e	e
d1e
de�eed-d3�e	e
d-e
de�eed5d3�e	e
d5e
de�eed6d3�e	e
d6e
de�ei�Zd7d8�Zd9S):�
ConversionMap�blkio_config�weight�
weight_device�build�labels�cpus�	cpu_count�	cpu_quota�
cpu_period�
cpu_rt_period�cpu_rt_runtime�configs�mode�secrets�healthcheck�retries�disable�deploy�replicas�	placement�max_replicas_per_node�	resources�limits�
update_config�parallelism�max_failure_ratio�rollback_config�restart_policy�max_attempts�mem_swappiness�oom_kill_disable�
oom_score_adj�ports�target�	published�scale�ulimits�soft�hard�
privileged�	read_only�
stdin_open�tty�volumes�volume�nocopy�tmpfs�size�network�
attachable�external�internal�secretr(cCsd|j��D]*}|�|�r/z
|j||�WSty.}ztd�|�dd�|���d}~wwq|S)Nz<Error while attempting to convert {} to appropriate type: {}rg�.)�map�keysr�rrr,�replace)r�pathr/�rexpr3r
r
rr=s
�����	zConversionMap.convertN)rrrrqr��
FULL_JOKERr�r�r�r}rnr�rorlr�r=r
r
r
rr��s�
��������	�

�
�
�

��
���������
���
�
��
�� �!�"�#






�4r�)%�loggingr^rr�errorsr�
compose.constrr%�
compose.utilsrr�	getLoggerr�logrr*r.rr1r&�	Exceptionrr2rnr�rlrorqr}r�r�r�r�r�r�r<r
r
r
r�<module>s:

?


C