diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2021-03-22 11:47:24 -0700 |
---|---|---|
committer | Greg Becker <becker33@llnl.gov> | 2021-03-31 14:39:23 -0700 |
commit | a1d9a56a43fa59d5e3609047bf2037a92006dc4f (patch) | |
tree | 8db32c79bc247e5ce4c44baa2384e17cbf07a598 | |
parent | 01a6adb5f7d6771150ff01c8ceb413519de0eccf (diff) | |
download | spack-a1d9a56a43fa59d5e3609047bf2037a92006dc4f.tar.gz spack-a1d9a56a43fa59d5e3609047bf2037a92006dc4f.tar.bz2 spack-a1d9a56a43fa59d5e3609047bf2037a92006dc4f.tar.xz spack-a1d9a56a43fa59d5e3609047bf2037a92006dc4f.zip |
specs: remove "or ''" from Spec comparisons
Since `lazy_lexicographic_ordering` handles `None` comparison for us, we
don't need to adjust the spec comparators to return empty strings or
other type-specific empty types. We can just leverage the None-awareness
of `lazy_lexicographic_ordering`.
- [x] remove "or ''" from `_cmp_iter` in `Spec`
- [x] remove setting of `self.namespace` to `''` in `MockPackage`
-rw-r--r-- | lib/spack/spack/spec.py | 4 | ||||
-rw-r--r-- | lib/spack/spack/util/mock_package.py | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 370a5d2f0c..f7a78863d4 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -3617,8 +3617,8 @@ class Spec(object): def _cmp_node(self): """Yield comparable elements of just *this node* and not its deps.""" - yield self.name or '' - yield self.namespace or '' + yield self.name + yield self.namespace yield self.versions yield self.variants yield self.compiler diff --git a/lib/spack/spack/util/mock_package.py b/lib/spack/spack/util/mock_package.py index 0b5e681f26..847177ae05 100644 --- a/lib/spack/spack/util/mock_package.py +++ b/lib/spack/spack/util/mock_package.py @@ -81,8 +81,8 @@ class MockPackageMultiRepo(object): def __init__(self): self.spec_to_pkg = {} - self.namespace = '' - self.full_namespace = 'spack.pkg.mock' + self.namespace = 'mock' # repo namespace + self.full_namespace = 'spack.pkg.mock' # python import namespace def get(self, spec): if not isinstance(spec, spack.spec.Spec): @@ -92,6 +92,10 @@ class MockPackageMultiRepo(object): return self.spec_to_pkg[spec.name] def get_pkg_class(self, name): + namespace, _, name = name.rpartition(".") + if namespace and namespace != self.namespace: + raise spack.repo.InvalidNamespaceError( + "bad namespace: %s" % self.namespace) return self.spec_to_pkg[name] def exists(self, name): |