def __init__(self, initial=None): handlers = initial or { 'application/json': JSONHandler(), 'application/json; charset=UTF-8': JSONHandler(), MEDIA_MULTIPART: MultipartFormHandler(), MEDIA_URLENCODED: URLEncodedFormHandler(), } # NOTE(jmvrbanac): Directly calling UserDict as it's not inheritable. # Also, this results in self.update(...) being called. UserDict.__init__(self, handlers)
def __init__(self, initial=None): self._resolve = self._create_resolver() handlers = initial or { MEDIA_JSON: JSONHandler(), MEDIA_MULTIPART: MultipartFormHandler(), MEDIA_URLENCODED: URLEncodedFormHandler(), } # NOTE(jmvrbanac): Directly calling UserDict as it's not inheritable. # Also, this results in self.update(...) being called. UserDict.__init__(self, handlers)
def find_by_media_type(self, media_type, default): # PERF(jmvrbanac): Check via a quick methods first for performance if media_type == '*/*' or not media_type: media_type = default try: return self.data[media_type] except KeyError: pass # PERF(jmvrbanac): Fallback to the slower method resolved = self._resolve_media_type(media_type, self.data.keys()) if not resolved: raise errors.HTTPUnsupportedMediaType( description='{0} is an unsupported media type.'.format( media_type)) return self.data[resolved] # NOTE(vytas): An ugly way to work around circular imports. MultipartParseOptions._DEFAULT_HANDLERS = Handlers({ 'application/json': JSONHandler(), 'application/json; charset=UTF-8': JSONHandler(), MEDIA_URLENCODED: URLEncodedFormHandler(), }) # type: ignore
return resolved def find_by_media_type(self, media_type, default, raise_not_found=True): # PERF(jmvrbanac): Check via a quick methods first for performance if media_type == '*/*' or not media_type: media_type = default try: return self.data[media_type] except KeyError: pass # PERF(jmvrbanac): Fallback to the slower method resolved = self._resolve_media_type(media_type, self.data.keys()) if not resolved: if raise_not_found: raise errors.HTTPUnsupportedMediaType( description='{0} is an unsupported media type.'.format(media_type) ) return None return self.data[resolved] # NOTE(vytas): An ugly way to work around circular imports. MultipartParseOptions._DEFAULT_HANDLERS = Handlers({ MEDIA_JSON: JSONHandler(), MEDIA_URLENCODED: URLEncodedFormHandler(), }) # type: ignore