o
    .]                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ g dZd ZdZ	dZ
dZee	e
ed	Zi ZG d
d deZee dr@e jZn	G dd de jZG dd deZeadd ZdefddZdd ZG dd deZe ZdS )    N)__version__)error)	octs2ints)Debug	setLoggerhexdump      i  )noneencoderdecoderallc                   @   s&   e Zd ZdddZdd Zdd ZdS )	PrinterNc                 C   sj   |d u r	t d}|t j |d u rt  }|d u r t d}|| |t j || || _d S )Npyasn1z!%(asctime)s %(name)s: %(message)s)	logging	getLoggersetLevelDEBUGStreamHandler	FormattersetFormatter
addHandler_Printer__logger)selfloggerhandler	formatter r   0usr/lib/python3.10/site-packages/pyasn1/debug.py__init__!   s   




zPrinter.__init__c                 C      | j | d S N)r   debugr   msgr   r   r   __call__3      zPrinter.__call__c                 C   s   dS )Nz<python logging>r   r   r   r   r   __str__6      zPrinter.__str__)NNN)__name__
__module____qualname__r   r%   r(   r   r   r   r   r      s    
r   NullHandlerc                   @   s   e Zd Zdd ZdS )r-   c                 C   s   d S r!   r   )r   recordr   r   r   emit@   r)   zNullHandler.emitN)r*   r+   r,   r/   r   r   r   r   r-   ?   s    c                   @   s:   e Zd Ze Zdd Zdd Zdd Zdd Zd	d
 Z	dS )r   c              	   O   s   t | _d|v rtt|d t d| _nd|v r |d| _n| j| _| dt	d
|f  |D ]F}|o;|d dv }|rD|dd  }z|rR|  jt|  M  _n	|  jt| O  _W n tyj   td	| w | d
||rsdptdf  q2d S )NZ
loggerName)r   r   printerz!running pyasn1 %s, debug flags %sz, r   )!~r   zbad debug flag %szdebug category '%s' %sdisabledenabled)
DEBUG_NONE_flagsr   r   r   r-   _printergetdefaultPrinterr   joinFLAG_MAPKeyErrorr   ZPyAsn1Error)r   flagsoptionsflagZinverser   r   r   r   G   s0   
zDebug.__init__c                 C   s   d| j | jf S )Nzlogger %s, flags %x)r7   r6   r'   r   r   r   r(   g   r&   zDebug.__str__c                 C   s   |  | d S r!   )r7   r#   r   r   r   r%   j   s   zDebug.__call__c                 C   s
   | j |@ S r!   r6   r   r?   r   r   r   __and__m      
zDebug.__and__c                 C   s
   || j @ S r!   r@   rA   r   r   r   __rand__p   rC   zDebug.__rand__N)
r*   r+   r,   r   r9   r   r(   r%   rB   rD   r   r   r   r   r   D   s     r   c                 C   s@   | r| a nta t D ]\}\}}t||t |@ rt pt qd S r!   )_LOGr5   
LOGGEE_MAPitemssetattr)Z
userLoggermodulenamer=   r   r   r   r   v   s   r   ZLOGc                 C   s   ||ft tj|  < tt tS r!   )rF   sysmodulesr   rE   )rI   rJ   r=   r   r   r   registerLoggee   s   rM   c                 C   s&   d dd ttt| t| D S )N c                 S   s0   g | ]\}}d |d dkrd| pd|f qS )z%s%.2X   r   z
%.5d:  r   ).0nxr   r   r   
<listcomp>   s    $zhexdump.<locals>.<listcomp>)r:   ziprangelenr   )Zoctetsr   r   r   r      s
   r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Scopec                 C   s
   g | _ d S r!   )_listr'   r   r   r   r      rC   zScope.__init__c                 C   s   d | jS )N.)r:   rY   r'   r   r   r   r(      s    zScope.__str__c                 C   r    r!   )rY   append)r   tokenr   r   r   push   r&   z
Scope.pushc                 C   s
   | j  S r!   )rY   popr'   r   r   r   r^      rC   z	Scope.popN)r*   r+   r,   r   r(   r]   r^   r   r   r   r   rX      s
    rX   )r   rK   r   r   r   Zpyasn1.compat.octetsr   __all__r5   ZDEBUG_ENCODERZDEBUG_DECODERZ	DEBUG_ALLr;   rF   objectr   hasattrr-   Handlerr   rE   r   rM   r   rX   scoper   r   r   r   <module>   s6   
/
