
    i                    0    d Z ddlmZ  G d d          ZdS )z
(c) 2008-2013, holger krekel
    )annotationsc                  
   e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   dZded<   d$dZd%dZd&dZd&dZd'dZd(d!Zd(d"Zd)d#ZdS )*XSpecaH  Execution Specification: key1=value1//key2=value2 ...

    * Keys need to be unique within the specification scope
    * Neither key nor value are allowed to contain "//"
    * Keys are not allowed to contain "="
    * Keys are not allowed to start with underscore
    * If no "=value" is given, assume a boolean True value
    Nz
str | Nonechdirzbool | Nonedont_write_bytecode	execmodelid
installvianicepopenpythonsocketssh
ssh_configvagrant_sshviastringstrreturnNonec                   || _         i | _        |                    d          D ]}|                    d          }|dk    r|d}}n|d |         ||dz   d          }}|d         dk    rt	          d|z            || j        v rt          d	|d
|          |                    d          r|| j        |dd          <   t          | ||           d S )Nz//=T   r   _z%r not a valid XSpec keyzduplicate key: z in zenv:   )	_specenvsplitfindAttributeError__dict__
ValueError
startswithsetattr)selfr   keyvalueikeyvalues         T/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/execnet/xspec.py__init__zXSpec.__init__!   s   
T** 	* 	*Hc""ABww%tU%bqb\8AEGG+<U1v}}$%?#%EFFFdm## !H3!H!Hf!H!HIII~~f%% *$)QRR!!c5))))	* 	*    nameNone | bool | strc                <    |d         dk    rt          |          d S )Nr   r   )r!   )r&   r.   s     r+   __getattr__zXSpec.__getattr__4   s"    7c>> &&&tr-   c                    d| j         dS )Nz<XSpec >r   r&   s    r+   __repr__zXSpec.__repr__9   s    (((((r-   c                    | j         S Nr4   r5   s    r+   __str__zXSpec.__str__<   s
    zr-   intc                *    t          | j                  S r8   )hashr   r5   s    r+   __hash__zXSpec.__hash__?   s    DJr-   otherobjectboolc                6    | j         t          |dd           k    S Nr   r   getattrr&   r>   s     r+   __eq__zXSpec.__eq__B       zWUGT::::r-   c                6    | j         t          |dd           k    S rB   rC   rE   s     r+   __ne__zXSpec.__ne__E   rG   r-   c                &    | j         d uo| j        d u S r8   )r   r   r5   s    r+   _samefilesystemzXSpec._samefilesystemH   s    z%<$**<<r-   )r   r   r   r   )r.   r   r   r/   )r   r   )r   r:   )r>   r?   r   r@   )r   r@   )__name__
__module____qualname____doc__r   __annotations__r   r   r	   r
   r   r   r   r   r   r   r   r   r,   r1   r6   r9   r=   rF   rI   rK    r-   r+   r   r      s          E'+++++ I    B!J!!!!DEFFC!J!!!!"K""""C* * * *&   
) ) ) )          ; ; ; ;; ; ; ;= = = = = =r-   r   N)rO   
__future__r   r   rQ   r-   r+   <module>rS      s_     # " " " " "A= A= A= A= A= A= A= A= A= A=r-   