equal
deleted
inserted
replaced
19 from ..utils import ( |
19 from ..utils import ( |
20 urlutil, |
20 urlutil, |
21 ) |
21 ) |
22 |
22 |
23 |
23 |
24 class multidict(object): |
24 class multidict: |
25 """A dict like object that can store multiple values for a key. |
25 """A dict like object that can store multiple values for a key. |
26 |
26 |
27 Used to store parsed request parameters. |
27 Used to store parsed request parameters. |
28 |
28 |
29 This is inspired by WebOb's class of the same name. |
29 This is inspired by WebOb's class of the same name. |
79 def asdictoflists(self): |
79 def asdictoflists(self): |
80 return {k: list(v) for k, v in self._items.items()} |
80 return {k: list(v) for k, v in self._items.items()} |
81 |
81 |
82 |
82 |
83 @attr.s(frozen=True) |
83 @attr.s(frozen=True) |
84 class parsedrequest(object): |
84 class parsedrequest: |
85 """Represents a parsed WSGI request. |
85 """Represents a parsed WSGI request. |
86 |
86 |
87 Contains both parsed parameters as well as a handle on the input stream. |
87 Contains both parsed parameters as well as a handle on the input stream. |
88 """ |
88 """ |
89 |
89 |
353 bodyfh=bodyfh, |
353 bodyfh=bodyfh, |
354 rawenv=env, |
354 rawenv=env, |
355 ) |
355 ) |
356 |
356 |
357 |
357 |
358 class offsettrackingwriter(object): |
358 class offsettrackingwriter: |
359 """A file object like object that is append only and tracks write count. |
359 """A file object like object that is append only and tracks write count. |
360 |
360 |
361 Instances are bound to a callable. This callable is called with data |
361 Instances are bound to a callable. This callable is called with data |
362 whenever a ``write()`` is attempted. |
362 whenever a ``write()`` is attempted. |
363 |
363 |
386 |
386 |
387 def tell(self): |
387 def tell(self): |
388 return self._offset |
388 return self._offset |
389 |
389 |
390 |
390 |
391 class wsgiresponse(object): |
391 class wsgiresponse: |
392 """Represents a response to a WSGI request. |
392 """Represents a response to a WSGI request. |
393 |
393 |
394 A response consists of a status line, headers, and a body. |
394 A response consists of a status line, headers, and a body. |
395 |
395 |
396 Consumers must populate the ``status`` and ``headers`` fields and |
396 Consumers must populate the ``status`` and ``headers`` fields and |