Skip to content

Commit e7272bb

Browse files
author
Marcin Kardas
committed
Fix proceeding_paper_list
* return Papers instead of List[Paper] to fix parsing issue and support pagination * fix parsing exception on `page=2` queries due to `page` qs param not being included on that page
1 parent 4c84778 commit e7272bb

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

paperswithcode/client.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def __parse(url: str) -> int:
6969
return 1
7070
else:
7171
q = parse.parse_qs(p.query)
72-
return q["page"][0]
72+
return q.get("page", [1])[0]
7373

7474
@classmethod
7575
def __page(cls, result, page_model):
@@ -263,24 +263,29 @@ def proceeding_get(
263263

264264
@handler
265265
def proceeding_paper_list(
266-
self, conference_id: str, proceeding_id: str
267-
) -> List[Paper]:
266+
self, conference_id: str, proceeding_id: str, page: int = 1, items_per_page: int = 50
267+
) -> Papers:
268268
"""Return a list of papers published in a confernce proceeding.
269269
270270
Args:
271271
conference_id (str): ID of the conference.
272272
proceeding_id (str): ID of the proceding.
273+
page (int): Desired page.
274+
items_per_page (int): Desired number of items per page.
275+
Default: 50.
273276
274277
Returns:
275-
List[Paper]: List of paper objects.
278+
Papers: Papers object.
276279
"""
277-
return [
278-
Paper(**p)
279-
for p in self.http.get(
280+
params = self.__params(page, items_per_page)
281+
return self.__page(
282+
self.http.get(
280283
f"/conferences/{conference_id}/proceedings/{proceeding_id}"
281-
f"/papers/"
282-
)
283-
]
284+
f"/papers/",
285+
params=params,
286+
),
287+
Papers
288+
)
284289

285290
@handler
286291
def area_list(

0 commit comments

Comments
 (0)