15
15
from .config import DOCUMENT_SIZE_THRESHOLD_BYTES
16
16
17
17
18
+ class BaseSchema (Schema ):
19
+ class Meta :
20
+ ordered = True
21
+
22
+
18
23
class Base :
19
- SCHEMA : ClassVar [Schema ]
24
+ SCHEMA : ClassVar [BaseSchema ]
20
25
21
26
def __init__ (self ):
22
27
self .status_code = None
@@ -41,7 +46,7 @@ def __bool__(self) -> bool:
41
46
return self .status_code == 200
42
47
43
48
44
- class DocumentSchema (Schema ):
49
+ class DocumentSchema (BaseSchema ):
45
50
class Meta :
46
51
unknown = EXCLUDE
47
52
@@ -89,7 +94,7 @@ def __repr__(self):
89
94
return "filename:{0}, document:{1}" .format (self .filename , self .document )
90
95
91
96
92
- class DetailSchema (Schema ):
97
+ class DetailSchema (BaseSchema ):
93
98
detail = fields .String (required = True )
94
99
95
100
@pre_load
@@ -124,7 +129,7 @@ def __repr__(self):
124
129
return "{0}:{1}" .format (self .status_code , self .detail )
125
130
126
131
127
- class MatchSchema (Schema ):
132
+ class MatchSchema (BaseSchema ):
128
133
match = fields .String (required = True )
129
134
match_type = fields .String (data_key = "type" , required = True )
130
135
line_start = fields .Int (allow_none = True )
@@ -188,7 +193,7 @@ def __repr__(self):
188
193
)
189
194
190
195
191
- class PolicyBreakSchema (Schema ):
196
+ class PolicyBreakSchema (BaseSchema ):
192
197
break_type = fields .String (data_key = "type" , required = True )
193
198
policy = fields .String (required = True )
194
199
matches = fields .List (fields .Nested (MatchSchema ), required = True )
@@ -226,7 +231,7 @@ def __repr__(self):
226
231
)
227
232
228
233
229
- class ScanResultSchema (Schema ):
234
+ class ScanResultSchema (BaseSchema ):
230
235
policy_break_count = fields .Integer (required = True )
231
236
policies = fields .List (fields .String (), required = True )
232
237
policy_breaks = fields .List (fields .Nested (PolicyBreakSchema ), required = True )
@@ -308,7 +313,7 @@ def __str__(self):
308
313
)
309
314
310
315
311
- class MultiScanResultSchema (Schema ):
316
+ class MultiScanResultSchema (BaseSchema ):
312
317
scan_results = fields .List (
313
318
fields .Nested (ScanResultSchema ),
314
319
required = True ,
@@ -379,7 +384,7 @@ def __str__(self):
379
384
)
380
385
381
386
382
- class QuotaSchema (Schema ):
387
+ class QuotaSchema (BaseSchema ):
383
388
count = fields .Int ()
384
389
limit = fields .Int ()
385
390
remaining = fields .Int ()
@@ -419,7 +424,7 @@ def __repr__(self):
419
424
)
420
425
421
426
422
- class QuotaResponseSchema (Schema ):
427
+ class QuotaResponseSchema (BaseSchema ):
423
428
content = fields .Nested (QuotaSchema )
424
429
425
430
@post_load
0 commit comments