diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2013-01-10 01:58:29 -0500 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2013-01-10 01:58:29 -0500 |
| commit | ef8563ab36c6b52834ee9c35f6f75a424cd9ceef (patch) | |
| tree | 433bf3f2dfec6798e54f2a20f319234e4ab323e6 /requests/structures.py | |
| parent | 4a5b5bc86eeb03e4d2c4914da6c2a258b15537d8 (diff) | |
| download | python-requests-ef8563ab36c6b52834ee9c35f6f75a424cd9ceef.tar.gz | |
CHUNKED REQUESTS!
Diffstat (limited to 'requests/structures.py')
| -rw-r--r-- | requests/structures.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/requests/structures.py b/requests/structures.py index 3fda9843..6c2e0b21 100644 --- a/requests/structures.py +++ b/requests/structures.py @@ -8,6 +8,28 @@ Data structures that power Requests. """ +import os +from itertools import islice + +class IteratorProxy(object): + """docstring for IteratorProxy""" + def __init__(self, i): + self.i = i + # self.i = chain.from_iterable(i) + + def __iter__(self): + return self.i + + def __len__(self): + if hasattr(self.i, '__len__'): + return len(self.i) + if hasattr(self.i, 'len'): + return self.i.len + if hasattr(self.i, 'fileno'): + return os.fstat(self.i.fileno()).st_size + + def read(self, n): + return "".join(islice(self.i, None, n)) class CaseInsensitiveDict(dict): """Case-insensitive Dictionary |
