o
    JPZ                     @   s   d dl Z d dlmZ d dlmZ d ZdZdZdZdZdZ	d	Z
d
ZdZdZdZeeeee	e
eeeed
ZG dd deZee drDe jZn	G dd de jZG dd deZd add ZdS )    N)error)__version__                   @         i  )
ZsearcherreaderZlexerparserZgrammarZcodegenwriterZcompilerZborrowerallc                   @   s.   e Zd Zd
ddZ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pysmiz!%(asctime)s %(name)s: %(message)s)	logging	getLoggerZsetLevelDEBUGZStreamHandlerZ	FormatterZsetFormatterZ
addHandler_Printer__logger)selfloggerhandler	formatter r   -/usr/lib/python3/dist-packages/pysmi/debug.py__init__&   s   




zPrinter.__init__c                 C   s   | j | d S N)r   debugr   msgr   r   r   __call__9      zPrinter.__call__c                 C   s   dS )Nz<python built-in logging>r   r   r   r   r   __str__<      zPrinter.__str__c                 C      | j S r   )r   r$   r   r   r   getCurrentLogger?      zPrinter.getCurrentLogger)NNN)__name__
__module____qualname__r   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   emitH   r&   zNullHandler.emitN)r*   r+   r,   r/   r   r   r   r   r-   G   s    c                   @   sH   e Zd Z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 )DebugNc              	   O   s  t | _|dd ur|d| _n | jd ur| j| _nd|v r-tt|d t d| _nt | _| dt	  |D ]E}|oB|d dv }|rK|dd  }z|rY|  jt
|  M  _n	|  jt
| O  _W n tyq   td| w | d	||ryd
pzdf  q9d S )NZprinterZ
loggerName)r   r   zrunning pysmi version %sr   )!~r   zbad debug flag %szdebug category '%s' %sZdisabledenabled)flagNone_flagsget_printerdefaultPrinterr   r   r   r-   r   flagMapKeyErrorr   Z
PySmiError)r   flagsoptionsflagZinverser   r   r   r   O   s4   


zDebug.__init__c                 C   s   d| j | jf S )Nzlogger %s, flags %x)r7   r5   r$   r   r   r   r%   t   r#   zDebug.__str__c                 C   s   |  | d S r   r7   r    r   r   r   r"   w   s   zDebug.__call__c                 C   s
   | j |@ S r   r5   r   r=   r   r   r   __and__z      
zDebug.__and__c                 C   s
   || j @ S r   r?   r@   r   r   r   __rand__}   rB   zDebug.__rand__c                 C   r'   r   r>   r$   r   r   r   getCurrentPrinter   r)   zDebug.getCurrentPrinterc                 C   s   | j r| j  p	d S r   )r7   r(   r$   r   r   r   r(      s   zDebug.getCurrentLogger)r*   r+   r,   r8   r   r%   r"   rA   rC   rD   r(   r   r   r   r   r0   L   s    %r0   c                 C   s   | a d S r   )r   )lr   r   r   	setLogger   s   rF   )r   r   r   r   r4   ZflagSearcherZ
flagReaderZ	flagLexerZ
flagParserZflagGrammarZflagCodegenZ
flagWriterZflagCompilerZflagBorrowerZflagAllr9   objectr   hasattrr-   ZHandlerr0   r   rF   r   r   r   r   <module>   s@   
=