
    j<                         S 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Jr  SSK	J
r
  SSKJrJrJr  SSKJrJr  SrS	rS
rSrSr1 SkrSrS r " S S\5      r " S S\5      r " S S5      r " S S5      rS 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)RemovedInDjango70Warningdjango_file_prefixeswarn_about_external_use)
LazyObjectemptyDJANGO_SETTINGS_MODULEdefaultstaticfileszThe SIGNED_COOKIE_LEGACY_SALT_FALLBACK transitional setting is deprecated. Remove it from your settings once legacy signed cookies have expired. They will not be accepted in Django 7.0.zThe USE_BLANK_CHOICE_DASH setting is deprecated. If you wish to define your own default blank choice label, override django.db.models.fields.BLANK_CHOICE_LABEL in your app's ready() method.>   
EMAIL_HOST
EMAIL_PORTEMAIL_BACKENDEMAIL_TIMEOUTEMAIL_USE_SSLEMAIL_USE_TLSEMAIL_FILE_PATHEMAIL_HOST_USEREMAIL_SSL_KEYFILEEMAIL_SSL_CERTFILEEMAIL_HOST_PASSWORDzGThe {name} setting is deprecated. Migrate to MAILERS before Django 7.0.c                     [         R                  U 5      nU(       a0  SU ;   a)  SR                  [        U5      5      n[	        SU S35      eg g )NMAILERSz, zCDeprecated email settings are not allowed when MAILERS is defined: .)DEPRECATED_EMAIL_SETTINGSintersectionjoinsortedr   )explicit_settings
deprecateddeprecated_strs      L/var/www/html/KUNJ/venv/lib/python3.13/site-packages/django/conf/__init__.py_check_email_settings_conflictsr$   ?   sW    *778IJJi#446*#56"&'q*
 	
 5z    c                   $    \ rS rSrSrS rS rSrg)SettingsReferenceI   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      r#   r,   SettingsReference.__new__O   s    {{4''r%   c                     X l         g r*   r0   r-   s      r#   __init__SettingsReference.__init__R   s    (r%   r3   N)__name__
__module____qualname____firstlineno____doc__r,   r4   __static_attributes__ r%   r#   r'   r'   I   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	U 4S jr
\4S	 jr\S
 5       r\S 5       rSrU =r$ )LazySettingsV   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">rI   )rG   r
   SETTINGS_MODULEr.   s    r#   __repr__LazySettings.__repr__o   s2    ==E!15t}}<<9
 
 	
