bugfix: env.write() should stringify Spec lists.
- Setting specs from lockfiles was not correctly stringifying concretized user specs. - Fix `_set_user_specs_from_lockfile` - Add some validation code to `SpecList` constructor
This commit is contained in:
parent
7ec1d320a8
commit
cc4094bb9b
2 changed files with 8 additions and 2 deletions
|
@ -600,8 +600,8 @@ def _set_user_specs_from_lockfile(self):
|
|||
"""Copy user_specs from a read-in lockfile."""
|
||||
self.spec_lists = {
|
||||
user_speclist_name: SpecList(
|
||||
user_speclist_name, [Spec(s)
|
||||
for s in self.concretized_user_specs]
|
||||
user_speclist_name,
|
||||
[str(s) for s in self.concretized_user_specs]
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,12 @@ def __init__(self, name='specs', yaml_list=[], reference={}):
|
|||
self.name = name
|
||||
self._reference = reference # TODO: Do we need defensive copy here?
|
||||
|
||||
# Validate yaml_list before assigning
|
||||
if not all(isinstance(s, string_types) or isinstance(s, (list, dict))
|
||||
for s in yaml_list):
|
||||
raise ValueError(
|
||||
"yaml_list can contain only valid YAML types! Found:\n %s"
|
||||
% [type(s) for s in yaml_list])
|
||||
self.yaml_list = yaml_list[:]
|
||||
|
||||
# Expansions can be expensive to compute and difficult to keep updated
|
||||
|
|
Loading…
Reference in a new issue