o
    jZh                     @   s   d Z G dd dZdS )z
(c) 2008-2013, holger krekel
c                   @   sp   e Zd ZdZd Z Z Z Z Z Z	 Z
Z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 )XSpecaG  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
    Nc                 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       _z%r not a valid XSpec keyzduplicate key: z in zenv:   )	_specenvsplitfindAttributeError__dict__
ValueError
startswithsetattr)selfstringZkeyvalueikeyvalue r   D/var/www/html/lang_env/lib/python3.10/site-packages/execnet/xspec.py__init__   s   


zXSpec.__init__c                 C   s   |d dkr
t |d S )Nr   r   )r   )r   namer   r   r   __getattr__&   s   zXSpec.__getattr__c                 C   s   d| j dS )Nz<XSpec >r   r   r   r   r   __repr__+   s   zXSpec.__repr__c                 C   s   | j S Nr   r   r   r   r   __str__.   s   zXSpec.__str__c                 C   s
   t | jS r   )hashr   r   r   r   r   __hash__1   s   
zXSpec.__hash__c                 C   s   | j t|dd kS Nr   r   getattrr   otherr   r   r   __eq__4      zXSpec.__eq__c                 C   s   | j t|dd kS r#   r$   r&   r   r   r   __ne__7   r)   zXSpec.__ne__c                 C   s   | j d uo	| jd u S r   )popenchdirr   r   r   r   _samefilesystem:   s   zXSpec._samefilesystem)__name__
__module____qualname____doc__r+   sshsocketpythonr,   nicedont_write_bytecodeZ	execmodelr   r   r   r    r"   r(   r*   r-   r   r   r   r   r      s.    r   N)r1   r   r   r   r   r   <module>   s    