
    ei#                        d dl Z d dlmZ d dlZd dlmZmZmZmZm	Z	m
Z
mZmZ ddlmZ dZ e
dej                  Z G d	 d
ej                  ZddZe j        de	ej                 ded         fd            Zddedee	e         df         defdZdedefdZ e
dd          Z G d de          Z G d de          Z G d de          Ze                    e          Z G d de          Z  G d de           Z!dS )     N)cached_property)AnyDictIteratorTupleTypeTypeVarUnioncast   )assoc   TLogger)boundc                   b    e Zd ZdZedefd            ZdedededdfdZ	de
ed	f         fd
ZdS )ExtendedDebugLoggerzG
    Logging class that can be used for lower level debug logging.
    returnc                 6    |                      t                    S N)isEnabledForDEBUG2_LEVEL_NUMselfs    m/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/static_dependencies/ethereum/utils/logging.pyshow_debug2zExtendedDebugLogger.show_debug2   s      !1222    messageargskwargsNc                 \    | j         r | j        t          |g|R i | d S d | j        d<   d S )Nc                     d S r    )r   r   r   s      r   <lambda>z,ExtendedDebugLogger.debug2.<locals>.<lambda>*   s    t r   debug2)r   logr   __dict__)r   r   r   r   s       r   r$   zExtendedDebugLogger.debug2#   sQ     	LDH%w@@@@@@@@@
 'L&KDM(###r   .c                      t           | j        ffS r   )get_extended_debug_loggernamer   s    r   
__reduce__zExtendedDebugLogger.__reduce__,   s     )49,66r   )__name__
__module____qualname____doc__r   boolr   strr   r$   r   r*   r"   r   r   r   r      s          3T 3 3 3 _3Lc L# L L L L L L7E#s(O 7 7 7 7 7 7r   r   r   c                      t          t          d          s-t          j        t          d           t          t          _        dS dS )zP
    Installs the `DEBUG2` level logging levels to the main logging module.
    DEBUG2N)hasattrloggingaddLevelNamer   r2   r"   r   r   setup_DEBUG2_loggingr6   2   s?     7H%% *-x888)* *r   logger_classc              #      K   t          j                    }t          j        |            	 d V  t          j        |           d S # t          j        |           w xY wr   )r4   getLoggerClasssetLoggerClass)r7   original_logger_classs     r   _use_logger_classr<   ;   sd      #244<(((645555545555s   A Ar)   c                 p   |'t          t          t          j        |                     S t	          |          5  t          j        j        }| |j        v r$t          |j        |                    |ur|j        | = t          t          t          j        |                     cd d d            S # 1 swxY w Y   d S r   )	r   r   r4   	getLoggerr<   Loggermanager
loggerDicttype)r)   r7   r@   s      r   
get_loggerrC   E   s    GW.t44555|,, 	: 	: n,Gw)))*4011EE*40!24!8!899	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   A%B++B/2B/c                 ,    t          | t                    S r   )rC   r   )r)   s    r   r(   r(   Y   s    d/000r   THasLoggerMetaHasLoggerMetac            
           e Zd ZdZej        Zdee         de	de
ee                  dee	ef         def
 fdZedee         deej                 dee         fd	            Zedee         d
ee         dee         fd            Z xZS )rF   z
    Assigns a logger instance to a class, derived from the import path and name.

    This metaclass uses `__qualname__` to identify a unique and meaningful name
    to use when creating the associated logger for a given class.
    mclsr)   bases	namespacer   c           
      l   d|v r$t                                          | |||          S d|vrt          d          t          | j                  5  t          j        |d                   }d d d            n# 1 swxY w Y   t                                          | ||t          |d|                    S )Nloggerr-   zMissing __qualname__)super__new__AttributeErrorr<   r7   r4   r>   r   )rH   r)   rI   rJ   rL   	__class__s        r   rN   zHasLoggerMeta.__new__j   s     y   77??4ui@@@** !7888t011 	B 	B&y'@AAF	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B wwtT5%	8V2T2TUUUs   A88A<?A<valuec                 4    t          | j        | fd|i          S )Nr7   rB   r+   )rH   rQ   s     r   replace_logger_classz"HasLoggerMeta.replace_logger_class|   s     DMD7^U,CDDDr   otherc                 2    t          | j        | |fi           S r   rS   )rH   rU   s     r   meta_compatzHasLoggerMeta.meta_compat   s     DMD%="555r   )r+   r,   r-   r.   r4   r?   r7   r   rE   r0   r   r   r   rN   classmethodrT   rB   rW   __classcell__)rP   s   @r   rF   rF   `   s5         >LV>"VV T#YV S>	V
 
V V V V V V$ E>"E+/+?E	n	E E E [E
 6>"6+/:6	n	6 6 6 [6 6 6 6 6r   c                   .    e Zd Z ej        d          ZdS )_BaseHasLogger N)r+   r,   r-   r4   r?   rL   r"   r   r   r[   r[      s!         W^BFFFr   r[   )	metaclassc                       e Zd ZdS )	HasLoggerNr+   r,   r-   r"   r   r   r_   r_              Dr   r_   c                   $    e Zd Z ed          ZdS )_BaseHasExtendedDebugLoggerr\   N)r+   r,   r-   r   rL   r"   r   r   rc   rc      s          ! $$FFFr   rc   c                       e Zd ZdS )HasExtendedDebugLoggerNr`   r"   r   r   re   re      ra   r   re   )r   Nr   )"
contextlib	functoolsr   r4   typingr   r   r   r   r   r	   r
   r   toolzr   r   r?   r   r   r6   contextmanagerr<   r0   rC   r(   rE   rB   rF   r[   r_   rT   HasExtendedDebugLoggerMetarc   re   r"   r   r   <module>rl      s            	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       
')7>
2
2
27 7 7 7 7'. 7 7 70* * * * 6D$8 6Xd^ 6 6 6 6: :S :d7mT.A(B :g : : : :(1C 1,? 1 1 1 1 )AAA&6 &6 &6 &6 &6D &6 &6 &6R         }        	 	 	 	 	 	 	 	 +??@STT % % % % %,F % % % %	 	 	 	 	8 	 	 	 	 	r   