3
8^                 @   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 yd d	lmZ W n  ek
r   d d	lmZ Y nX eejd
Zejdd Zdd ZdS )    )absolute_importN)Integral)settings)checks)six)urlparse)conf)Sequence c             K   s2  g }t tjtjs&|jtjddd t tjtjsH|jtjddd t	tj
tsh|jtjddd t	tjt stjdk r|jtjd	d
d t	tjts|jtjddd t tjtjs|jtjddd nxtjD ]}|dkrqt|}|jdks|jdkr0|jtjdjt|ddd qx>d&D ]6}t||dkr6|jtjdjt||dd q6W qW t tjtjtf s|jtjddd t tjtjs|jtjddd t	tjtjtf s|jtjdd d t	tjts|jtjd!d"d ttd#r.|jtj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.E003r   zJCORS_PREFLIGHT_MAX_AGE should be an integer greater than or equal to zero.zcorsheaders.E004z'CORS_ORIGIN_ALLOW_ALL should be a bool.zcorsheaders.E005z6CORS_ORIGIN_WHITELIST should be a sequence of strings.zcorsheaders.E006nullr
   z>Origin {} in CORS_ORIGIN_WHITELIST is missing scheme or netloczcorsheaders.E013z:Add a scheme (e.g. https://) or netloc (e.g. example.com).)r   Zhintpathparamsqueryfragmentz5Origin {} in CORS_ORIGIN_WHITELIST should not have {}zcorsheaders.E014zTCORS_ORIGIN_REGEX_WHITELIST 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_REPLACE_HTTPS_REFERER should be a bool.zcorsheaders.E011Z
CORS_MODELzKThe CORS_MODEL setting has been removed - see django-cors-headers' HISTORY.zcorsheaders.E012)r   r   r   r   )is_sequencer   ZCORS_ALLOW_HEADERSr   string_typesappendr   ErrorZCORS_ALLOW_METHODS
isinstanceZCORS_ALLOW_CREDENTIALSboolZCORS_PREFLIGHT_MAX_AGEr   ZCORS_ORIGIN_ALLOW_ALLZCORS_ORIGIN_WHITELISTr   schemenetlocformatreprgetattrZCORS_ORIGIN_REGEX_WHITELISTre_typeZCORS_EXPOSE_HEADERSZCORS_URLS_REGEXZCORS_REPLACE_HTTPS_REFERERhasattrr   )Zapp_configskwargserrorsoriginparsedpart r#   A/tmp/pip-build-8app2_gc/django-cors-headers/corsheaders/checks.pycheck_settings   s    










r%   c                s    t | tot fdd| D S )Nc             3   s   | ]}t | V  qd S )N)r   ).0x)typesr#   r$   	<genexpr>   s    zis_sequence.<locals>.<genexpr>)r   r	   all)thingr(   r#   )r(   r$   r      s    
r   )
__future__r   renumbersr   Zdjango.confr   Zdjango.corer   Zdjango.utilsr   Z#django.utils.six.moves.urllib.parser   Zcorsheaders.confr   collections.abcr	   ImportErrorcollectionstypecompiler   registerr%   r   r#   r#   r#   r$   <module>   s   r