Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
djangorestframework / __pycache__ / metadata.cpython-35.pyc
Size: Mime:


¿8OWéã@s¼dZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZdd	lmZGd
d„deƒZGdd
„d
eƒZdS)aL
The metadata API is used to allow customization of how `OPTIONS` requests
are handled. We currently provide a single default implementation that returns
some fairly ad-hoc information about the view.

Future implementations might use JSON schema or other definitions in order
to return this information in a more standardized way.
é)Úunicode_literals)ÚOrderedDict)ÚPermissionDenied)ÚHttp404)Ú
force_text)Ú
exceptionsÚserializers)Ú
clone_request)ÚClassLookupDictc@seZdZdd„ZdS)ÚBaseMetadatacCstdƒ‚dS)zx
        Return a dictionary of metadata about the view.
        Used to return responses for OPTIONS requests.
        z).determine_metadata() must be overridden.N)ÚNotImplementedError)ÚselfÚrequestÚview©rúV/Users/carlton/Documents/Django-Stack/django-rest-framework/rest_framework/metadata.pyÚdetermine_metadataszBaseMetadata.determine_metadataN)Ú__name__Ú
__module__Ú__qualname__rrrrrrsrc,@seZdZdZeejdejdejdej	dej
dejdejdej
dejd	ejd
ejdejdejd
ejdejdejdejdejdejdejdejdiƒZdd„Zdd„Zdd„Zdd„ZdS)ÚSimpleMetadatazÑ
    This is the default metadata implementation.
    It returns an ad-hoc set of information about the view.
    There are not any formalized standards for `OPTIONS` responses
    for us to base this on.
    ÚfieldÚbooleanÚstringÚurlÚemailÚregexÚslugÚintegerÚfloatÚdecimalÚdateÚdatetimeÚtimeÚchoicezmultiple choicezfile uploadzimage uploadÚlistz
nested objectcCs’tƒ}|jƒ|d<|jƒ|d<dd„|jDƒ|d<dd„|jDƒ|d<t|dƒrŽ|j||ƒ}|rŽ||d	<|S)
NÚnameÚdescriptioncSsg|]}|j‘qSr)Ú
media_type)Ú.0Úrendererrrrú
<listcomp>Bs	z5SimpleMetadata.determine_metadata.<locals>.<listcomp>ZrenderscSsg|]}|j‘qSr)r()r)Úparserrrrr+Cs	ZparsesÚget_serializerÚactions)rÚ
get_view_nameÚget_view_descriptionÚrenderer_classesÚparser_classesÚhasattrÚdetermine_actions)r
rrÚmetadatar.rrrr>s	
z!SimpleMetadata.determine_metadatacCsÙi}xÌddht|jƒ@D]±}t||ƒ|_zŒyHt|dƒr]|j|jƒ|dkr‚t|dƒr‚|jƒWntjt	t
fk
r£Yn X|jƒ}|j|ƒ||<Wd||_Xq W|S)zŽ
        For generic class based views we return information about
        the fields that are accepted for 'PUT' and 'POST' methods.
        ÚPUTÚPOSTÚcheck_permissionsÚ
get_objectN)
ÚsetÚallowed_methodsr	rr3r8r9rÚAPIExceptionrrr-Úget_serializer_info)r
rrr.ÚmethodÚ
serializerrrrr4Js z SimpleMetadata.determine_actionscs>t|dƒr|j}t‡fdd†|jjƒDƒƒS)zn
        Given an instance of a serializer, return a dictionary of metadata
        about its fields.
        Úchildcs+g|]!\}}|ˆj|ƒf‘qSr)Úget_field_info)r)Ú
field_namer)r
rrr+os	z6SimpleMetadata.get_serializer_info.<locals>.<listcomp>)r3r@rÚfieldsÚitems)r
r?r)r
rr=es
	z"SimpleMetadata.get_serializer_infocCsKtƒ}|j||d<t|ddƒ|d<dddddd	d
g}xN|D]F}t||dƒ}|dk	rR|dkrRt|d
dƒ||<qRWt|ddƒrÇ|j|jƒ|d<n%t|ddƒrì|j|ƒ|d<|jdƒrGt|t	j
t	jfƒrGt|dƒrGdd„|j
jƒDƒ|d<|S)zl
        Given an instance of a serializer field, return a dictionary
        of metadata about it.
        ÚtypeÚrequiredFÚ	read_onlyÚlabelÚ	help_textÚ
min_lengthÚ
max_lengthÚ	min_valueÚ	max_valueNÚÚstrings_onlyTr@rCÚchildrenÚchoicesc	Ss4g|]*\}}d|dt|ddƒi‘qS)ÚvalueZdisplay_namerOT)r)r)Zchoice_valueZchoice_namerrrr+s	z1SimpleMetadata.get_field_info.<locals>.<listcomp>)rÚlabel_lookupÚgetattrrrAr@r=ÚgetÚ
isinstancerÚRelatedFieldÚManyRelatedFieldr3rQrD)r
rZ
field_infoÚattrsÚattrrRrrrrAss(		
	zSimpleMetadata.get_field_infoN) rrrÚ__doc__r
rÚFieldÚBooleanFieldÚNullBooleanFieldÚ	CharFieldÚURLFieldÚ
EmailFieldÚ
RegexFieldÚ	SlugFieldÚIntegerFieldÚ
FloatFieldÚDecimalFieldÚ	DateFieldÚ
DateTimeFieldÚ	TimeFieldÚChoiceFieldÚMultipleChoiceFieldÚ	FileFieldÚ
ImageFieldÚ	ListFieldÚ	DictFieldÚ
SerializerrSrr4r=rArrrrrs6																				rN)r[Ú
__future__rÚcollectionsrÚdjango.core.exceptionsrÚdjango.httprÚdjango.utils.encodingrÚrest_frameworkrrÚrest_framework.requestr	Ú"rest_framework.utils.field_mappingr
ÚobjectrrrrrrÚ<module>s