python-epo-ops-client
python-epo-ops-client copied to clipboard
`client.image` Method Fails to Retrieve Specific Document Pages
Issue:
Using client.image
to fetch pages from EPO's API always returns the first page, regardless of the range
parameter provided.
Steps to Reproduce:
- Used
client.image
withrange=page
to fetch the nth page of a document. - Only the first page was returned in every attempt.
Workaround:
Manually constructing the URL and headers to specify the X-OPS-Range
and making a direct request with client._make_request
retrieves the correct page.
Expected:
client.image
should interpret the range
parameter to fetch the specified page number.
Actual: Always retrieves the first page.
Details:
- Failing call:
client.image("http://ops.epo.org/rest-services/published-data/images/EP/1000000/PA/fullimage", range=page, document_format="application/pdf")
- Successful workaround:
base_url = "http://ops.epo.org/rest-services/published-data/images"
publication_authority = "EP"
publication_number = "1000000"
publication_kind = "A1"
url = f"{base_url}/{publication_authority}/{publication_number}/{publication_kind}/fullimage"
# Make the request using client._make_request, specifying the Range through parameters and headers
image_response = client._make_request(
url,
data="",
params={"Range": page},
extra_headers={"Accept": "application/pdf", "X-OPS-Range": str(page)},
use_get=True
)
(I found the above through trial and error, because I couldn't understand what the data parameter does here)