
    ]hz                         d dl mZmZmZmZ d dlZd dlZ	 dgZdZ	dZ
d dlZej                  d    dk\  rd dlmZ d dlmZ nd dlmZ d dlmZ  G d	 d
e      Z G d de      Zy)    )unicode_literalsdivisionabsolute_importprint_functionNErrorHandlerrestructuredtextz$Id$   )	HTTPError)URLErrorc                   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          /home/pod-website-builder.sw7ft.com/pod-website-builder/website-analyzer/venv/lib/python3.12/site-packages/css_parser/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__F   sh    GP5=v~ #DIIt4DM== U]499d++ 6=? ?r#    NFc                     | j                   r|t        j                  j                  }d\  }}|rRt	        |t
              r|d   |d   |d   }}}n$|j                  |j                  |j                  }}}|d|d|d|d	}|ri| j                  r]|s[t	        |t              st	        |t              r t        |t        j                  j                        r||_        ||_         ||      | j                  |       yy)
zD
        handles all calls
        logs or raises exception
        N)NN      r	   z [:z: ])r   xmldom	SyntaxErr
isinstancetuplevaluelinecolr   urllib_HTTPErrorurllib_URLError
issubclassDOMExceptionr/   )	r   msgtokenr(   
neverraiseargsrB   rC   rA   s	            r!   __handlez_ErrorHandler.__handleV   s     <<}))"ID#eU+',Qxq584E',{{EJJ		4EsE+ --je%56*UO:\sww';';<!%EJ #EICj c"+ r#   c                     || _         y)zset log of errorhandler's logN)r   )r   r   s     r!   setLogz_ErrorHandler.setLogs   s	    	r#   )__name__
__module____qualname____doc__r   INFOr"   r5   r<   r=   r>   r0   rN    r#   r!   r   r   #   s?     -4LL!%/<?  T1B1B!#: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__|   s;       ($1cBQBQ%SL! %--66r#   )rO   rP   rQ   rR   rW   r   rS   r"   rT   r#   r!   r   r   x   s    "H 7<<7r#   )
__future__r   r   r   r   xml.domr<   r   __all____docformat____version__r   version_infourllib.errorr
   rD   r   rE   urllib2objectr   r   rT   r#   r!   <module>rb      sg    R R    
" 
A!:853RF Rj7= 7r#   