o
    "if                     @  s"   d Z ddlmZ G dd dZdS )z
(c) 2008-2013, holger krekel
    )annotationsc                   @  s   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dZd-ddZd.ddZd.ddZd/d!d"Zd0d&d'Zd0d(d)Zd1d*d+ZdS )2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                 C  s   || _ i | _|dD ]P}|d}|dkr|d}}n|d | ||d d  }}|d dkr7td| || jv rFtd	|d
||drU|| j|dd  < qt| || q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value r(   F/var/www/html/corbot_env/lib/python3.10/site-packages/execnet/xspec.py__init__!   s   


zXSpec.__init__nameNone | bool | strc                 C  s   |d dkr
t |d S )Nr   r   )r   )r#   r+   r(   r(   r)   __getattr__4   s   zXSpec.__getattr__c                 C  s   d| j dS )Nz<XSpec >r   r#   r(   r(   r)   __repr__9   s   zXSpec.__repr__c                 C  s   | j S Nr/   r0   r(   r(   r)   __str__<   s   zXSpec.__str__intc                 C  s
   t | jS r2   )hashr   r0   r(   r(   r)   __hash__?   s   
zXSpec.__hash__otherobjectboolc                 C  s   | j t|dd kS Nr   r   getattrr#   r7   r(   r(   r)   __eq__B      zXSpec.__eq__c                 C  s   | j t|dd kS r:   r;   r=   r(   r(   r)   __ne__E   r?   zXSpec.__ne__c                 C  s   | j d uo	| jd u S r2   )r
   r   r0   r(   r(   r)   _samefilesystemH   s   zXSpec._samefilesystem)r   r   r   r   )r+   r   r   r,   )r   r   )r   r4   )r7   r8   r   r9   )r   r9   )__name__
__module____qualname____doc__r   __annotations__r   r   r   r   r	   r
   r   r   r   r   r   r   r*   r-   r1   r3   r6   r>   r@   rA   r(   r(   r(   r)   r      s.   
 







r   N)rE   
__future__r   r   r(   r(   r(   r)   <module>   s    