Skip to content

Commit 1517598

Browse files
committed
Refactor dump() into request()/dump()
1 parent 736bd27 commit 1517598

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

pdftables_api/pdftables_api.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
import requests
1818

19+
from shutil import copyfileobj
20+
1921

2022
FORMAT_CSV = 'csv'
2123
FORMAT_XLSX_MULTIPLE = 'xlsx-multiple'
@@ -81,15 +83,25 @@ def convert(self, pdf_path, out_path, out_format=None, query_params=None, **requ
8183
"""
8284
(out_path, out_format) = Client.ensure_format_ext(out_path, out_format)
8385
with open(pdf_path, 'rb') as pdf_fo:
84-
data = self.dump(pdf_fo, out_format, query_params, **requests_params)
86+
response = self.request(pdf_fo, out_format, query_params,
87+
**requests_params)
8588
with open(out_path, 'wb') as out_fo:
86-
for chunk in data:
87-
if chunk:
88-
out_fo.write(chunk)
89+
copyfileobj(response.raw, out_fo)
90+
91+
def dump(self, pdf_fo, out_format=None, query_params=None,
92+
**requests_params):
93+
"""
94+
Convert PDF file object given by `pdf_fo` into an output stream iterator.
95+
"""
96+
response = self.request(pdf_fo, out_format, query_params,
97+
**requests_params)
8998

90-
def dump(self, pdf_fo, out_format=None, query_params=None, **requests_params):
99+
return response.iter_content(chunk_size=4096)
100+
101+
def request(self, pdf_fo, out_format=None, query_params=None,
102+
**requests_params):
91103
"""
92-
Convert PDF given by `pdf_path` into an output stream iterator.
104+
Convert PDF given by `pdf_path`, returning requests.Response object.
93105
"""
94106
if self.api_key == "":
95107
raise APIException("Invalid API key")
@@ -119,7 +131,7 @@ def dump(self, pdf_fo, out_format=None, query_params=None, **requests_params):
119131
raise APIException("Unknown format requested")
120132
response.raise_for_status()
121133

122-
return response.iter_content(chunk_size=4096)
134+
return response
123135

124136
def remaining(self, query_params=None, **requests_params):
125137
"""
@@ -140,7 +152,6 @@ def remaining(self, query_params=None, **requests_params):
140152

141153
return int(response.content)
142154

143-
144155
@staticmethod
145156
def ensure_format_ext(out_path, out_format):
146157
"""

0 commit comments

Comments
 (0)