o a@sTddlmZddlmZddlmZGdddZGdddeZ Gdd d Z d S) )Local)settings)cached_propertyc@s@eZdZdZddZddZddZdd Zd d Zd d Z dS)ConnectionProxyz5Proxy for accessing a connection object's attributes.cCs||jd<||jd<dS)N _connections_alias)__dict__)self connectionsaliasr 9/usr/lib/python3/dist-packages/django/utils/connection.py__init__ s zConnectionProxy.__init__cCt|j|j|SN)getattrrr)r itemr r r __getattr__zConnectionProxy.__getattr__cCst|j|j||Sr)setattrrr)r namevaluer r r __setattr__szConnectionProxy.__setattr__cCrr)delattrrr)r rr r r __delattr__rzConnectionProxy.__delattr__cCs||j|jvSrrrr keyr r r __contains__zConnectionProxy.__contains__cCs|j|j|kSrr)r otherr r r __eq__rzConnectionProxy.__eq__N) __name__ __module__ __qualname____doc__rrrrrr!r r r r rs rc@s eZdZdS)ConnectionDoesNotExistN)r"r#r$r r r r r&sr&c@sfeZdZdZeZdZdddZeddZ ddZ d d Z d d Z d dZ ddZddZddZdS)BaseConnectionHandlerNFcCs||_t|j|_dSr) _settingsrthread_criticalrr rr r r r'szBaseConnectionHandler.__init__cCs||j|_|jSr)configure_settingsr(r r r r r+szBaseConnectionHandler.settingscCs|dur tt|j}|Sr)rdjango_settings settings_namer*r r r r+0s z(BaseConnectionHandler.configure_settingscCstd)Nz.Subclasses must implement create_connection().)NotImplementedError)r r r r r create_connection5sz'BaseConnectionHandler.create_connectioncCsZzt|j|WSty||jvr|d|dYnw||}t|j|||S)NzThe connection 'z' doesn't exist.)rrAttributeErrorrexception_classr0r)r r connr r r __getitem__8s   z!BaseConnectionHandler.__getitem__cCst|j||dSr)rr)r rrr r r __setitem__Brz!BaseConnectionHandler.__setitem__cCst|j|dSr)rrrr r r __delitem__Erz!BaseConnectionHandler.__delitem__cCs t|jSr)iterrr,r r r __iter__Hs zBaseConnectionHandler.__iter__csfddDS)Ncsg|]}|qSr r ).0r r,r r Lsz-BaseConnectionHandler.all..r r,r r,r allKrzBaseConnectionHandler.allr)r"r#r$r.r&r2r)rrrr+r0r4r5r6r8r;r r r r r'"s    r'N) asgiref.localr django.confrr-django.utils.functionalrr Exceptionr&r'r r r r s