45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from .accept import AcceptMixin
|
|
from .auth import AuthorizationMixin
|
|
from .base_request import BaseRequest
|
|
from .common_descriptors import CommonRequestDescriptorsMixin
|
|
from .etag import ETagRequestMixin
|
|
from .user_agent import UserAgentMixin
|
|
|
|
|
|
class Request(
|
|
BaseRequest,
|
|
AcceptMixin,
|
|
ETagRequestMixin,
|
|
UserAgentMixin,
|
|
AuthorizationMixin,
|
|
CommonRequestDescriptorsMixin,
|
|
):
|
|
"""Full featured request object implementing the following mixins:
|
|
|
|
- :class:`AcceptMixin` for accept header parsing
|
|
- :class:`ETagRequestMixin` for etag and cache control handling
|
|
- :class:`UserAgentMixin` for user agent introspection
|
|
- :class:`AuthorizationMixin` for http auth handling
|
|
- :class:`CommonRequestDescriptorsMixin` for common headers
|
|
"""
|
|
|
|
|
|
class StreamOnlyMixin(object):
|
|
"""If mixed in before the request object this will change the bahavior
|
|
of it to disable handling of form parsing. This disables the
|
|
:attr:`files`, :attr:`form` attributes and will just provide a
|
|
:attr:`stream` attribute that however is always available.
|
|
|
|
.. versionadded:: 0.9
|
|
"""
|
|
|
|
disable_data_descriptor = True
|
|
want_form_data_parsed = False
|
|
|
|
|
|
class PlainRequest(StreamOnlyMixin, Request):
|
|
"""A request object without special form parsing capabilities.
|
|
|
|
.. versionadded:: 0.9
|
|
"""
|