
    (ph4                         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Jr  SSKJrJr  SrS	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)RemovedInDjango51WarningRemovedInDjango60Warning)
LazyObjectemptyDJANGO_SETTINGS_MODULEdefaultstaticfileszEThe DEFAULT_FILE_STORAGE setting is deprecated. Use STORAGES instead.zDThe STATICFILES_STORAGE setting is deprecated. Use STORAGES instead.zCThe 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      G/var/www/html/venv/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__1   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 5       r\S 5       rSrU =r$ )LazySettings5   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._setup<   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">r2   )r0   r	   SETTINGS_MODULEr   s    r   __repr__LazySettings.__repr__N   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.)r0   r	   r4   getattr_add_script_prefixr   __dict__)r   r1   r0   vals       r   __getattr__LazySettings.__getattr__V   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.
r0   N)rA   clearpopsuper__setattr__)r   r1   r   	__class__s      r   rI   LazySettings.__setattr__g   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)rH   __delattr__rA   rG   r   r1   rJ   s     r   rM   LazySettings.__delattr__r   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)r0   r	   RuntimeErrorUserSettingsHolderitemsisupper	TypeErrorsetattr)r   default_settingsoptionsholderr1   r   s         r   	configureLazySettings.configurew   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.)r0   r	   r8   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   c                 X    U R                  [        [        5        U R                  S5      $ )NDEFAULT_FILE_STORAGE)rv   #DEFAULT_FILE_STORAGE_DEPRECATED_MSGr   rC   r8   s    r   ry   !LazySettings.DEFAULT_FILE_STORAGE   s*    &&/1I	
  677r   c                 X    U R                  [        [        5        U R                  S5      $ )NSTATICFILES_STORAGE)rv   "STATICFILES_STORAGE_DEPRECATED_MSGr   rC   r8   s    r   r}    LazySettings.STATICFILES_STORAGE   s*    &&.0H	
  566r   )r0   r   )r   r    r!   r"   r#   r4   r9   rC   rI   rM   r   rZ   staticmethodr@   propertyrc   rv   ry   r}   r$   __classcell__rJ   s   @r   r'   r'   5   s    2$
"	)&
 *9  5 5 * *; 8 8 7 7r   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         U R                  S	5      (       ag  U R                  S
5      (       a  [        S5      e0 U R>                  E[@        SU RB                  00EU l        [         R"                  " [D        [F        5        U R                  S5      (       ag  U R                  S
5      (       a  [        S5      e0 U R>                  E[H        SU RJ                  00EU l        [         R"                  " [L        [F        5        U R                  S
5      (       au  [        U S	U R>                  RO                  [@        0 5      RO                  S5      5        [        U SU R>                  RO                  [H        0 5      RO                  S5      5        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TZry   STORAGESz5DEFAULT_FILE_STORAGE/STORAGES are mutually exclusive.BACKENDr}   z4STATICFILES_STORAGE/STORAGES are mutually exclusive.)(dirr   rT   rV   r?   r7   	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   DEFAULT_STORAGE_ALIASry   rz   r   STATICFILES_STORAGE_ALIASr}   r~   r-   )r   r2   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455!!*--*K --%	43L3L'MDM MM=?WX344!!*--*J --)It7O7O+PDM MM<>VWj))&!!"7<@@K
 %!!";R@DDYO *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">)clsr2   )rJ   r   r7   r8   s    r   r9   Settings.__repr__  s*    0>>**#334
 
 	
r   )r7   r   r   N)r   r    r!   r"   r   r   r9   r$   r%   r   r   r/   r/      s    Rh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   i  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   rA   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   r1   s     r   rC   UserSettingsHolder.__getattr__"  s/    ||~~!6  t,,d33r   c                 b  > U R                   R                  U5        US:X  a>  SU R                  0U R                  [        '   [
        R                  " [        [        5        US:X  a>  SU R                  0U R                  [        '   [
        R                  " [        [        5        US:X  a  [
        R                  " [        [        5        [        TU ]=  X5        US:X  a  U R                  R!                  [        5      =n(       a   [        TU ]=  SUR!                  S5      5        O"U R                  R#                  [        SS05        U R                  R!                  [        5      =n(       a   [        TU ]=  SUR!                  S5      5        g U R                  R#                  [        SS05        g g )Nry   r   r}   r   r   z+django.core.files.storage.FileSystemStoragez5django.contrib.staticfiles.storage.StaticFilesStorage)r   discardry   r   r   ro   rp   rz   r   r}   r   r~   r   r   rH   rI   r-   
setdefault)r   r1   r   default_file_storagestaticfiles_storagerJ   s        r   rI   UserSettingsHolder.__setattr__'  sr   d#))4444DMM/0 MM=?WX((4338DMM34 MM<>VW00MM:( 	D(:'+}}'8'89N'OO#O#*,@,D,DY,O (() MN '+mm&7&78Q&RR"R#)+>+B+B9+M ((-!S r   c                 |   > U R                   R                  U5        [        X5      (       a  [        TU ]  U5        g g r   )r   r   r   rH   rM   rN   s     r   rM   UserSettingsHolder.__delattr__R  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>X  s&      
B% ABs   $	$)sortedrA   r   rW   r8   s   `r   __dir__UserSettingsHolder.__dir__W  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>b  s    er   )r   rA   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   r8   s    r   r9   UserSettingsHolder.__repr__f  s#    4>>**
 
 	
r   )rW   )r   r    r!   r"   r#   r7   r   rC   rI   rM   r   r   r9   r$   r   r   s   @r   rR   rR     s6    . O14
)V&

8
 
r   rR   )r#   r   r+   r   ri   ro   pathlibr   rm   django.confr   django.core.exceptionsr   django.utils.deprecationr   r   django.utils.functionalr   r	   r.   r   r   rz   r~   r   r   r   r'   r/   rR   r*   r%   r   r   <module>r      s     	      ' 7 W 5/ ! )  L $
 K # J +

) 
)|7: |7~\
 \
~V
 V
r >r   