o
    >h*                     @   s   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 )    N)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/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/autobahn/wamp/role.py__str__5   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__8   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_bool@   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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   kwargsr   r   r   __init__P      zRoleBrokerFeatures.__init__NNNNNNNNNNNNNr'   r(   r)   r*   r   r<   r   r   r   r   r   H   "    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.   r/   r0   r5   r6   r7   r9   r&   )	r   r.   r/   r0   r5   r6   r7   r9   r;   r   r   r   r<   w   s   	zRoleSubscriberFeatures.__init__)NNNNNNNr?   r   r   r   r   r   o   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.   r3   r4   r7   r8   r9   r&   )r   r.   r3   r4   r7   r8   r9   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_registrationr1   registration_meta_apishared_registrationcall_timeoutcall_cancelingprogressive_call_resultsregistration_revocationr7   testament_meta_apir9   r&   )r   rI   rJ   rK   r1   rL   rM   rN   rO   rP   rQ   r7   rR   r9   r;   r   r   r   r<      r=   zRoleDealerFeatures.__init__r>   r?   r   r   r   r   r      r@   r   c                   @   rB   )r	   z$
    WAMP caller role features.
    callerNc                 K   rD   r   )rI   rN   rO   rP   r7   r9   r&   )r   rI   rN   rO   rP   r7   r9   r;   r   r   r   r<      rE   zRoleCallerFeatures.__init__rF   r?   r   r   r   r   r	      rG   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   )rI   rJ   rK   rM   rN   rO   rP   rQ   r7   r9   r&   )r   rI   rJ   rK   rM   rN   rO   rP   rQ   r7   r9   r;   r   r   r   r<      s   zRoleCalleeFeatures.__init__)
NNNNNNNNNNr?   r   r   r   r   r
      s    r
   )r,   rA   rC   rH   rS   rT   T)r.   r0   r5   r7   r9   )r.   r3   r4   r7   r8   r9   )rI   rP   r7   r9   rO   )rI   rK   rM   rP   rQ   r7   r9   rO   )rA   rC   rS   rT   )r   autobahnr   autobahn.wamp.exceptionr   __all__EqualityMixinr   r   r   r   r   r	   r
   r   r   r   r   r   r   <module>   sf   ''#
