mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
reorg: move StreamIter to utils
This commit is contained in:
parent
7a828017d1
commit
709d2b1ea2
@ -5,6 +5,7 @@ omit =
|
|||||||
*.html
|
*.html
|
||||||
*.js
|
*.js
|
||||||
*.css
|
*.css
|
||||||
|
setup.py
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
exclude_lines =
|
exclude_lines =
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
#from gevent import monkey; monkey.patch_all()
|
#from gevent import monkey; monkey.patch_all()
|
||||||
from requests.structures import CaseInsensitiveDict
|
from webagg.utils import ReadFullyStream, StreamIter
|
||||||
import requests
|
|
||||||
|
|
||||||
from webagg.utils import ReadFullyStream
|
|
||||||
from webagg.responseloader import StreamIter
|
|
||||||
from webagg.inputrequest import DirectWSGIInputRequest
|
from webagg.inputrequest import DirectWSGIInputRequest
|
||||||
|
|
||||||
from pywb.utils.statusandheaders import StatusAndHeadersParser
|
from pywb.utils.statusandheaders import StatusAndHeadersParser
|
||||||
@ -19,6 +15,9 @@ import json
|
|||||||
import tempfile
|
import tempfile
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
from requests.structures import CaseInsensitiveDict
|
||||||
|
import requests
|
||||||
|
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import gevent.queue
|
import gevent.queue
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from webagg.utils import MementoUtils
|
from webagg.utils import MementoUtils, StreamIter
|
||||||
|
|
||||||
from pywb.utils.timeutils import timestamp_to_datetime, datetime_to_timestamp
|
from pywb.utils.timeutils import timestamp_to_datetime, datetime_to_timestamp
|
||||||
from pywb.utils.timeutils import iso_date_to_datetime, datetime_to_iso_date
|
from pywb.utils.timeutils import iso_date_to_datetime, datetime_to_iso_date
|
||||||
@ -17,45 +17,6 @@ import itertools
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
class StreamIter(six.Iterator):
|
|
||||||
def __init__(self, stream, header1=None, header2=None, size=8192):
|
|
||||||
self.stream = stream
|
|
||||||
self.header1 = header1
|
|
||||||
self.header2 = header2
|
|
||||||
self.size = size
|
|
||||||
|
|
||||||
def __iter__(self):
|
|
||||||
return self
|
|
||||||
|
|
||||||
def __next__(self):
|
|
||||||
if self.header1:
|
|
||||||
header = self.header1
|
|
||||||
self.header1 = None
|
|
||||||
return header
|
|
||||||
elif self.header2:
|
|
||||||
header = self.header2
|
|
||||||
self.header2 = None
|
|
||||||
return header
|
|
||||||
|
|
||||||
data = self.stream.read(self.size)
|
|
||||||
if data:
|
|
||||||
return data
|
|
||||||
|
|
||||||
self.close()
|
|
||||||
raise StopIteration
|
|
||||||
|
|
||||||
def close(self):
|
|
||||||
if not self.stream:
|
|
||||||
return
|
|
||||||
|
|
||||||
try:
|
|
||||||
self.stream.close()
|
|
||||||
self.stream = None
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
class BaseLoader(object):
|
class BaseLoader(object):
|
||||||
def __call__(self, cdx, params):
|
def __call__(self, cdx, params):
|
||||||
|
@ -145,7 +145,7 @@ def res_template(template, params):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
#=================================================================
|
#=============================================================================
|
||||||
class ReadFullyStream(object):
|
class ReadFullyStream(object):
|
||||||
def __init__(self, stream):
|
def __init__(self, stream):
|
||||||
self.stream = stream
|
self.stream = stream
|
||||||
@ -185,4 +185,42 @@ class ReadFullyStream(object):
|
|||||||
self.stream.close()
|
self.stream.close()
|
||||||
|
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
class StreamIter(six.Iterator):
|
||||||
|
def __init__(self, stream, header1=None, header2=None, size=8192):
|
||||||
|
self.stream = stream
|
||||||
|
self.header1 = header1
|
||||||
|
self.header2 = header2
|
||||||
|
self.size = size
|
||||||
|
|
||||||
|
def __iter__(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __next__(self):
|
||||||
|
if self.header1:
|
||||||
|
header = self.header1
|
||||||
|
self.header1 = None
|
||||||
|
return header
|
||||||
|
elif self.header2:
|
||||||
|
header = self.header2
|
||||||
|
self.header2 = None
|
||||||
|
return header
|
||||||
|
|
||||||
|
data = self.stream.read(self.size)
|
||||||
|
if data:
|
||||||
|
return data
|
||||||
|
|
||||||
|
self.close()
|
||||||
|
raise StopIteration
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
if not self.stream:
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.stream.close()
|
||||||
|
self.stream = None
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user