

_V(                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z d  d l	 m
 Z
 d  d l m Z m Z d  d l m Z d  d l m Z e d d	 d
 g  Z d h Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d d    Z e e  d  d!    Z e e  d" d#    Z e e  d$ d%    Z  d S)&    N)setting_changed)connectionsrouter)ConnectionRouter)Signalreceiver)timezone)emptyZproviding_argstemplatecontextZ	DATABASESc              K   s6   |  d d k r2 d d l  m } t j   | _ n  d  S)NsettingZCACHESr   )caches)Zdjango.core.cacher   	threadinglocalZ_caches)kwargsr    r   5/tmp/pip-build-ghmbqnp_/Django/django/test/signals.pyclear_cache_handlers   s    r   c              K   s~   |  d d k rz d d l  m } | j   d d l m } | j   d d l m } | j   d d l m } i  | _	 n  d  S)Nr   INSTALLED_APPSr   )
get_finder)get_commands)get_app_template_dirs)
trans_real)
"django.contrib.staticfiles.findersr   cache_clearZdjango.core.managementr   Zdjango.template.utilsr   django.utils.translationr   _translations)r   r   r   r   r   r   r   r   update_installed_apps   s    


r   c              K   s  |  d d k rm t  t d  r] |  d r= |  d t j d <n t j j d d   t j   n  t j j   n  |  d d k rx t	 j
   D] } y
 | ` Wn t k
 r Yn Xy
 | ` Wn t k
 r Yn X| j j   } | r | j    } | j | | j g  Wd  QXq q Wn  d  S)Nr   	TIME_ZONEtzsetvalueZTZUSE_TZ>   r!   r   )hasattrtimeosenvironpopr   r   Zget_default_timezoner   r   allAttributeErrorZtimezone_nameopsZset_time_zone_sqlcursorexecute)r   connZtz_sqlr*   r   r   r   update_connections_time_zone.   s*    


r-   c              K   s&   |  d d k r" t    j t _ n  d  S)Nr   ZDATABASE_ROUTERS)r   Zroutersr   )r   r   r   r   clear_routers_cacheM   s    r.   c              K   su   |  d d k rq d d l  m } y
 | ` Wn t k
 r> Yn Xd  | _ i  | _ d d l m } | j j	   n  d  S)Nr   	TEMPLATESTEMPLATE_DIRSALLOWED_INCLUDE_ROOTSTEMPLATE_CONTEXT_PROCESSORSTEMPLATE_DEBUGTEMPLATE_LOADERSTEMPLATE_STRING_IF_INVALIDDEBUGFILE_CHARSETr   r   )engines)Engine>
   r0   r5   INSTALLED_APPSr4   r3   r/   DEBUGr7   r2   r1   )
Zdjango.templater8   Z	templatesr(   Z
_templatesZ_enginesZdjango.template.enginer9   Zget_defaultr   )r   r8   r9   r   r   r   reset_template_enginesS   s(             	
		r<   c              K   s0   |  d d k r, d d l  m } i  | _ n  d  S)Nr   ZSERIALIZATION_MODULESr   )serializers)Zdjango.corer=   Z_serializers)r   r=   r   r   r   clear_serializers_cachel   s    r>   c              K   sx   |  d d k r; d d l  m } d  | _ t j   | _ n  |  d d k rt d d l  m } i  | _ | j j   n  d  S)	Nr   	LANGUAGESLANGUAGE_CODELOCALE_PATHSr   )r   >   r@   r?   rA   >   r?   rA   )	r   r   _defaultr   r   _activer   Zcheck_for_languager   )r   r   r   r   r   language_changeds   s    		rD   c              K   sE   d d d d d h } |  d | k rA d d l  m } t | _ n  d  S)	NZDEFAULT_FILE_STORAGEZ!FILE_UPLOAD_DIRECTORY_PERMISSIONSZFILE_UPLOAD_PERMISSIONSZ
MEDIA_ROOTZ	MEDIA_URLr   r   )default_storage)Zdjango.core.files.storagerE   r	   _wrapped)r   Zfile_storage_settingsrE   r   r   r   file_storage_changed   s    	rG   c              K   s<   |  d r8 |  d t  k r8 t j d |  d d d n  d  S)NZenterr   z6Overriding setting %s can lead to unexpected behavior.
stacklevel   )COMPLEX_OVERRIDE_SETTINGSwarningswarn)r   r   r   r   complex_setting_changed   s    	rM   c              K   s>   |  d d k r: d d l  m } m } |   | d   n  d  S)Nr   ZROOT_URLCONFr   )clear_url_cachesset_urlconf)Zdjango.core.urlresolversrN   rO   )r   rN   rO   r   r   r   root_urlconf_changed   s    rP   c              K   s0   |  d d k r, d d l  m } t | _ n  d  S)Nr   STATICFILES_STORAGESTATIC_ROOT
STATIC_URLr   )staticfiles_storage>   rQ   rR   rS   )Z"django.contrib.staticfiles.storagerT   r	   rF   )r   rT   r   r   r   static_storage_changed   s      	rU   c              K   s1   |  d d k r- d d l  m } | j   n  d  S)Nr   STATICFILES_DIRSrR   r   )r   >   rV   STATIC_ROOT)r   r   r   )r   r   r   r   r   static_finders_changed   s
     	rX   c              K   s1   |  d d k r- d d l  m } | j   n  d  S)Nr   ZAUTH_PASSWORD_VALIDATORSr   )get_default_password_validators)Z'django.contrib.auth.password_validationrY   r   )r   rY   r   r   r    auth_password_validators_changed   s    rZ   )!r$   r   r#   rK   Zdjango.core.signalsr   Z	django.dbr   r   Zdjango.db.utilsr   Zdjango.dispatchr   r   Zdjango.utilsr   Zdjango.utils.functionalr	   Ztemplate_renderedrJ   r   r   r-   r.   r<   r>   rD   rG   rM   rP   rU   rX   rZ   r   r   r   r   <module>   s0   		
