Ë
    £#ij $  ã                   óÚ   — d Z ddlZddlZddlZddlZddlZddlmZ ddlZddl	m
Z
 ddlmZ ddlmZmZ dZdZd	Z G d
„ de«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Z e«       Zy)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)Ú
LazyObjectÚemptyÚDJANGO_SETTINGS_MODULEÚdefaultÚstaticfilesc                   ó   — e Zd ZdZd„ Zd„ Zy)ÚSettingsReferencez£
    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                 ó.   — t         j                  | |«      S ©N)ÚstrÚ__new__©ÚselfÚvalueÚsetting_names      úN/var/www/html/office/venv/lib/python3.12/site-packages/django/conf/__init__.pyr   zSettingsReference.__new__    s   € Ü�{‰{˜4 Ó'Ð'ó    c                 ó   — || _         y r   )r   r   s      r   Ú__init__zSettingsReference.__init__#   s
   € Ø(ˆÕr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r      s   „ ñò
(ó)r   r   c                   óp   ‡ — e Zd ZdZdd„Zd„ Zd„ Zˆ fd„Zˆ fd„Ze	fd„Z
ed„ «       Zed	„ «       Zd
„ Zˆ xZS )ÚLazySettingszì
    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                 ó¬   — t         j                  j                  t        «      }|s|rd|z  nd}t	        d|›dt        ›d�«      ‚t        |«      | _        y)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   Ú_setupzLazySettings._setup.   sP   € ô Ÿ*™*Ÿ.™.Ô)=Ó>ˆÙÙ,0�L 4Ò'°jˆDÝ&ò Ö-ð/óð ô ! Ó1ˆ�r   c                 ó^   — | j                   t        u rydd| j                   j                  iz  S )Nz<LazySettings [Unevaluated]>z$<LazySettings "%(settings_module)s">r)   )r'   r   ÚSETTINGS_MODULE©r   s    r   Ú__repr__zLazySettings.__repr__@   s2   € à�=‰=œEÑ!Ø1Ø5Ø˜tŸ}™}×<Ñ<ð9
ñ 
ð 	
r   c                 óò   — | j                   x}t        u r| j                  |«       | j                   }t        ||«      }|dv r|�| j	                  |«      }n|dk(  r|st        d«      ‚|| j                  |<   |S )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   r+   ÚgetattrÚ_add_script_prefixr   Ú__dict__)r   r(   r'   Úvals       r   Ú__getattr__zLazySettings.__getattr__H   s|   € àŸ™Ð%ˆH¬%Ñ/Ø�K‰K˜ÔØ—}‘}ˆHÜ�h Ó%ˆð
 Ð.Ñ.°3°?Ø×)Ñ)¨#Ó.‰CØ�\Ò!©#Ü&Ð'RÓSÐSà!ˆ�‰�dÑØˆ
