U
    –6{i   ã                   @  sœ   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ ee d
¡ƒZdddœdd„Zddddœdd„ZdS )é    )ÚannotationsN)ÚSequence)ÚAny)Úurlsplit)Úsettings)ÚCheckMessage)ÚError)ÚconfÚ r   zlist[CheckMessage])ÚkwargsÚreturnc            	   
   K  sz  g }t tjtƒs"| tddd�¡ t tjtƒs@| tddd�¡ ttjt	ƒs^| tddd�¡ ttj
t	ƒs|| tdd	d�¡ ttjtƒr’tjd
k r¤| tddd�¡ ttjt	ƒsÜttdƒrÀd}nd}| t|› d�dd�¡ ttdƒrìd}nd}t tjtƒ�s| t|› d�dd�¡ nžd}tjD ]’}||k�r4�q"t|ƒ}|jdk�sT|jdk�rv| td t|ƒ|¡ddd�¡ n<dD ]6}t||ƒdk�rz| td t|ƒ||¡dd�¡ �qz�q"ttdƒ�rÈd}nd}t tjttfƒ�sö| td  |¡d!d�¡ t tjtƒ�s| td"d#d�¡ ttjttfƒ�s:| td$d%d�¡ ttd&ƒ�rX| td'd(d�¡ ttd)ƒ�rv| td*dd�¡ |S )+Nz3CORS_ALLOW_HEADERS should be a sequence of strings.zcorsheaders.E001)Úidz3CORS_ALLOW_METHODS should be a sequence of strings.zcorsheaders.E002z(CORS_ALLOW_CREDENTIALS should be a bool.zcorsheaders.E003z,CORS_ALLOW_PRIVATE_NETWORK should be a bool.zcorsheaders.E015r   zJCORS_PREFLIGHT_MAX_AGE should be an integer greater than or equal to zero.zcorsheaders.E004ÚCORS_ALLOW_ALL_ORIGINSZCORS_ORIGIN_ALLOW_ALLz should be a bool.zcorsheaders.E005ÚCORS_ALLOWED_ORIGINSZCORS_ORIGIN_WHITELISTz! should be a sequence of strings.zcorsheaders.E006)Únullzfile://r
   z+Origin {} in {} is missing scheme or netloczcorsheaders.E013z:Add a scheme (e.g. https://) or netloc (e.g. example.com).)r   Úhint)ÚpathÚqueryÚfragmentz"Origin {} in {} should not have {}zcorsheaders.E014ÚCORS_ALLOWED_ORIGIN_REGEXESZCORS_ORIGIN_REGEX_WHITELISTz;{} should be a sequence of strings and/or compiled regexes.zcorsheaders.E007z)CORS_EXPOSE_HEADERS should be a sequence.zcorsheaders.E008z,CORS_URLS_REGEX should be a string or regex.zcorsheaders.E009Z
CORS_MODELzKThe CORS_MODEL setting has been removed - see django-cors-headers' HISTORY.zcorsheaders.E012ZCORS_REPLACE_HTTPS_REFERERz]The CORS_REPLACE_HTTPS_REFERER setting has been removed - see django-cors-headers' CHANGELOG.)Úis_sequencer	   ZCORS_ALLOW_HEADERSÚstrÚappendr   ZCORS_ALLOW_METHODSÚ
isinstanceZCORS_ALLOW_CREDENTIALSÚboolZCORS_ALLOW_PRIVATE_NETWORKZCORS_PREFLIGHT_MAX_AGEÚintr   Úhasattrr   r   r   ÚschemeÚnetlocÚformatÚreprÚgetattrr   Úre_typeZCORS_EXPOSE_HEADERSZCORS_URLS_REGEX)	r   ÚerrorsZallow_all_aliasZallowed_origins_aliasZspecial_origin_valuesÚoriginÚparsedÚpartZallowed_regexes_alias© r'   ú6/tmp/pip-unpacked-wheel-gc7n2pvb/corsheaders/checks.pyÚcheck_settings   sî    þÿþÿ
ÿþÿ
ÿþûÿ

þÿ
þÿ

 ÿúÿ  ÿüÿ	ÿüÿ	
ÿ
ÿûÿ
ûÿ
r)   z!type[Any] | tuple[type[Any], ...]r   )ÚthingÚtype_or_typesr   c                   s    t | tƒot‡ fdd„| D ƒƒS )Nc                 3  s   | ]}t |ˆ ƒV  qd S )N)r   )Ú.0Úx©r+   r'   r(   Ú	<genexpr>°   s    zis_sequence.<locals>.<genexpr>)r   r   Úall)r*   r+   r'   r.   r(   r   ¯   s    ÿr   )Ú
__future__r   ÚreÚcollections.abcr   Útypingr   Úurllib.parser   Zdjango.confr   Zdjango.core.checksr   r   Zcorsheaders.confr	   ÚtypeÚcompiler"   r)   r   r'   r'   r'   r(   Ú<module>   s    