o
    @Bi*                     @   s  d dl mZ d dlZd dlmZ d dlmZ dZG dd dejZ	G dd	 d	e	Z
G d
d de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	Ze
eeeeedZeddddddedddddddeddddddeddddddddddZdS )    )absolute_importN)util)ProtocolError)	RoleFeaturesRoleBrokerFeaturesRoleSubscriberFeaturesRolePublisherFeaturesRoleDealerFeaturesRoleCallerFeaturesRoleCalleeFeaturesROLE_NAME_TO_CLASSDEFAULT_CLIENT_ROLESc                   @   s,   e Zd ZdZdZdd Zdd Zdd ZdS )	r   z,
    Base class for WAMP role features.
    Nc                 C   s   t | jS N)jsondumps__dict__)self r   R/var/www/html/Trade-python/venv/lib/python3.10/site-packages/autobahn/wamp/role.py__str__7   s   zRoleFeatures.__str__c                 C   sJ   i }| j  D ]\}}|d ur|||< qd| jddd | D S )Nz{0}({1})z, c                 S   s    g | ]\}}|d  t | qS )=)str).0kvr   r   r   
<listcomp>?   s    z)RoleFeatures.__repr__.<locals>.<listcomp>)r   itemsformatROLEjoin)r   configured_optionsr   r   r   r   r   __repr__:   s   
zRoleFeatures.__repr__c                 C   s\   | j D ](}|ds+|dkr+t| |d ur+tt| |tkr+tdt| ||| jqd S )N_r   z1invalid type {0} for feature '{1}' for role '{2}')r   
startswithgetattrtypeboolr   r   r   )r   r   r   r   r   _check_all_boolB   s   
 zRoleFeatures._check_all_bool)__name__
__module____qualname____doc__r   r   r!   r'   r   r   r   r   r   /   s    r   c                   @   8   e Zd ZdZdZ													dddZdS )r   z$
    WAMP broker role features.
    brokerNc                 K   Z   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|   d S r   )publisher_identificationpublication_trustlevelspattern_based_subscriptionsession_meta_apisubscription_meta_apisubscriber_blackwhite_listingpublisher_exclusionsubscription_revocationevent_historypayload_transparencyx_acknowledged_event_deliverypayload_encryption_cryptoboxevent_retentionr'   )r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   kwargsr   r   r   __init__R      zRoleBrokerFeatures.__init__NNNNNNNNNNNNNr(   r)   r*   r+   r   r=   r   r   r   r   r   J   "    r   c                   @   s,   e Zd ZdZdZ							dddZdS )r   z(
    WAMP subscriber role features.
    
subscriberNc           	      K   s6   || _ || _|| _|| _|| _|| _|| _|   d S r   )r/   r0   r1   r6   r7   r8   r:   r'   )	r   r/   r0   r1   r6   r7   r8   r:   r<   r   r   r   r=   y   s   	zRoleSubscriberFeatures.__init__)NNNNNNNr@   r   r   r   r   r   q   s    r   c                   @   *   e Zd ZdZdZ						dddZdS )r   z'
    WAMP publisher role features.
    	publisherNc                 K   0   || _ || _|| _|| _|| _|| _|   d S r   )r/   r4   r5   r8   r9   r:   r'   )r   r/   r4   r5   r8   r9   r:   r<   r   r   r   r=         zRolePublisherFeatures.__init__NNNNNNr@   r   r   r   r   r          r   c                   @   r,   )r	   z$
    WAMP dealer role features.
    dealerNc                 K   r.   r   )caller_identificationcall_trustlevelspattern_based_registrationr2   registration_meta_apishared_registrationcall_timeoutcall_cancelingprogressive_call_resultsregistration_revocationr8   testament_meta_apir:   r'   )r   rJ   rK   rL   r2   rM   rN   rO   rP   rQ   rR   r8   rS   r:   r<   r   r   r   r=      r>   zRoleDealerFeatures.__init__r?   r@   r   r   r   r   r	      rA   r	   c                   @   rC   )r
   z$
    WAMP caller role features.
    callerNc                 K   rE   r   )rJ   rO   rP   rQ   r8   r:   r'   )r   rJ   rO   rP   rQ   r8   r:   r<   r   r   r   r=      rF   zRoleCallerFeatures.__init__rG   r@   r   r   r   r   r
      rH   r
   c                   @   s2   e Zd ZdZdZ										dddZdS )r   z$
    WAMP callee role features.
    calleeNc                 K   sH   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	| 
  d S r   )rJ   rK   rL   rN   rO   rP   rQ   rR   r8   r:   r'   )r   rJ   rK   rL   rN   rO   rP   rQ   rR   r8   r:   r<   r   r   r   r=      s   zRoleCalleeFeatures.__init__)
NNNNNNNNNNr@   r   r   r   r   r      s    r   )r-   rB   rD   rI   rT   rU   T)r/   r1   r6   r8   r:   )r/   r4   r5   r8   r9   r:   )rJ   rQ   r8   r:   rP   )rJ   rL   rN   rQ   rR   r8   r:   rP   )rB   rD   rT   rU   )
__future__r   r   autobahnr   autobahn.wamp.exceptionr   __all__EqualityMixinr   r   r   r   r	   r
   r   r   r   r   r   r   r   <module>   sh   ''#
