Skip to content

Commit 732bdf4

Browse files
committed
Harmonize variants.json priority output code
Harmonize the `variants.json` priority output code with provider output code. Make it skip outputting undesired empty keys, instead of removing them after outputting.
1 parent 1038475 commit 732bdf4

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

variantlib/variants_json.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,19 @@ def _provider_info_to_json(
6262
if provider_info.plugin_api is not None:
6363
yield (VARIANT_INFO_PROVIDER_PLUGIN_API_KEY, provider_info.plugin_api)
6464

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+
6572
def to_str(self) -> str:
6673
"""Serialize variants.json as a JSON string"""
6774

6875
data: dict[str, Any] = {
6976
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()),
7578
VARIANT_INFO_PROVIDER_DATA_KEY: {
7679
namespace: dict(self._provider_info_to_json(provider_info))
7780
for namespace, provider_info in self.providers.items()
@@ -81,14 +84,6 @@ def to_str(self) -> str:
8184
},
8285
}
8386

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-
9287
return json.dumps(data, indent=4, sort_keys=True)
9388

9489
def merge(self, variant_dist_info: Self) -> None:

0 commit comments

Comments
 (0)