
    Z'i                     *    d dl mZmZ  G d de      Zy)   )settingsutilsc                   4     e Zd ZdZ fdZd Zd Zd Z xZS )Configz=
    The global config wrapper that handles the backend.
    c                 z    t         t        |   d t        j                  t
        j                                      y )N_backend)superr   __setattr__r   import_module_attrr   BACKEND)self	__class__s    /opt/sopds/constance/base.py__init__zConfig.__init__   s-    fd'
6E$$X%5%568	:    c                    	 t        t        j                  |         dvrt        |      t        j                  |   d   }| j
                  j                  |      }||}t        | ||       |S |S # t        $ r t        |      w xY w)N)          )lenr   CONFIGAttributeErrorKeyErrorr   getsetattr)r   keydefaultresults       r   __getattr__zConfig.__getattr__   s    	&xs+,6$S))ooc*1-G ""3'>FD#w'M  	& %%	&s   ?A1 1Bc                 v    |t         j                  vrt        |      | j                  j	                  ||       y N)r   r   r   r   set)r   r   values      r   r
   zConfig.__setattr__   s-    hoo% %%#u%r   c                 >    t         j                  j                         S r!   )r   r   keys)r   s    r   __dir__zConfig.__dir__   s    ##%%r   )	__name__
__module____qualname____doc__r   r   r
   r&   __classcell__)r   s   @r   r   r      s    :&
&r   r   N) r   r   objectr    r   r   <module>r/      s    &V &r   