o
    Ø"7h  ã                   @   s˜  d Z ddlmZ ddlmZ ddlmZ ddlmZ i dddg“d	g d
¢“dddg“ddg“dg “dd“dd“dd“dd“dg “dd“ddddœ“dd“dd“dd “d!d"“d#d“i d$d“d%d&“d'd(“d)d“d*d+“d,d-“d.d/“d0d1“d2d3dg“d4d5“d6d7“d8d7“d9d:“d;e“d<eg“d=e“d>eg“¥eegd?d?d?d?d?d@dAd?dBdCdDœdEœ¥Z	g dF¢Z
g dG¢ZdHdI„ ZdJdK„ ZG dLdM„ dMƒZede	e
ƒZdNdO„ Ze e¡ dS )Pa”  
Settings for REST framework are all namespaced in the REST_FRAMEWORK setting.
For example your project's `settings.py` file might look like this:

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': [
        'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.TemplateHTMLRenderer',
    ],
    'DEFAULT_PARSER_CLASSES': [
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
        'rest_framework.parsers.MultiPartParser',
    ],
}

This module provides the `api_setting` object, that is used to access
REST framework settings, checking for user settings first, then falling
back to the defaults.
é    )Úsettings)Úsetting_changed)Úimport_string)ÚISO_8601ÚDEFAULT_RENDERER_CLASSESz%rest_framework.renderers.JSONRendererz-rest_framework.renderers.BrowsableAPIRendererÚDEFAULT_PARSER_CLASSES)z!rest_framework.parsers.JSONParserz!rest_framework.parsers.FormParserz&rest_framework.parsers.MultiPartParserÚDEFAULT_AUTHENTICATION_CLASSESz3rest_framework.authentication.SessionAuthenticationz1rest_framework.authentication.BasicAuthenticationÚDEFAULT_PERMISSION_CLASSESz#rest_framework.permissions.AllowAnyÚDEFAULT_THROTTLE_CLASSESÚ!DEFAULT_CONTENT_NEGOTIATION_CLASSz4rest_framework.negotiation.DefaultContentNegotiationÚDEFAULT_METADATA_CLASSz&rest_framework.metadata.SimpleMetadataÚDEFAULT_VERSIONING_CLASSNÚDEFAULT_PAGINATION_CLASSÚDEFAULT_FILTER_BACKENDSÚDEFAULT_SCHEMA_CLASSz)rest_framework.schemas.openapi.AutoSchemaÚDEFAULT_THROTTLE_RATES)ÚuserÚanonÚNUM_PROXIESÚ	PAGE_SIZEÚSEARCH_PARAMÚsearchÚORDERING_PARAMÚorderingÚDEFAULT_VERSIONÚALLOWED_VERSIONSÚVERSION_PARAMÚversionÚUNAUTHENTICATED_USERz(django.contrib.auth.models.AnonymousUserÚUNAUTHENTICATED_TOKENÚVIEW_NAME_FUNCTIONz"rest_framework.views.get_view_nameÚVIEW_DESCRIPTION_FUNCTIONz)rest_framework.views.get_view_descriptionÚEXCEPTION_HANDLERz&rest_framework.views.exception_handlerÚNON_FIELD_ERRORS_KEYÚnon_field_errorsÚTEST_REQUEST_RENDERER_CLASSESz*rest_framework.renderers.MultiPartRendererÚTEST_REQUEST_DEFAULT_FORMATÚ	multipartÚURL_FORMAT_OVERRIDEÚformatÚFORMAT_SUFFIX_KWARGÚURL_FIELD_NAMEÚurlÚDATE_FORMATÚDATE_INPUT_FORMATSÚDATETIME_FORMATÚDATETIME_INPUT_FORMATSTiè  zMore than {count} items...ÚreadÚdelete)ÚretrieveÚdestroy)ÚTIME_FORMATÚTIME_INPUT_FORMATSÚUNICODE_JSONÚCOMPACT_JSONÚSTRICT_JSONÚCOERCE_DECIMAL_TO_STRINGÚUPLOADED_FILES_USE_URLÚHTML_SELECT_CUTOFFÚHTML_SELECT_CUTOFF_TEXTÚSCHEMA_COERCE_PATH_PKÚSCHEMA_COERCE_METHOD_NAMES)r   r   r   r	   r
   r   r   r   r   r   r   r"   r%   r   r   r    r!   )ÚPAGINATE_BYÚPAGINATE_BY_PARAMÚMAX_PAGINATE_BYc                    sD   | du rdS t | tƒrt| ˆ ƒS t | ttfƒr ‡ fdd„| D ƒS | S )zm
    If the given setting is a string import notation,
    then perform the necessary import or imports.
    Nc                    s   g | ]}t |ˆ ƒ‘qS © )Úimport_from_string)Ú.0Úitem©Úsetting_namerC   úl/var/www/epreuve.sigeris.cm/public_html/epreuve/venv/lib/python3.10/site-packages/rest_framework/settings.pyÚ
