46
46
47
47
def get_variant_hashes_by_priority (
48
48
* ,
49
- variants_json : dict ,
49
+ variants_json : dict | VariantsJson ,
50
50
use_auto_install : bool = True ,
51
51
venv_path : str | pathlib .Path | None = None ,
52
52
namespace_priorities : list [str ] | None = None ,
@@ -57,17 +57,16 @@ def get_variant_hashes_by_priority(
57
57
forbidden_properties : list [str ] | None = None ,
58
58
) -> list [str ]:
59
59
supported_vprops = []
60
- parsed_variants_json = VariantsJson (variants_json )
60
+ if not isinstance (variants_json , VariantsJson ):
61
+ variants_json = VariantsJson (variants_json )
61
62
62
63
venv_path = venv_path if venv_path is None else pathlib .Path (venv_path )
63
64
64
65
with (
65
66
AutoPythonEnv (
66
67
use_auto_install = use_auto_install , isolated = False , venv_path = venv_path
67
68
) as python_ctx ,
68
- PluginLoader (
69
- variant_nfo = parsed_variants_json , python_ctx = python_ctx
70
- ) as plugin_loader ,
69
+ PluginLoader (variant_nfo = variants_json , python_ctx = python_ctx ) as plugin_loader ,
71
70
):
72
71
supported_vprops = list (
73
72
itertools .chain .from_iterable (
@@ -105,22 +104,22 @@ def get_variant_hashes_by_priority(
105
104
return [
106
105
vdesc .hexdigest
107
106
for vdesc in sort_and_filter_supported_variants (
108
- list (parsed_variants_json .variants .values ()),
107
+ list (variants_json .variants .values ()),
109
108
supported_vprops ,
110
109
namespace_priorities = aggregate_priority_lists (
111
110
namespace_priorities ,
112
111
config .namespace_priorities ,
113
- parsed_variants_json .namespace_priorities ,
112
+ variants_json .namespace_priorities ,
114
113
),
115
114
feature_priorities = aggregate_priority_lists (
116
115
_feature_priorities ,
117
116
config .feature_priorities ,
118
- parsed_variants_json .feature_priorities ,
117
+ variants_json .feature_priorities ,
119
118
),
120
119
property_priorities = aggregate_priority_lists (
121
120
_property_priorities ,
122
121
config .property_priorities ,
123
- parsed_variants_json .property_priorities ,
122
+ variants_json .property_priorities ,
124
123
),
125
124
forbidden_namespaces = forbidden_namespaces ,
126
125
forbidden_features = _forbidden_features ,
0 commit comments