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
|
||
|
"""
|