
    hQ&                         S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSSK	J
r
  SSKJr  SSKJr  SSKJrJr  SrS	rS
rSr " S S\5      r " S S\5      r " S S5      r " S S5      r\" 5       rg)z
Settings and configuration for Django.

Read values from the module specified by the DJANGO_SETTINGS_MODULE environment
variable, and then from django.conf.global_settings; see the global_settings.py
for a list of all possible variables.
    N)Path)global_settings)ImproperlyConfigured)RemovedInDjango60Warning)
LazyObjectemptyDJANGO_SETTINGS_MODULEdefaultstaticfileszCThe FORMS_URLFIELD_ASSUME_HTTPS transitional setting is deprecated.c                   $    \ rS rSrSrS rS rSrg)SettingsReference    z
String subclass which references a current settings value. It's treated as
the value in memory but serializes to a settings.NAME attribute reference.
c                 ,    [         R                  X5      $ N)str__new__selfvaluesetting_names      F/var/www/html/env/lib/python3.13/site-packages/django/conf/__init__.pyr   SettingsReference.__new__&   s    {{4''    c                     X l         g r   r   r   s      r   __init__SettingsReference.__init__)   s    (r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r   r       s    
()r   r   c                      ^  \ rS rSrSrSS jrS rS rU 4S jrU 4S jr	\
4S jr\S	 5       r\S
 5       rS rSrU =r$ )LazySettings-   z
A lazy proxy for either global Django settings or a custom settings object.
The user can manually configure settings prior to using them. Otherwise,
Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE.
c                     [         R                  R                  [        5      nU(       d&  U(       a  SU-  OSn[	        SU< S[        < S35      e[        U5      U l        g)z
Load the settings module pointed to by the environment variable. This
is used the first time settings are needed, if the user hasn't
configured settings manually.
z
setting %ssettingsz
Requested zS, but settings are not configured. You must either define the environment variable z8 or call settings.configure() before accessing settings.N)osenvirongetENVIRONMENT_VARIABLEr   Settings_wrapped)r   namesettings_moduledescs       r   _setupLazySettings._setup4   sP     **..)=>,0L4'jD& -/  !1r   c                 `    U R                   [        L a  gSSU R                   R                  0-  $ )Nz<LazySettings [Unevaluated]>z$<LazySettings "%(settings_module)s">r1   )r/   r   SETTINGS_MODULEr   s    r   __repr__LazySettings.__repr__F   s2    ==E!15t}}<<9
 
 	
r   c                    U R                   =n[        L a  U R                  U5        U R                   n[        X!5      nUS;   a  Ub  U R	                  U5      nOUS:X  a  U(       d  [        S5      eX0R                  U'   U$ )z<Return the value of a setting and cache it in self.__dict__.>   	MEDIA_URL
STATIC_URL
SECRET_KEYz)The SECRET_KEY setting must not be empty.)r/   r   r3   getattr_add_script_prefixr   __dict__)r   r0   r/   vals       r   __getattr__LazySettings.__getattr__N   sx    %H%/KK}}Hh% ..3?))#.C\!#&'RSS!d
r   c                    > US:X  a  U R                   R                  5         OU R                   R                  US5        [        TU ]  X5        g)z
Set the value of setting. Clear all cached values if _wrapped changes
(@override_settings does this) or clear single values when set.
r/   N)r@   clearpopsuper__setattr__r   r0   r   	__class__s      r   rH   LazySettings.__setattr___   s>    
 :MM!MMdD)D(r   c                 \   > [         TU ]  U5        U R                  R                  US5        g)z3Delete a setting and clear it from cache if needed.N)rG   __delattr__r@   rF   r   r0   rJ   s     r   rM   LazySettings.__delattr__j   s$    D!$%r   c                     U R                   [        La  [        S5      e[        U5      nUR	                  5        H4  u  pEUR                  5       (       d  [        SU-  5      e[        X4U5        M6     X0l         g)z
Called to manually configure the settings. The 'default_settings'
parameter sets where to retrieve any unspecified values from (its
argument must support attribute access (__getattr__)).
zSettings already configured.zSetting %r must be uppercase.N)r/   r   RuntimeErrorUserSettingsHolderitemsisupper	TypeErrorsetattr)r   default_settingsoptionsholderr0   r   s         r   	configureLazySettings.configureo   sf     ==%=>>#$45"==?KD<<>> ?$ FGGF%( + r   c                 X    U R                  S5      (       a  U $ SSKJn  U" 5       < U < 3$ )z
Add SCRIPT_NAME prefix to relative paths.

Useful when the app is being served at a subpath and manually prefixing
subpath to STATIC_URL and MEDIA_URL in settings is inconvenient.
)zhttp://zhttps:///r   )get_script_prefix)
startswithdjango.urlsr^   )r   r^   s     r   r?   LazySettings._add_script_prefix~   s,     899L1*,e44r   c                 &    U R                   [        L$ )z9Return True if the settings have already been configured.)r/   r   r7   s    r   
configuredLazySettings.configured   s     }}E))r   c                     [         R                  " 5       nUS   u  n    nUR                  [        R                  R                  [        R                  5      5      (       d  [        R                  " XSS9  g g )N   )
stacklevel)
	tracebackextract_stackr_   r*   pathdirnamedjango__file__warningswarn)r   messagecategorystackfilename_s         r   _show_deprecation_warning&LazySettings._show_deprecation_warning   sZ    '') ""I!Q""277??6??#CDDMM': Er   )r/   r   )r   r   r    r!   r"   r3   r8   rB   rH   rM   r   rZ   staticmethodr?   propertyrc   rv   r#   __classcell__rJ   s   @r   r&   r&   -   s]    2$
