diff options
author | sparkyniner <110723606+sparkyniner@users.noreply.github.com> | 2022-08-21 03:39:44 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-20 16:09:44 -0600 |
commit | 21e6679056644a94764f44d102e6bd1e975302ed (patch) | |
tree | 2e9df8d95b6a61d52d3a33a6e8c624cf8c7182cb /lib | |
parent | 8d02e2cc52d001dd454dbe9898aec576fc95f02a (diff) | |
download | spack-21e6679056644a94764f44d102e6bd1e975302ed.tar.gz spack-21e6679056644a94764f44d102e6bd1e975302ed.tar.bz2 spack-21e6679056644a94764f44d102e6bd1e975302ed.tar.xz spack-21e6679056644a94764f44d102e6bd1e975302ed.zip |
spack list: add --tag flag (#32016)
* modified list.py and added functionality for --tag
* Removed long and very long, shifted rest of code above return statement
* removed results variable
* added import statement at top
* added the line accidentally deleted
* added line accidentally deleted
* changed p.name to p, added line inside if statement
* line order switched
* [@spackbot] updating style on behalf of sparkyniner
* ran update completion command
* add tests
* Update lib/spack/spack/test/cmd/list.py
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
* [@spackbot] updating style on behalf of sparkyniner
* changed argument to mock_packages and moved code under filter by tag
* removed bad rebase code and added additional test
* [@spackbot] updating style on behalf of sparkyniner
* added line removed earlier
* added line removed earlier
* replaced function
* added more recommended changes
Co-authored-by: sairaj <sairaj@sairajs-MacBook-Pro.local>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/cmd/list.py | 7 | ||||
-rw-r--r-- | lib/spack/spack/test/cmd/list.py | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py index c51c0959c0..54f8e890f4 100644 --- a/lib/spack/spack/cmd/list.py +++ b/lib/spack/spack/cmd/list.py @@ -16,6 +16,7 @@ import sys import llnl.util.tty as tty from llnl.util.tty.colify import colify +import spack.cmd.common.arguments as arguments import spack.dependency import spack.repo from spack.version import VersionList @@ -72,6 +73,7 @@ def setup_parser(subparser): default=False, help="include virtual packages in list", ) + arguments.add_common_arguments(subparser, ["tags"]) def filter_by_name(pkgs, args): @@ -306,6 +308,11 @@ def list(parser, args): # Filter the set appropriately sorted_packages = filter_by_name(pkgs, args) + # If tags have been specified on the command line, filter by tags + if args.tags: + packages_with_tags = spack.repo.path.packages_with_tags(*args.tags) + sorted_packages = [p for p in sorted_packages if p in packages_with_tags] + if args.update: # change output stream if user asked for update if os.path.exists(args.update): diff --git a/lib/spack/spack/test/cmd/list.py b/lib/spack/spack/test/cmd/list.py index 5a4b4b223e..924ef140b3 100644 --- a/lib/spack/spack/test/cmd/list.py +++ b/lib/spack/spack/test/cmd/list.py @@ -84,3 +84,17 @@ def test_list_update(tmpdir, mock_packages): assert update_file.exists() with update_file.open() as f: assert f.read() == "empty\n" + + +def test_list_tags(mock_packages): + output = list("--tag", "tag1") + assert "mpich" in output + assert "mpich2" in output + + output = list("--tag", "tag2") + assert "mpich\n" in output + assert "mpich2" not in output + + output = list("--tag", "tag3") + assert "mpich\n" not in output + assert "mpich2" in output |