Skip to content

Commit e945861

Browse files
Fix: Persist additional headers across paginated read calls (#41)
* Update entity.py * Update pyproject.toml * fix comma * Update lock file * Some overload fixes * Test nits * Add test coverage for persisted headers in paged calls * More test nits * Update coverage --------- Co-authored-by: Marcus Risanger <[email protected]>
1 parent 6c3dd9d commit e945861

File tree

5 files changed

+142
-131
lines changed

5 files changed

+142
-131
lines changed

coverage.xml

Lines changed: 114 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?xml version="1.0" ?>
2-
<coverage version="7.9.2" timestamp="1751662168913" lines-valid="885" lines-covered="814" line-rate="0.9198" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
2+
<coverage version="7.9.2" timestamp="1757444621155" lines-valid="885" lines-covered="794" line-rate="0.8972" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
33
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.9.2 -->
44
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
55
<sources>
66
<source>/Users/marcus/GitHub/Dataverse-API/dataverse_api</source>
77
</sources>
88
<packages>
9-
<package name="." line-rate="0.8732" branch-rate="0" complexity="0">
9+
<package name="." line-rate="0.8451" branch-rate="0" complexity="0">
1010
<classes>
1111
<class name="__init__.py" filename="__init__.py" complexity="0" line-rate="1" branch-rate="0">
1212
<methods/>
@@ -153,7 +153,7 @@
153153
<line number="369" hits="0"/>
154154
</lines>
155155
</class>
156-
<class name="entity.py" filename="entity.py" complexity="0" line-rate="0.8953" branch-rate="0">
156+
<class name="entity.py" filename="entity.py" complexity="0" line-rate="0.852" branch-rate="0">
157157
<methods/>
158158
<lines>
159159
<line number="1" hits="1"/>
@@ -259,7 +259,7 @@
259259
<line number="270" hits="1"/>
260260
<line number="271" hits="1"/>
261261
<line number="273" hits="1"/>
262-
<line number="274" hits="1"/>
262+
<line number="274" hits="0"/>
263263
<line number="275" hits="1"/>
264264
<line number="276" hits="1"/>
265265
<line number="277" hits="1"/>
@@ -282,157 +282,157 @@
282282
<line number="303" hits="1"/>
283283
<line number="304" hits="1"/>
284284
<line number="305" hits="1"/>
285-
<line number="306" hits="1"/>
286-
<line number="308" hits="1"/>
287-
<line number="309" hits="1"/>
288-
<line number="310" hits="0"/>
289-
<line number="312" hits="1"/>
285+
<line number="311" hits="1"/>
290286
<line number="313" hits="1"/>
291-
<line number="314" hits="1"/>
292-
<line number="315" hits="1"/>
293-
<line number="316" hits="1"/>
294-
<line number="341" hits="1"/>
295-
<line number="369" hits="1"/>
296-
<line number="370" hits="1"/>
297-
<line number="372" hits="1"/>
287+
<line number="314" hits="0"/>
288+
<line number="315" hits="0"/>
289+
<line number="317" hits="1"/>
290+
<line number="318" hits="1"/>
291+
<line number="319" hits="1"/>
292+
<line number="320" hits="1"/>
293+
<line number="321" hits="1"/>
294+
<line number="346" hits="1"/>
298295
<line number="374" hits="1"/>
299296
<line number="375" hits="1"/>
300-
<line number="376" hits="1"/>
301-
<line number="378" hits="1"/>
297+
<line number="377" hits="1"/>
302298
<line number="379" hits="1"/>
299+
<line number="380" hits="1"/>
303300
<line number="381" hits="1"/>
304-
<line number="382" hits="1"/>
305301
<line number="383" hits="1"/>
306302
<line number="384" hits="1"/>
307303
<line number="386" hits="1"/>
308304
<line number="387" hits="1"/>
309305
<line number="388" hits="1"/>
310306
<line number="389" hits="1"/>
311-
<line number="390" hits="1"/>
307+
<line number="391" hits="1"/>
312308
<line number="392" hits="1"/>
313309
<line number="393" hits="1"/>
310+
<line number="394" hits="1"/>
311+
<line number="395" hits="1"/>
314312
<line number="397" hits="1"/>
315-
<line number="399" hits="1"/>
316-
<line number="401" hits="1"/>
317-
<line number="410" hits="1"/>
318-
<line number="420" hits="1"/>
319-
<line number="421" hits="1"/>
320-
<line number="422" hits="1"/>
321-
<line number="424" hits="1"/>
322-
<line number="431" hits="1"/>
323-
<line number="434" hits="1"/>
324-
<line number="435" hits="1"/>
325-
<line number="438" hits="1"/>
326-
<line number="448" hits="1"/>
327-
<line number="449" hits="1"/>
328-
<line number="450" hits="1"/>
329-
<line number="452" hits="1"/>
330-
<line number="458" hits="1"/>
331-
<line number="459" hits="1"/>
332-
<line number="461" hits="1"/>
333-
<line number="462" hits="1"/>
334-
<line number="470" hits="1"/>
335-
<line number="471" hits="1"/>
336-
<line number="472" hits="1"/>
337-
<line number="501" hits="1"/>
338-
<line number="529" hits="1"/>
339-
<line number="530" hits="1"/>
340-
<line number="532" hits="1"/>
341-
<line number="533" hits="1"/>
313+
<line number="398" hits="1"/>
314+
<line number="402" hits="1"/>
315+
<line number="404" hits="1"/>
316+
<line number="406" hits="1"/>
317+
<line number="415" hits="1"/>
318+
<line number="425" hits="1"/>
319+
<line number="426" hits="0"/>
320+
<line number="427" hits="1"/>
321+
<line number="429" hits="1"/>
322+
<line number="436" hits="1"/>
323+
<line number="439" hits="1"/>
324+
<line number="440" hits="1"/>
325+
<line number="443" hits="1"/>
326+
<line number="453" hits="1"/>
327+
<line number="454" hits="0"/>
328+
<line number="455" hits="1"/>
329+
<line number="457" hits="1"/>
330+
<line number="463" hits="1"/>
331+
<line number="464" hits="1"/>
332+
<line number="466" hits="1"/>
333+
<line number="467" hits="1"/>
334+
<line number="475" hits="1"/>
335+
<line number="476" hits="0"/>
336+
<line number="477" hits="1"/>
337+
<line number="506" hits="1"/>
338+
<line number="534" hits="1"/>
342339
<line number="535" hits="1"/>
343-
<line number="536" hits="1"/>
344340
<line number="537" hits="1"/>
345-
<line number="539" hits="1"/>
341+
<line number="538" hits="1"/>
346342
<line number="540" hits="1"/>
347343
<line number="541" hits="1"/>
348344
<line number="542" hits="1"/>
349-
<line number="543" hits="1"/>
345+
<line number="544" hits="1"/>
350346
<line number="545" hits="1"/>
351347
<line number="546" hits="1"/>
352348
<line number="547" hits="1"/>
353349
<line number="548" hits="1"/>
354350
<line number="550" hits="1"/>
351+
<line number="551" hits="1"/>
355352
<line number="552" hits="1"/>
356-
<line number="556" hits="1"/>
357-
<line number="563" hits="1"/>
358-
<line number="564" hits="1"/>
359-
<line number="565" hits="1"/>
360-
<line number="587" hits="1"/>
361-
<line number="614" hits="1"/>
362-
<line number="615" hits="1"/>
363-
<line number="617" hits="1"/>
364-
<line number="618" hits="1"/>
353+
<line number="553" hits="1"/>
354+
<line number="555" hits="1"/>
355+
<line number="557" hits="1"/>
356+
<line number="561" hits="1"/>
357+
<line number="568" hits="1"/>
358+
<line number="569" hits="0"/>
359+
<line number="570" hits="1"/>
360+
<line number="592" hits="1"/>
361+
<line number="619" hits="1"/>
365362
<line number="620" hits="1"/>
366-
<line number="621" hits="1"/>
367363
<line number="622" hits="1"/>
368-
<line number="624" hits="1"/>
364+
<line number="623" hits="1"/>
369365
<line number="625" hits="1"/>
370366
<line number="626" hits="1"/>
371367
<line number="627" hits="1"/>
372-
<line number="628" hits="1"/>
373368
<line number="629" hits="1"/>
374369
<line number="630" hits="1"/>
370+
<line number="631" hits="1"/>
375371
<line number="632" hits="1"/>
376372
<line number="633" hits="1"/>
377373
<line number="634" hits="1"/>
378374
<line number="635" hits="1"/>
379-
<line number="636" hits="1"/>
380375
<line number="637" hits="1"/>
376+
<line number="638" hits="1"/>
381377
<line number="639" hits="1"/>
378+
<line number="640" hits="1"/>
382379
<line number="641" hits="1"/>
383-
<line number="647" hits="1"/>
384-
<line number="655" hits="1"/>
385-
<line number="656" hits="1"/>
386-
<line number="657" hits="1"/>
387-
<line number="659" hits="1"/>
388-
<line number="681" hits="1"/>
389-
<line number="682" hits="1"/>
390-
<line number="683" hits="1"/>
391-
<line number="684" hits="1"/>
392-
<line number="685" hits="1"/>
380+
<line number="642" hits="1"/>
381+
<line number="644" hits="1"/>
382+
<line number="646" hits="1"/>
383+
<line number="652" hits="1"/>
384+
<line number="660" hits="1"/>
385+
<line number="661" hits="0"/>
386+
<line number="662" hits="1"/>
387+
<line number="664" hits="1"/>
393388
<line number="686" hits="1"/>
389+
<line number="687" hits="1"/>
394390
<line number="688" hits="1"/>
395391
<line number="689" hits="1"/>
392+
<line number="690" hits="1"/>
396393
<line number="691" hits="1"/>
397-
<line number="692" hits="1"/>
394+
<line number="693" hits="1"/>
398395
<line number="694" hits="1"/>
399396
<line number="696" hits="1"/>
400397
<line number="697" hits="1"/>
401-
<line number="698" hits="1"/>
402-
<line number="700" hits="1"/>
398+
<line number="699" hits="1"/>
403399
<line number="701" hits="1"/>
404400
<line number="702" hits="1"/>
405-
<line number="708" hits="1"/>
406-
<line number="710" hits="1"/>
407-
<line number="712" hits="1"/>
408-
<line number="737" hits="0"/>
409-
<line number="739" hits="0"/>
410-
<line number="740" hits="0"/>
401+
<line number="703" hits="1"/>
402+
<line number="705" hits="1"/>
403+
<line number="706" hits="1"/>
404+
<line number="707" hits="1"/>
405+
<line number="713" hits="1"/>
406+
<line number="715" hits="1"/>
407+
<line number="717" hits="1"/>
411408
<line number="742" hits="0"/>
412-
<line number="743" hits="0"/>
413-
<line number="745" hits="1"/>
414-
<line number="758" hits="1"/>
415-
<line number="779" hits="0"/>
416-
<line number="780" hits="0"/>
417-
<line number="782" hits="0"/>
418-
<line number="783" hits="0"/>
419-
<line number="788" hits="1"/>
420-
<line number="793" hits="1"/>
421-
<line number="808" hits="0"/>
422-
<line number="809" hits="0"/>
423-
<line number="810" hits="0"/>
424-
<line number="812" hits="0"/>
425-
<line number="818" hits="1"/>
426-
<line number="825" hits="1"/>
427-
<line number="827" hits="1"/>
428-
<line number="835" hits="1"/>
429-
<line number="856" hits="0"/>
430-
<line number="857" hits="0"/>
431-
<line number="859" hits="0"/>
432-
<line number="860" hits="0"/>
409+
<line number="744" hits="0"/>
410+
<line number="745" hits="0"/>
411+
<line number="747" hits="0"/>
412+
<line number="748" hits="0"/>
413+
<line number="750" hits="0"/>
414+
<line number="763" hits="1"/>
415+
<line number="784" hits="0"/>
416+
<line number="785" hits="0"/>
417+
<line number="787" hits="0"/>
418+
<line number="788" hits="0"/>
419+
<line number="793" hits="0"/>
420+
<line number="798" hits="1"/>
421+
<line number="813" hits="0"/>
422+
<line number="814" hits="0"/>
423+
<line number="815" hits="0"/>
424+
<line number="817" hits="0"/>
425+
<line number="823" hits="0"/>
426+
<line number="830" hits="0"/>
427+
<line number="832" hits="0"/>
428+
<line number="840" hits="1"/>
429+
<line number="861" hits="0"/>
430+
<line number="862" hits="0"/>
431+
<line number="864" hits="0"/>
433432
<line number="865" hits="0"/>
434433
<line number="870" hits="0"/>
435-
<line number="872" hits="0"/>
434+
<line number="875" hits="0"/>
435+
<line number="877" hits="0"/>
436436
</lines>
437437
</class>
438438
<class name="errors.py" filename="errors.py" complexity="0" line-rate="1" branch-rate="0">
@@ -466,13 +466,13 @@
466466
</class>
467467
</classes>
468468
</package>
469-
<package name="metadata" line-rate="0.9467" branch-rate="0" complexity="0">
469+
<package name="metadata" line-rate="0.92" branch-rate="0" complexity="0">
470470
<classes>
471471
<class name="__init__.py" filename="metadata/__init__.py" complexity="0" line-rate="1" branch-rate="0">
472472
<methods/>
473473
<lines/>
474474
</class>
475-
<class name="attributes.py" filename="metadata/attributes.py" complexity="0" line-rate="0.8621" branch-rate="0">
475+
<class name="attributes.py" filename="metadata/attributes.py" complexity="0" line-rate="0.7701" branch-rate="0">
476476
<methods/>
477477
<lines>
478478
<line number="5" hits="1"/>
@@ -509,7 +509,7 @@
509509
<line number="97" hits="1"/>
510510
<line number="98" hits="1"/>
511511
<line number="100" hits="1"/>
512-
<line number="101" hits="1"/>
512+
<line number="101" hits="0"/>
513513
<line number="102" hits="0"/>
514514
<line number="103" hits="0"/>
515515
<line number="104" hits="0"/>
@@ -525,22 +525,22 @@
525525
<line number="133" hits="1"/>
526526
<line number="148" hits="1"/>
527527
<line number="150" hits="1"/>
528-
<line number="151" hits="1"/>
528+
<line number="151" hits="0"/>
529529
<line number="152" hits="0"/>
530-
<line number="153" hits="1"/>
530+
<line number="153" hits="0"/>
531531
<line number="154" hits="0"/>
532532
<line number="157" hits="1"/>
533533
<line number="169" hits="1"/>
534534
<line number="171" hits="1"/>
535-
<line number="172" hits="1"/>
535+
<line number="172" hits="0"/>
536536
<line number="173" hits="0"/>
537-
<line number="174" hits="1"/>
537+
<line number="174" hits="0"/>
538538
<line number="175" hits="0"/>
539539
<line number="178" hits="1"/>
540540
<line number="190" hits="1"/>
541541
<line number="191" hits="0"/>
542542
<line number="192" hits="0"/>
543-
<line number="193" hits="1"/>
543+
<line number="193" hits="0"/>
544544
<line number="194" hits="0"/>
545545
<line number="197" hits="1"/>
546546
<line number="198" hits="1"/>
@@ -557,9 +557,9 @@
557557
<line number="228" hits="1"/>
558558
<line number="229" hits="1"/>
559559
<line number="231" hits="1"/>
560-
<line number="232" hits="1"/>
560+
<line number="232" hits="0"/>
561561
<line number="233" hits="0"/>
562-
<line number="234" hits="1"/>
562+
<line number="234" hits="0"/>
563563
<line number="235" hits="0"/>
564564
<line number="238" hits="1"/>
565565
</lines>

dataverse_api/entity.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,12 @@ def read(
302302
)
303303
output.append(response)
304304
while response.json().get("@odata.nextLink"):
305-
response = self._api_call(method=RequestMethod.GET, url=response.json()["@odata.nextLink"])
305+
response = self._api_call(
306+
method=RequestMethod.GET,
307+
url=response.json()["@odata.nextLink"],
308+
headers=additional_headers,
309+
params=params,
310+
)
306311
output.append(response)
307312

308313
if return_responses:
@@ -571,7 +576,7 @@ def delete_columns(
571576
*,
572577
mode: Literal["individual", "batch"] = "individual",
573578
ids: Collection[str],
574-
threading: bool,
579+
threading: bool = False,
575580
) -> list[requests.Response]: ...
576581

577582
@overload
@@ -581,7 +586,7 @@ def delete_columns(
581586
*,
582587
mode: Literal["individual", "batch"] = "individual",
583588
filter: str,
584-
threading: bool,
589+
threading: bool = False,
585590
) -> list[requests.Response]: ...
586591

587592
def delete_columns(

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "dataverse-api"
3-
version = "1.3.1"
3+
version = "1.3.2"
44
description = "Abstraction layer for interacting with Microsoft Dataverse Web API using Python."
55
authors = [{ name = "Marcus Risanger", email = "[email protected]" }]
66
requires-python = ">=3.11,<4"

0 commit comments

Comments
 (0)