@@ -62,16 +62,19 @@ def _provider_info_to_json(
62
62
if provider_info .plugin_api is not None :
63
63
yield (VARIANT_INFO_PROVIDER_PLUGIN_API_KEY , provider_info .plugin_api )
64
64
65
+ def _priorities_to_json (self ) -> Generator [tuple [str , Any ]]:
66
+ yield (VARIANT_INFO_NAMESPACE_KEY , self .namespace_priorities )
67
+ if self .feature_priorities :
68
+ yield (VARIANT_INFO_FEATURE_KEY , self .feature_priorities )
69
+ if self .property_priorities :
70
+ yield (VARIANT_INFO_PROPERTY_KEY , self .property_priorities )
71
+
65
72
def to_str (self ) -> str :
66
73
"""Serialize variants.json as a JSON string"""
67
74
68
75
data : dict [str , Any ] = {
69
76
VARIANTS_JSON_SCHEMA_KEY : VARIANTS_JSON_SCHEMA_URL ,
70
- VARIANT_INFO_DEFAULT_PRIO_KEY : {
71
- VARIANT_INFO_NAMESPACE_KEY : self .namespace_priorities ,
72
- VARIANT_INFO_FEATURE_KEY : self .feature_priorities ,
73
- VARIANT_INFO_PROPERTY_KEY : self .property_priorities ,
74
- },
77
+ VARIANT_INFO_DEFAULT_PRIO_KEY : dict (self ._priorities_to_json ()),
75
78
VARIANT_INFO_PROVIDER_DATA_KEY : {
76
79
namespace : dict (self ._provider_info_to_json (provider_info ))
77
80
for namespace , provider_info in self .providers .items ()
@@ -81,14 +84,6 @@ def to_str(self) -> str:
81
84
},
82
85
}
83
86
84
- if not data [VARIANT_INFO_DEFAULT_PRIO_KEY ][VARIANT_INFO_FEATURE_KEY ]:
85
- # Remove empty feature priorities
86
- del data [VARIANT_INFO_DEFAULT_PRIO_KEY ][VARIANT_INFO_FEATURE_KEY ]
87
-
88
- if not data [VARIANT_INFO_DEFAULT_PRIO_KEY ][VARIANT_INFO_PROPERTY_KEY ]:
89
- # Remove empty property priorities
90
- del data [VARIANT_INFO_DEFAULT_PRIO_KEY ][VARIANT_INFO_PROPERTY_KEY ]
91
-
92
87
return json .dumps (data , indent = 4 , sort_keys = True )
93
88
94
89
def merge (self , variant_dist_info : Self ) -> None :
0 commit comments