
     h                     `    d Z dgZddlZddlZddlZddlZddlZ G d d      Z	 G d de	      Z
y)af  cssutils ErrorHandler

ErrorHandler
    used as log with usual levels (debug, info, warn, error)

    if instanciated with ``raiseExceptions=True`` raises exeptions instead
    of logging

log
    defaults to instance of ErrorHandler for any kind of log message from
    lexerm, parser etc.

    - raiseExceptions = [False, True]
    - setloglevel(loglevel)
ErrorHandler    Nc                   v    e Zd ZdZej
                  dfdZd Zddej                  j                  ddfdZd	 Zy)
_ErrorHandlerz-
    handles all errors and log messages
    Tc                 t   d| _         |r|| _        || _        yddl}t        j                  d      | _        t        j
                  |j                        }t        j                  d      }|j                  |       | j                  j                  |       | j                  j                  |       || _        y)a  
        inits log if none given

        log
            for parse messages, default logs to sys.stderr
        defaultloglevel
            if none give this is logging.DEBUG
        raiseExceptions
            - True: Errors will be raised e.g. during building
            - False: Errors will be written to the log, this is the
              default behaviour when parsing
        Tr   NCSSUTILSz%(levelname)s	%(message)s)enabled_logsyslogging	getLoggerStreamHandlerstderr	FormattersetFormatter
addHandlersetLevelraiseExceptions)selflogdefaultloglevelr   r
   hdlr	formatters          U/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/errorhandler.py__init__z_ErrorHandler.__init__   s     DI  / ))*5DI((4D))*FGIi(II  &II/.    c                     d}d}||v r.|dk(  rd}t        | j                  |      | _        | j                  S ||v rt        | j                  |      S t	        d|z        )zuse self._log items)debuginfowarnerrorcriticalfatal)r   getEffectiveLevelr   removeHandlerr   warningz$(errorhandler) No Attribute %r found)getattrr	   _logcall_ErrorHandler__handleAttributeError)r   namecallsothers       r   __getattr__z_ErrorHandler.__getattr__=   sd    GP5=v~ #DIIt4DM== U]499d++ !G$!NOOr    NFc                 R   | j                   r|t        j                  j                  }d\  }}|rRt	        |t
              r|d   |d   |d   }}}n$|j                  |j                  |j                  }}}| d| d| d| d	}|r| j                  r|st	        |t        j                  j                        s$t	        |t        j                  j                        r t        |t        j                  j                        r||_        ||_         ||      | j!                  |       yy)
zD
        handles all calls
        logs or raises exception
        N)NN         z [:z: ])r   xmldom	SyntaxErr
isinstancetuplevaluelinecolr   urllibr    	HTTPErrorURLError
issubclassDOMExceptionr'   )	r   msgtokenr    
neverraiseargsr;   r<   r:   s	            r   __handlez_ErrorHandler.__handleL   s     <<}))"ID#eU+',Qxq584E',{{EJJ		4ERvQse2eWA6--jeV\\%;%;<
6<<00A sww';';<!%EJ #EICj c"- r   c                     || _         y)zset log of errorhandler's logN)r	   )r   r   s     r   setLogz_ErrorHandler.setLogk   s	    	r   )__name__
__module____qualname____doc__r   INFOr   r-   r5   r6   r7   r(   rH    r   r   r   r      s?     -4LL$ /<P  D(9(9eRV#>r   r   c                   6    e Zd ZdZdZdej                  dfdZy)r   zSingleton, see _ErrorHandlerNTc                     t         j                  t        |||      t         _        t         j                  j                  | _        y )N)r   r   r   )r   instancer   __dict__)r   r   r   r   s       r   r   zErrorHandler.__init__u   s9      ($1 / /%L!
 %--66r   )rI   rJ   rK   rL   rQ   r   rM   r   rN   r   r   r   r   p   s    "Ht 7r   )rL   __all__r   urllib.errorr=   urllib.parseurllib.requestxml.domr5   r   r   rN   r   r   <module>rX      s<     
     S Sl7= 7r   