Skip to content

Commit bfffedc

Browse files
committed
Add items_per_page to all list methods.
1 parent 11b1ace commit bfffedc

File tree

2 files changed

+51
-46
lines changed

2 files changed

+51
-46
lines changed

paperswithcode/client.py

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,10 @@ def __init__(self, token=None, url=None):
5555
)
5656

5757
@staticmethod
58-
def __params(
59-
page: int, items_per_page: Optional[int] = None, **kwargs
60-
) -> Dict[str, str]:
58+
def __params(page: int, items_per_page: int, **kwargs) -> Dict[str, str]:
6159
params = {key: str(value) for key, value in kwargs.items()}
6260
params["page"] = str(page)
63-
if items_per_page is not None:
64-
params["items_per_page"] = str(items_per_page)
61+
params["items_per_page"] = str(items_per_page)
6562
return params
6663

6764
@staticmethod
@@ -144,68 +141,82 @@ def paper_get(self, paper_id: str) -> Paper:
144141

145142
@handler
146143
def paper_repository_list(
147-
self, paper_id: str, page: int = 1
144+
self, paper_id: str, page: int = 1, items_per_page: int = 50
148145
) -> Repositories:
149146
"""Return a list of paper implementations.
150147
151148
Args:
152149
paper_id (str): ID of the paper.
153150
page (int): Desired page.
151+
items_per_page (int): Desired number of items per page.
152+
Default: 50.
154153
155154
Returns:
156155
Repositories: Repositories object.
157156
"""
158-
params = self.__params(page)
157+
params = self.__params(page, items_per_page)
159158
return self.__page(
160159
self.http.get(f"/papers/{paper_id}/repositories/", params=params),
161160
Repositories,
162161
)
163162

164163
@handler
165-
def paper_task_list(self, paper_id: str, page: int = 1) -> Tasks:
164+
def paper_task_list(
165+
self, paper_id: str, page: int = 1, items_per_page: int = 50
166+
) -> Tasks:
166167
"""Return a list of tasks mentioned in the paper.
167168
168169
Args:
169170
paper_id (str): ID of the paper.
170171
page (int): Desired page.
172+
items_per_page (int): Desired number of items per page.
173+
Default: 50.
171174
172175
Returns:
173176
Tasks: Tasks object.
174177
"""
175-
params = self.__params(page)
178+
params = self.__params(page, items_per_page)
176179
return self.__page(
177180
self.http.get(f"/papers/{paper_id}/tasks/", params=params), Tasks
178181
)
179182

180183
@handler
181-
def paper_method_list(self, paper_id: str, page: int = 1) -> Methods:
184+
def paper_method_list(
185+
self, paper_id: str, page: int = 1, items_per_page: int = 50
186+
) -> Methods:
182187
"""Return a list of methods mentioned in the paper.
183188
184189
Args:
185190
paper_id (str): ID of the paper.
186191
page (int): Desired page.
192+
items_per_page (int): Desired number of items per page.
193+
Default: 50.
187194
188195
Returns:
189196
Methods: Methods object.
190197
"""
191-
params = self.__params(page)
198+
params = self.__params(page, items_per_page)
192199
return self.__page(
193200
self.http.get(f"/papers/{paper_id}/methods/", params=params),
194201
Methods,
195202
)
196203