r%   c                    U R                   =n[        L a  U R                  U5        U R                   n[        X!5      nU[        ;   aA  [        US5      (       a  [        SU S35      e[        [        R                  US9[        5        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__.r   zThe z2 setting is not available when MAILERS is defined.rH   >   	MEDIA_URL
STATIC_URL
SECRET_KEYz)The SECRET_KEY setting must not be empty.)rG   r
   rK   getattrr   hasattrAttributeError"_show_settings_deprecation_warningEMAIL_SETTING_DEPRECATED_MSGformatr   _add_script_prefixr   __dict__)r.   rH   rG   vals       r#   __getattr__LazySettings.__getattr__w   s    %H%/KK}}Hh% ,,x++$4& RS  /,333>@X ..3?))#.C\!#&'RSS!d
r%   c                   > US:X  a  U R                   R                  5         OU R                   R                  US5        US:X  a  [        [        [
        5        US:X  a  [        [        [
        5        US:X  a)  [         H  nU R                   R                  US5        M!     U[        ;   a!  [        [        R                  US9[
        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.
rG   N"SIGNED_COOKIE_LEGACY_SALT_FALLBACKUSE_BLANK_CHOICE_DASHr   rS   )r^   clearpoprZ   (SIGNED_COOKIE_LEGACY_SALT_DEPRECATED_MSGr   $USE_BLANK_CHOICE_DASH_DEPRECATED_MSGr   r[   r\   super__setattr__)r.   rH   r/   setting	__class__s       r#   rj   LazySettings.__setattr__   s    
 :MM!MMdD) 77.8(
 **.46N 9 5!!'40 5,,.,333>@X 	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)ri   __delattr__r^   rf   r.   rH   rl   s     r#   ro   LazySettings.__delattr__   s$    D!$%r%   c                    > [         TU ]  5       n[        U R                  S5      (       a>  U Vs/ s H1  nU[        ;  d"  U R                  R                  U5      (       d  M/  UPM3     nnU$ s  snf )Nr   )ri   __dir__rX   rG   r   is_overridden)r.   attrsrH   rl   s      r#   rs   LazySettings.__dir__   si    !4==),,
 "!D88==..t4 !   s   .A+!A+c                 $   U R                   [        La  [        S5      e[        UR	                  5       5        [        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)
rG   r
   RuntimeErrorr$   keysUserSettingsHolderitemsisupper	TypeErrorsetattr)r.   default_settingsoptionsholderrH   r/   s         r#   	configureLazySettings.configure   sv     ==%=>> 	(7#$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.)rG   r
   rO   s    r#   
configuredLazySettings.configured   s     }}E))r%   )rG   r*   )r6   r7   r8   r9   r:   rK   rP   r`   rj   ro   rs   r   r   staticmethodr]   propertyr   r;   __classcell__rl   s   @r#   r>   r>   V   sY    2$
8 )D& *9 & 5 5 * *r%   r>   c                   &    \ rS rSrS rS rS rSrg)rF      c           	      d   [        [        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|     SU R                  ;   a&  [        R                   " ["        [$        ['        5       S9  SU R                  ;   a&  [        R                   " [(        [$        ['        5       S9  [+        U R                  5        [,        R/                  U R                  5       H6  n[        R                   " [0        R3                  US9[$        ['        5       S9  M8     [5        [6        S5      (       a  U R8                  (       a  [;        S5      nUR<                  " U R8                  R?                  S	5      6 nURA                  5       (       a-  URA                  5       (       d  [C        S
U R8                  -  5      eU R8                  [D        RF                  S'   [6        RH                  " 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.rc   )skip_file_prefixesrd   rS   tzsetz/usr/share/zoneinfor   zIncorrect timezone setting: %sTZ)%dirr   r|   r~   rW   rN   	importlibimport_moduleset_explicit_settings
isinstancelisttupler   addwarningswarnrg   r   r   rh   r$   r   r   r[   r\   rX   time	TIME_ZONEr   joinpathsplitexists
ValueErrorrB   rC   r   )	r.   rI   rk   modtuple_settingssetting_valuerH   zoneinfo_rootzone_info_files	            r#   r4   Settings.__init__   s    ?+G  w'HI ,
  /%%d&:&:;
 #&%3xG   ' 5,Z!D%=6 6 /CgM  }5''++G4   043J3JJMM8(#7#9 #d&=&==MM4(#7#9 	((?(?@-::4;R;RSDMM,333>(#7#9 T 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.   rk   s     r#   rt   Settings.is_overridden5  s    1111r%   c                 N    SU R                   R                  U R                  S.-  $ )Nz<%(cls)s "%(settings_module)s">)clsrI   )rl   r6   rN   rO   s    r#   rP   Settings.__repr__8  s*    0>>**#334
 
 	
r%   )rN   r   N)r6   r7   r8   r9   r4   rt   rP   r;   r<   r%   r#   rF   rF      s    BH2
r%   rF   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$ )rz   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   r^   r   )r.   r   s     r#   r4   UserSettingsHolder.__init__F  s    
 %(Ej! 0r%   c                     UR                  5       (       a  XR                  ;   a  [        e[        U R                  U5      $ r*   )r|   r   rY   rW   r   )r.   rH   s     r#   r`   UserSettingsHolder.__getattr__N  s/    ||~~!6  t,,d33r%   c                   > U R                   R                  U5        US:X  a  [        [        [        5        US:X  a  [        [
        [        5        U[        ;   a!  [        [        R                  US9[        5        [        TU ])  X5        g )Nrc   rd   rS   )r   discardrZ   rg   r   rh   r   r[   r\   ri   rj   )r.   rH   r/   rl   s      r#   rj   UserSettingsHolder.__setattr__S  s{    d#77.8(
 **.46N ,,.,333>@X 	D(r%   c                 |   > U R                   R                  U5        [        X5      (       a  [        TU ]  U5        g g r*   )r   r   rX   ri   ro   rp   s     r#   ro   UserSettingsHolder.__delattr__h  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>n  s&      
B% ABs   $	$)r   r^   r   r   rO   s   `r#   rs   UserSettingsHolder.__dir__m  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$ )Nrt   c                     g)NFr<   )r   s    r#   <lambda>2UserSettingsHolder.is_overridden.<locals>.<lambda>x  s    er%   )r   r^   rW   r   )r.   rk   deletedset_locallyset_on_defaults        r#   rt    UserSettingsHolder.is_overriddent  sK    ]]*. !!?O

 7+77r%   c                 8    SSU R                   R                  0-  $ )Nz	<%(cls)s>r   )rl   r6   rO   s    r#   rP   UserSettingsHolder.__repr__|  s#    4>>**
 
 	
r%   )r   )r6   r7   r8   r9   r:   rN   r4   r`   rj   ro   rs   rt   rP   r;   r   r   s   @r#   rz   rz   ?  s5    . O14
)*&

8
 
r%   rz   c                     [        U USS9  g)zIssue a warning when external code uses a deprecated setting.

Allow Django's own code to use the setting without emitting the warning.
This function should only be called from within settings-related code.
)	zdjango.conf.LazySettingszdjango.conf.Settingszdjango.conf.UserSettingsHolderz"django.utils.functional.LazyObjectz#django.test.utils.override_settingsz!django.test.utils.modify_settingsz&django.test.utils.TestContextDecoratorz-django.test.testcases.SimpleTestCase.settingsz4django.test.testcases.SimpleTestCase.modify_settings)skip_name_prefixesN)r   )messagecategorys     r#   rZ   rZ     s     
r%   )!r:   r   rB   r   r   pathlibr   django.confr   django.core.exceptionsr   django.utils.deprecationr   r   r   django.utils.functionalr	   r
   rE   DEFAULT_STORAGE_ALIASSTATICFILES_STORAGE_ALIASrg   rh   r   r[   r$   r+   r'   r>   rF   rz   rZ   rA   r<   r%   r#   <module>r      s     	    ' 7 
 6/ ! ) = )O %  N 

) 
)W*: W*tL
 L
^@
 @
F: >r%   