1515from .config import DOCUMENT_SIZE_THRESHOLD_BYTES
1616
1717
18+ class BaseSchema (Schema ):
19+ class Meta :
20+ ordered = True
21+
22+
1823class Base :
19- SCHEMA : ClassVar [Schema ]
24+ SCHEMA : ClassVar [BaseSchema ]
2025
2126 def __init__ (self ):
2227 self .status_code = None
@@ -41,7 +46,7 @@ def __bool__(self) -> bool:
4146 return self .status_code == 200
4247
4348
44- class DocumentSchema (Schema ):
49+ class DocumentSchema (BaseSchema ):
4550 class Meta :
4651 unknown = EXCLUDE
4752
@@ -89,7 +94,7 @@ def __repr__(self):
8994 return "filename:{0}, document:{1}" .format (self .filename , self .document )
9095
9196
92- class DetailSchema (Schema ):
97+ class DetailSchema (BaseSchema ):
9398 detail = fields .String (required = True )
9499
95100 @pre_load
@@ -124,7 +129,7 @@ def __repr__(self):
124129 return "{0}:{1}" .format (self .status_code , self .detail )
125130
126131
127- class MatchSchema (Schema ):
132+ class MatchSchema (BaseSchema ):
128133 match = fields .String (required = True )
129134 match_type = fields .String (data_key = "type" , required = True )
130135 line_start = fields .Int (allow_none = True )
@@ -188,7 +193,7 @@ def __repr__(self):
188193 )
189194
190195
191- class PolicyBreakSchema (Schema ):
196+ class PolicyBreakSchema (BaseSchema ):
192197 break_type = fields .String (data_key = "type" , required = True )
193198 policy = fields .String (required = True )
194199 matches = fields .List (fields .Nested (MatchSchema ), required = True )
@@ -226,7 +231,7 @@ def __repr__(self):
226231 )
227232
228233
229- class ScanResultSchema (Schema ):
234+ class ScanResultSchema (BaseSchema ):
230235 policy_break_count = fields .Integer (required = True )
231236 policies = fields .List (fields .String (), required = True )
232237 policy_breaks = fields .List (fields .Nested (PolicyBreakSchema ), required = True )
@@ -308,7 +313,7 @@ def __str__(self):
308313 )
309314
310315
311- class MultiScanResultSchema (Schema ):
316+ class MultiScanResultSchema (BaseSchema ):
312317 scan_results = fields .List (
313318 fields .Nested (ScanResultSchema ),
314319 required = True ,
@@ -379,7 +384,7 @@ def __str__(self):
379384 )
380385
381386
382- class QuotaSchema (Schema ):
387+ class QuotaSchema (BaseSchema ):
383388 count = fields .Int ()
384389 limit = fields .Int ()
385390 remaining = fields .Int ()
@@ -419,7 +424,7 @@ def __repr__(self):
419424 )
420425
421426
422- class QuotaResponseSchema (Schema ):
427+ class QuotaResponseSchema (BaseSchema ):
423428 content = fields .Nested (QuotaSchema )
424429
425430 @post_load
0 commit comments