197204
@handler
198-
def paper_result_list(self, paper_id: str, page: int = 1) -> Results:
205+
def paper_result_list(
206+
self, paper_id: str, page: int = 1, items_per_page: int = 50
207+
) -> Results:
199208
"""Return a list of evaluation results for the paper.
200209
201210
Args:
202211
paper_id (str): ID of the paper.
203212
page (int): Desired page.
213+
items_per_page (int): Desired number of items per page.
214+
Default: 50.
204215
205216
Returns:
206217
Results: Results object.
207218
"""
208-
params = self.__params(page)
219+
params = self.__params(page, items_per_page)
209220
return self.__page(
210221
self.http.get(f"/papers/{paper_id}/results/", params=params),
211222
Results,
@@ -383,12 +394,9 @@ def area_task_list(
383394
Returns:
384395
Tasks: Tasks object.
385396
"""
397+
params = self.__params(page, items_per_page)
386398
return self.__page(
387-
self.http.get(
388-
f"/areas/{area_id}/tasks/",
389-
params=self.__params(page, items_per_page),
390-
),
391-
Tasks,
399+
self.http.get(f"/areas/{area_id}/tasks/", params=params), Tasks
392400
)
393401

394402
@handler
@@ -483,12 +491,9 @@ def task_parent_list(
483491
Returns:
484492
Tasks: Tasks object.
485493
"""
494+
params = self.__params(page, items_per_page)
486495
return self.__page(
487-
self.http.get(
488-
f"/tasks/{task_id}/parents/",
489-
params=self.__params(page, items_per_page),
490-
),
491-
Tasks,
496+
self.http.get(f"/tasks/{task_id}/parents/", params=params), Tasks
492497
)
493498

494499
@handler
@@ -506,12 +511,9 @@ def task_child_list(
506511
Returns:
507512
Tasks: Tasks object.
508513
"""
514+
params = self.__params(page, items_per_page)
509515
return self.__page(
510-
self.http.get(
511-
f"/tasks/{task_id}/children/",
512-
params=self.__params(page, items_per_page),
513-
),
514-
Tasks,
516+
self.http.get(f"/tasks/{task_id}/children/", params=params), Tasks
515517
)
516518

517519
@handler
@@ -529,28 +531,27 @@ def task_paper_list(
529531
Returns:
530532
Papers: Papers object.
531533
"""
534+
params = self.__params(page, items_per_page)
532535
return self.__page(
533-
self.http.get(
534-
f"/tasks/{task_id}/papers/",
535-
params=self.__params(page, items_per_page),
536-
),
537-
Papers,
536+
self.http.get(f"/tasks/{task_id}/papers/", params=params), Papers
538537
)
539538

540539
@handler
541540
def task_evaluation_list(
542-
self, task_id: str, page: int = 1
541+
self, task_id: str, page: int = 1, items_per_page: int = 50
543542
) -> EvaluationTables:
544543
"""Return a list of evaluation tables for a selected task.
545544
546545
Args:
547546
task_id (str): ID of the task.
548547
page (int): Desired page.
548+
items_per_page (int): Desired number of items per page.
549+
Default: 50.
549550
550551
Returns:
551552
EvaluationTables: EvaluationTables object.
552553
"""
553-
params = self.__params(page)
554+
params = self.__params(page, items_per_page)
554555
return self.__page(
555556
self.http.get(f"/tasks/{task_id}/evaluations/", params=params),
556557
EvaluationTables,
@@ -644,18 +645,20 @@ def dataset_delete(self, dataset_id: str):
644645

645646
@handler
646647
def dataset_evaluation_list(
647-
self, dataset_id: str, page: int = 1
648+
self, dataset_id: str, page: int = 1, items_per_page: int = 50
648649
) -> EvaluationTables:
649650
"""Return a list of evaluation tables for a selected dataset.
650651
651652
Args:
652653
dataset_id (str): ID of the dasaset.
653654
page (int): Desired page.
655+
items_per_page (int): Desired number of items per page.
656+
Default: 50.
654657
655658
Returns:
656659
EvaluationTables: EvaluationTables object.
657660
"""
658-
params = self.__params(page)
661+
params = self.__params(page, items_per_page)
659662
return self.__page(
660663
self.http.get(
661664
f"/datasets/{dataset_id}/evaluations/", params=params
@@ -725,11 +728,9 @@ def evaluation_list(
725728
Returns:
726729
EvaluationTables: Evaluation table page object.
727730
"""
731+
params = self.__params(page, items_per_page)
728732
return self.__page(
729-
self.http.get(
730-
"/evaluations/", params=self.__params(page, items_per_page)
731-
),
732-
EvaluationTables,
733+
self.http.get("/evaluations/", params=params), EvaluationTables
733734
)
734735

735736
@handler
@@ -794,18 +795,20 @@ def evaluation_delete(self, evaluation_id: str):
794795

795796
@handler
796797
def evaluation_metric_list(
797-
self, evaluation_id: str, page: int = 1
798+
self, evaluation_id: str, page: int = 1, items_per_page: int = 50
798799
) -> Metrics:
799800
"""List all metrics used in the evaluation table.
800801
801802
Args:
802803
evaluation_id (str): ID of the evaluation table.
803804
page (int): Desired page.
805+
items_per_page (int): Desired number of items per page.
806+
Default: 50.
804807
805808
Returns:
806809
Metrics: Metrics object.
807810
"""
808-
params = self.__params(page)
811+
params = self.__params(page, items_per_page)
809812
return self.__page(
810813
self.http.get(
811814
f"/evaluations/{evaluation_id}/metrics/", params=params
@@ -884,18 +887,20 @@ def evaluation_metric_delete(self, evaluation_id: str, metric_id: str):
884887

885888
@handler
886889
def evaluation_result_list(
887-
self, evaluation_id: str, page: int = 1
890+
self, evaluation_id: str, page: int = 1, items_per_page: int = 50
888891
) -> Results:
889892
"""List all results from the evaluation table.
890893
891894
Args:
892895
evaluation_id (str): ID of the evaluation table.
893896
page (int): Desired page.
897+
items_per_page (int): Desired number of items per page.
898+
Default: 50.
894899
895900
Returns:
896901
Results: Results object.
897902
"""
898-
params = self.__params(page)
903+
params = self.__params(page, items_per_page)
899904
return self.__page(
900905
self.http.get(
901906
f"/evaluations/{evaluation_id}/results/", params=params

paperswithcode/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ def __repr__(self):
1616
)
1717

1818

19-
version = Version(0, 2, 1)
19+
version = Version(0, 2, 2)
2020
__version__ = str(version)

0 commit comments

Comments
 (0)