Commit 3193b91
authored
Improve response output (#220)
This PR introduces a way to remove `None` values from serialised
responses so they are more compact (and so that they mirror the REST API
response). Additionally, it changes how the data is returned to improve
clarity for users (by using clearer/more appropriate names):
- Remove the `.json` property. The rationale is that we weren't actually
returning a json string but a dictionary. Also, given that it was a
property, we couldn't take additional parameters to specify whether a
'compact' version should be returned.
- Add a `.to_dict()` method, which returns a dictionary. It takes a
parameter `exclude_none` (which defaults to `True`) which excludes any
keys which are None or empty lists*. I decided to call it `exclude_none`
rather than `compact` to mirror how Pydantic deals with the same issue
(model_dump optionally takes `exclude_none=True` in order to remove all
`None` values). This prepares us for a future move to Pydantic (instead
of Python dataclasses), as we've discussed.
- Add a `.to_json()` method, which returns a json string (via
`json.dumps`). It takes the same `exclude_none` parameter described
above.
Those two methods are implemented via a mixin class.1 parent a3cdc9d commit 3193b91
2 files changed
Lines changed: 232 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
17 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
18 | 54 | | |
19 | 55 | | |
20 | 56 | | |
21 | | - | |
| 57 | + | |
22 | 58 | | |
23 | 59 | | |
24 | 60 | | |
| |||
33 | 69 | | |
34 | 70 | | |
35 | 71 | | |
36 | | - | |
| 72 | + | |
37 | 73 | | |
38 | 74 | | |
39 | 75 | | |
| |||
69 | 105 | | |
70 | 106 | | |
71 | 107 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | 108 | | |
77 | 109 | | |
78 | | - | |
| 110 | + | |
79 | 111 | | |
80 | 112 | | |
81 | 113 | | |
| |||
100 | 132 | | |
101 | 133 | | |
102 | 134 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | 135 | | |
108 | 136 | | |
109 | 137 | | |
| |||
125 | 153 | | |
126 | 154 | | |
127 | 155 | | |
128 | | - | |
| 156 | + | |
129 | 157 | | |
130 | 158 | | |
131 | 159 | | |
| |||
149 | 177 | | |
150 | 178 | | |
151 | 179 | | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | 4 | | |
3 | 5 | | |
| |||
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
81 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
82 | 125 | | |
83 | 126 | | |
84 | 127 | | |
| |||
238 | 281 | | |
239 | 282 | | |
240 | 283 | | |
241 | | - | |
| 284 | + | |
242 | 285 | | |
243 | 286 | | |
244 | 287 | | |
245 | 288 | | |
246 | 289 | | |
247 | 290 | | |
248 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
249 | 324 | | |
250 | 325 | | |
251 | 326 | | |
| |||
483 | 558 | | |
484 | 559 | | |
485 | 560 | | |
486 | | - | |
487 | | - | |
| 561 | + | |
| 562 | + | |
488 | 563 | | |
489 | 564 | | |
490 | 565 | | |
| |||
516 | 591 | | |
517 | 592 | | |
518 | 593 | | |
519 | | - | |
| 594 | + | |
520 | 595 | | |
521 | 596 | | |
522 | 597 | | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
0 commit comments