r   c                 óž   •— |dk(  r| j                   j                  «        n| j                   j                  |d«       t        ‰| �  ||«       y)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)r6   ÚclearÚpopÚsuperÚ__setattr__©r   r(   r   Ú	__class__s      €r   r=   zLazySettings.__setattr__Z   s@   ø€ ð
 �:ÒØ�M‰M×ÑÕ!à�M‰M×Ñ˜d DÔ)Ü‰Ñ˜D %Õ(r   c                 ó\   •— t         ‰| �  |«       | j                  j                  |d«       y)z3Delete a setting and clear it from cache if needed.N)r<   Ú__delattr__r6   r;   ©r   r(   r?   s     €r   rA   zLazySettings.__delattr__e   s$   ø€ ä‰Ñ˜DÔ!Ø�‰×Ñ˜$ Õ%r   c                 óè   — | j                   t        urt        d«      ‚t        |«      }|j	                  «       D ]0  \  }}|j                  «       st        d|z  «      ‚t        |||«       Œ2 || _         y)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Úholderr(   r   s         r   Ú	configurezLazySettings.configurej   so   € ð �=‰=¤Ñ%ÜÐ=Ó>Ð>Ü#Ð$4Ó5ˆØ"Ÿ=™=›?ò 	)‰KˆD�%Ø—<‘<”>ÜÐ ?À$Ñ FÓGÐGÜ�F˜D %Õ(ð	)ð ˆ�r   c                 óJ   — | j                  d«      r| S ddlm}  |«       ›| ›�S )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.urlsrP   )r   rP   s     r   r5   zLazySettings._add_script_prefixy   s)   € ð ×ÑÐ8Ô9ØˆLÝ1á*Ô,©eÐ4Ð4r   c                 ó&   — | j                   t        uS )z9Return True if the settings have already been configured.)r'   r   r.   s    r   Ú
configuredzLazySettings.configuredˆ   s   € ð �}‰}¤EÐ)Ð)r   c                 óê   — t        j                  «       }|d   \  }}}}|j                  t        j                  j                  t        j                  «      «      st        j                  ||d¬«       y y )Néüÿÿÿé   )Ú
stacklevel)
Ú	tracebackÚextract_stackrQ   r"   ÚpathÚdirnameÚdjangoÚ__file__ÚwarningsÚwarn)r   ÚmessageÚcategoryÚstackÚfilenameÚ_s         r   Ú_show_deprecation_warningz&LazySettings._show_deprecation_warning�   sY   € Ü×'Ñ'Ó)ˆð " "™IÑˆ�!�Q˜Ø×"Ñ"¤2§7¡7§?¡?´6·?±?Ó#CÔDÜ�M‰M˜' 8¸Ö:ð Er   r   )r   r   r   r   r+   r/   r8   r=   rA   r   rM   Ústaticmethodr5   ÚpropertyrT   rf   Ú__classcell__©r?   s   @r   r   r   '   sX   ø„ ñó2ò$
òô$	)ô&ð
 *9ó ð ñ5ó ð5ð ñ*ó ð*ö;r   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)r&   c           	      ó`  — t        t        «      D ].  }|j                  «       sŒt        | |t	        t        |«      «       Œ0 || _        t        j                  | j
                  «      }d}t        «       | _	        t        |«      D ]o  }|j                  «       sŒt	        ||«      }||v r$t        |t        t        f«      st        d|z  «      ‚t        | ||«       | j                  j                  |«       Œq t        t         d«      rª| j"                  r�t%        d«      } |j&                  | j"                  j)                  d«      Ž }|j+                  «       r(|j+                  «       st-        d| j"                  z  «      ‚| j"                  t.        j0                  d<   t!        j2                  «        y y y )N)ÚALLOWED_HOSTSÚINSTALLED_APPSÚTEMPLATE_DIRSÚLOCALE_PATHSÚSECRET_KEY_FALLBACKSz)The %s setting must be a list or a tuple.Útzsetz/usr/share/zoneinforO   zIncorrect timezone setting: %sÚTZ)Údirr   rG   rI   r4   r-   Ú	importlibÚimport_moduleÚsetÚ_explicit_settingsÚ
isinstanceÚlistÚtupler   ÚaddÚhasattrÚtimeÚ	TIME_ZONEr   ÚjoinpathÚsplitÚexistsÚ
ValueErrorr"   r#   rr   )r   r)   ÚsettingÚmodÚtuple_settingsÚsetting_valueÚzoneinfo_rootÚzone_info_files           r   r   zSettings.__init__˜   su  € ô œ?Ó+ò 	JˆGØ�‰Õ Ü˜˜g¤w¬ÀÓ'HÕIð	Jð
  /ˆÔä×%Ñ% d×&:Ñ&:Ó;ˆð
ˆô #&£%ˆÔÜ˜3“xò 	5ˆGØ�‰Õ Ü '¨¨WÓ 5�à˜nÑ,´ZØ!¤D¬% =ô6ô /ØCÀgÑMóð ô ˜˜g }Ô5Ø×'Ñ'×+Ñ+¨GÕ4ð	5ô ”4˜Ô! d§n¢nô !Ð!6Ó7ˆMØ3˜]×3Ñ3°T·^±^×5IÑ5IÈ#Ó5NÐOˆNØ×#Ñ#Ô%¨n×.CÑ.CÔ.EÜ Ð!AÀDÇNÁNÑ!RÓSÐSð  $Ÿ~™~ŒB�J‰J�tÑÜ�J‰J�Lð '5Ð!r   c                 ó   — || j                   v S r   )rx   )r   r„   s     r   Úis_overriddenzSettings.is_overriddenÅ   s   € Ø˜$×1Ñ1Ð1Ð1r   c                 óN   — d| j                   j                  | j                  dœz  S )Nz<%(cls)s "%(settings_module)s">)Úclsr)   )r?   r   r-   r.   s    r   r/   zSettings.__repr__È   s*   € Ø0Ø—>‘>×*Ñ*Ø#×3Ñ3ñ4
ñ 
ð 	
r   N)r   r   r   r   r‹   r/   r   r   r   r&   r&   —   s   „ ò+òZ2ó
r   r&   c                   óN   ‡ — e Zd ZdZdZd„ Zd„ Zˆ fd„Zˆ fd„Zd„ Z	d„ Z
d	„ Zˆ xZS )
rE   z$Holder for user configured settings.Nc                 ó@   — t        «       | j                  d<   || _        y)z›
        Requests for configuration variables not in this class are satisfied
        from the module specified in default_settings (if possible).
        Ú_deletedN)rw   r6   rJ   )r   rJ   s     r   r   zUserSettingsHolder.__init__Ö   s   € ô
 %(£Eˆ�‰�jÑ!Ø 0ˆÕr   c                 óv   — |j                  «       r|| j                  v rt        ‚t        | j                  |«      S r   )rG   r�   ÚAttributeErrorr4   rJ   )r   r(   s     r   r8   zUserSettingsHolder.__getattr__Þ   s/   € Ø�|‰|Œ~ ¨¯©Ñ!6Ü Ð Ü�t×,Ñ,¨dÓ3Ð3r   c                 ó\   •— | j                   j                  |«       t        ‰| �  ||«       y r   )r�   Údiscardr<   r=   r>   s      €r   r=   zUserSettingsHolder.__setattr__ã   s$   ø€ Ø�‰×Ñ˜dÔ#Ü‰Ñ˜D %Õ(r   c                 ót   •— | j                   j                  |«       t        | |«      rt        ‰| �  |«       y y r   )r�   r|   r}   r<   rA   rB   s     €r   rA   zUserSettingsHolder.__delattr__ç   s1   ø€ Ø�‰×Ñ˜$ÔÜ�4˜ÔÜ‰GÑ Õ%ð r   c                 ón   ‡ — t        ˆ fd„g ‰ j                  ¢t        ‰ j                  «      ¢D «       «      S )Nc              3   ó>   •K  — | ]  }|‰j                   vr|–— Œ y ­wr   )r�   )Ú.0Úsr   s     €r   ú	<genexpr>z-UserSettingsHolder.__dir__.<locals>.<genexpr>í   s%   øè ø€ ò 
àØ˜Ÿ™Ñ%ô ñ
ùs   ƒ)Úsortedr6   rt   rJ   r.   s   `r   Ú__dir__zUserSettingsHolder.__dir__ì   s6   ø€ Üó 
àB�t—}‘}ÐB¤s¨4×+@Ñ+@Ó'AÐBô
ó 
ð 	
r   c                 óŠ   — || j                   v }|| j                  v } t        | j                  dd„ «      |«      }|xs |xs |S )Nr‹   c                  ó   — y)NFr   )r™   s    r   ú<lambda>z2UserSettingsHolder.is_overridden.<locals>.<lambda>÷   s   � r   )r�   r6   r4   rJ   )r   r„   ÚdeletedÚset_locallyÚset_on_defaults        r   r‹   z UserSettingsHolder.is_overriddenó   sS   € Ø˜TŸ]™]Ð*ˆØ §¡Ð.ˆð
œØ×!Ñ! ?±Oó
à
óˆð Ò7˜+Ò7¨Ð7r   c                 ó8   — dd| j                   j                  iz  S )Nz	<%(cls)s>r�   )r?   r   r.   s    r   r/   zUserSettingsHolder.__repr__û   s#   € ØØ�4—>‘>×*Ñ*ð
ñ 
ð 	
r   )r   r   r   r   r-   r   r8   r=   rA   rœ   r‹   r/   ri   rj   s   @r   rE   rE   Ï   s0   ø„ Ù.ð €Oò1ò4ô
)ô&ò

ò8ö
r   rE   )r   ru   r"   r~   rY   r_   Úpathlibr   r]   Údjango.confr   Údjango.core.exceptionsr   Údjango.utils.functionalr   r   r%   ÚDEFAULT_STORAGE_ALIASÚSTATICFILES_STORAGE_ALIASr   r   r   r&   rE   r!   r   r   r   ú<module>rª      sv   ðñó Û 	Û Û Û Ý ã Ý 'Ý 7ß 5à/Ð Ø!Ð Ø)Ð ô
)˜ô 
)ôm;�:ô m;÷`5
ñ 5
÷p/
ñ /
ñd ‹>�r   