"	)&
 *9  5 5 * *; ;r   r&   c                   &    \ rS rSrS rS rS rSrg)r.      c           	         [        [        5       H4  nUR                  5       (       d  M  [        X[	        [        U5      5        M6     Xl        [        R                  " U R
                  5      nSn[        5       U l	        [        U5       Hz  nUR                  5       (       d  M  [	        X25      nX$;   a)  [        U[        [        45      (       d  [        SU-  5      e[        XU5        U R                  R                  U5        M|     U R                  S5      (       a  [         R"                  " [$        [&        5        [)        [*        S5      (       a  U R,                  (       a  [/        S5      nUR0                  " U R,                  R3                  S5      6 nUR5                  5       (       a-  UR5                  5       (       d  [7        SU R,                  -  5      eU R,                  [8        R:                  S'   [*        R<                  " 5         g g g )	N)ALLOWED_HOSTSINSTALLED_APPSTEMPLATE_DIRSLOCALE_PATHSSECRET_KEY_FALLBACKSz)The %s setting must be a list or a tuple.FORMS_URLFIELD_ASSUME_HTTPStzsetz/usr/share/zoneinfor]   zIncorrect timezone setting: %sTZ)dirr   rT   rV   r>   r6   	importlibimport_moduleset_explicit_settings
isinstancelisttupler   addis_overriddenro   rp   *FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSGr   hasattrtime	TIME_ZONEr   joinpathsplitexists
ValueErrorr*   r+   r   )r   r1   settingmodtuple_settingssetting_valuezoneinfo_rootzone_info_files           r   r   Settings.__init__   s   ?+G  w'HI ,
  /%%d&:&:;
 #&%3xG   ' 5,Z!D%=6 6 /CgM  }5''++G4   ;<<MM:(
 4!!dnn !!67M*33T^^5I5I#5NON##%%n.C.C.E.E !ADNN!RSS  $~~BJJtJJL '5!r   c                     XR                   ;   $ r   )r   )r   r   s     r   r   Settings.is_overridden   s    1111r   c                 N    SU R                   R                  U R                  S.-  $ )Nz<%(cls)s "%(settings_module)s">)clsr1   )rJ   r   r6   r7   s    r   r8   Settings.__repr__   s*    0>>**#334
 
 	
r   )r6   r   N)r   r   r    r!   r   r   r8   r#   r$   r   r   r.   r.      s    0d2
r   r.   c                   Z   ^  \ rS rSrSrSrS rS rU 4S jrU 4S jr	S r
S	 rS
 rSrU =r$ )rR      z$Holder for user configured settings.Nc                 >    [        5       U R                  S'   Xl        g)z
Requests for configuration variables not in this class are satisfied
from the module specified in default_settings (if possible).
_deletedN)r   r@   rW   )r   rW   s     r   r   UserSettingsHolder.__init__   s    
 %(Ej! 0r   c                     UR                  5       (       a  XR                  ;   a  [        e[        U R                  U5      $ r   )rT   r   AttributeErrorr>   rW   )r   r0   s     r   rB   UserSettingsHolder.__getattr__   s/    ||~~!6  t,,d33r   c                    > U R                   R                  U5        US:X  a  [        R                  " [        [
        5        [        TU ]  X5        g )Nr   )r   discardro   rp   r   r   rG   rH   rI   s      r   rH   UserSettingsHolder.__setattr__   s?    d#00MM:( 	D(r   c                 |   > U R                   R                  U5        [        X5      (       a  [        TU ]  U5        g g r   )r   r   r   rG   rM   rN   s     r   rM   UserSettingsHolder.__delattr__   s2    $4G% r   c                 p   ^  [        U 4S j/ T R                  Q[        T R                  5      Q 5       5      $ )Nc              3   L   >#    U  H  nUTR                   ;  d  M  Uv   M     g 7fr   )r   ).0sr   s     r   	<genexpr>-UserSettingsHolder.__dir__.<locals>.<genexpr>   s&      
B% ABs   $	$)sortedr@   r   rW   r7   s   `r   __dir__UserSettingsHolder.__dir__   s6     
Bt}}Bs4+@+@'AB
 
 	
r   c                     XR                   ;   nXR                  ;   n[        U R                  SS 5      " U5      nU=(       d    U=(       d    U$ )Nr   c                     g)NFr$   )r   s    r   <lambda>2UserSettingsHolder.is_overridden.<locals>.<lambda>  s    er   )r   r@   r>   rW   )r   r   deletedset_locallyset_on_defaults        r   r    UserSettingsHolder.is_overridden  sK    ]]*. !!?O

 7+77r   c                 8    SSU R                   R                  0-  $ )Nz	<%(cls)s>r   )rJ   r   r7   s    r   r8   UserSettingsHolder.__repr__
  s#    4>>**
 
 	
r   )rW   )r   r   r    r!   r"   r6   r   rB   rH   rM   r   r   r8   r#   rz   r{   s   @r   rR   rR      s5    . O14
)&

8
 
r   rR   )r"   r   r*   r   ri   ro   pathlibr   rm   django.confr   django.core.exceptionsr   django.utils.deprecationr   django.utils.functionalr   r   r-   DEFAULT_STORAGE_ALIASSTATICFILES_STORAGE_ALIASr   r   r   r&   r.   rR   r)   r$   r   r   <module>r      s     	      ' 7 = 5/ ! )  J +

) 
)l;: l;^:
 :
z4
 4
n >r   