<listcomp>ª   s    z"perform_import.<locals>.<listcomp>)Ú
isinstanceÚstrrD   ÚlistÚtuple)ÚvalrH   rC   rG   rI   Úperform_import    s   

rP   c              
   C   s@   zt | ƒW S  ty } zd| ||jj|f }t|ƒ‚d}~ww )zA
    Attempt to import a class from a string representation.
    z3Could not import '%s' for API setting '%s'. %s: %s.N)r   ÚImportErrorÚ	__class__Ú__name__)rO   rH   ÚeÚmsgrC   rC   rI   rD   ®   s   
€þrD   c                   @   s>   e Zd ZdZddd„Zedd„ ƒZdd„ Zd	d
„ Zdd„ Z	dS )ÚAPISettingsaV  
    A settings object that allows REST Framework settings to be accessed as
    properties. For example:

        from rest_framework.settings import api_settings
        print(api_settings.DEFAULT_RENDERER_CLASSES)

    Any setting with string import paths will be automatically resolved
    and return the class, rather than the string literal.

    Note:
    This is an internal class that is only compatible with settings namespaced
    under the REST_FRAMEWORK name. It is not intended to be used by 3rd-party
    apps, and test helpers like `override_settings` may not work as expected.
    Nc                 C   s0   |r|   |¡| _|pt| _|pt| _tƒ | _d S )N)Ú!_APISettings__check_user_settingsÚ_user_settingsÚDEFAULTSÚdefaultsÚIMPORT_STRINGSÚimport_stringsÚsetÚ_cached_attrs)ÚselfÚuser_settingsrZ   r\   rC   rC   rI   Ú__init__É   s
   

zAPISettings.__init__c                 C   s   t | dƒsttdi ƒ| _| jS )NrX   ÚREST_FRAMEWORK)ÚhasattrÚgetattrr   rX   )r_   rC   rC   rI   r`   Ð   s   
zAPISettings.user_settingsc                 C   sr   || j vrtd| ƒ‚z| j| }W n ty    | j | }Y nw || jv r+t||ƒ}| j |¡ t| ||ƒ |S )NzInvalid API setting: '%s')	rZ   ÚAttributeErrorr`   ÚKeyErrorr\   rP   r^   ÚaddÚsetattr)r_   ÚattrrO   rC   rC   rI   Ú__getattr__Ö   s   
þ

zAPISettings.__getattr__c                 C   s*   d}t D ]}||v rtd||f ƒ‚q|S )Nz9https://www.django-rest-framework.org/api-guide/settings/zOThe '%s' setting has been removed. Please refer to '%s' for available settings.)ÚREMOVED_SETTINGSÚRuntimeError)r_   r`   ÚSETTINGS_DOCÚsettingrC   rC   rI   Ú__check_user_settingsê   s   ÿz!APISettings.__check_user_settingsc                 C   s<   | j D ]}t| |ƒ q| j  ¡  t| dƒrt| dƒ d S d S )NrX   )r^   ÚdelattrÚclearrc   )r_   ri   rC   rC   rI   Úreloadñ   s   


ÿzAPISettings.reload)NNN)
rS   Ú
__module__Ú__qualname__Ú__doc__ra   Úpropertyr`   rj   rW   rr   rC   rC   rC   rI   rV   ¹   s    

rV   c                  O   s    |d }|dkrt  ¡  d S d S )Nrn   rb   )Úapi_settingsrr   )ÚargsÚkwargsrn   rC   rC   rI   Úreload_api_settingsü   s   ÿrz   )ru   Údjango.confr   Údjango.core.signalsr   Údjango.utils.module_loadingr   Úrest_frameworkr   rY   r[   rk   rP   rD   rV   rw   rz   ÚconnectrC   rC   rC   rI   Ú<module>   sÜ    þþúþõÿñîíìëèçäþá#Ý&Ú)×*Ö-Ó.Ò/Ñ2Î3Í6Ê7É:Æ;Å>þÂB¾E»FºG¹J¶KµM³N²Pþ h@