Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Spack
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
eic_tools
Spack
Commits
23c70897
Commit
23c70897
authored
May 18, 2016
by
Massimiliano Culpo
Browse files
Options
Downloads
Patches
Plain Diff
fixes #967, flake8 approved
parent
fcc30cbf
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
lib/spack/spack/cmd/find.py
+82
-53
82 additions, 53 deletions
lib/spack/spack/cmd/find.py
with
82 additions
and
53 deletions
lib/spack/spack/cmd/find.py
+
82
−
53
View file @
23c70897
...
@@ -22,65 +22,91 @@
...
@@ -22,65 +22,91 @@
# License along with this program; if not, write to the Free Software
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
##############################################################################
import
sys
import
collections
import
itertools
import
argparse
import
argparse
from
StringIO
import
StringIO
import
sys
import
llnl.util.tty
as
tty
import
llnl.util.tty
as
tty
from
llnl.util.tty.colify
import
*
from
llnl.util.tty.color
import
*
from
llnl.util.lang
import
*
import
spack
import
spack
import
spack.spec
import
spack.spec
from
llnl.util.lang
import
*
from
llnl.util.tty.colify
import
*
from
llnl.util.tty.color
import
*
description
=
"
Find installed spack packages
"
description
=
"
Find installed spack packages
"
def
setup_parser
(
subparser
):
def
setup_parser
(
subparser
):
format_group
=
subparser
.
add_mutually_exclusive_group
()
format_group
=
subparser
.
add_mutually_exclusive_group
()
format_group
.
add_argument
(
format_group
.
add_argument
(
'
-s
'
,
'
-s
'
,
'
--short
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
short
'
,
'
--short
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
short
'
,
help
=
'
Show only specs (default)
'
)
help
=
'
Show only specs (default)
'
)
format_group
.
add_argument
(
format_group
.
add_argument
(
'
-p
'
,
'
-p
'
,
'
--paths
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
paths
'
,
'
--paths
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
paths
'
,
help
=
'
Show paths to package install directories
'
)
help
=
'
Show paths to package install directories
'
)
format_group
.
add_argument
(
format_group
.
add_argument
(
'
-d
'
,
'
--deps
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
deps
'
,
'
-d
'
,
'
--deps
'
,
action
=
'
store_const
'
,
dest
=
'
mode
'
,
const
=
'
deps
'
,
help
=
'
Show full dependency DAG of installed packages
'
)
help
=
'
Show full dependency DAG of installed packages
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-l
'
,
'
-l
'
,
'
--long
'
,
action
=
'
store_true
'
,
dest
=
'
long
'
,
'
--long
'
,
action
=
'
store_true
'
,
dest
=
'
long
'
,
help
=
'
Show dependency hashes as well as versions.
'
)
help
=
'
Show dependency hashes as well as versions.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-L
'
,
'
-L
'
,
'
--very-long
'
,
action
=
'
store_true
'
,
dest
=
'
very_long
'
,
'
--very-long
'
,
action
=
'
store_true
'
,
dest
=
'
very_long
'
,
help
=
'
Show dependency hashes as well as versions.
'
)
help
=
'
Show dependency hashes as well as versions.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-f
'
,
'
-f
'
,
'
--show-flags
'
,
action
=
'
store_true
'
,
dest
=
'
show_flags
'
,
'
--show-flags
'
,
action
=
'
store_true
'
,
dest
=
'
show_flags
'
,
help
=
'
Show spec compiler flags.
'
)
help
=
'
Show spec compiler flags.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-e
'
,
'
--explicit
'
,
action
=
'
store_true
'
,
'
-e
'
,
'
--explicit
'
,
action
=
'
store_true
'
,
help
=
'
Show only specs that were installed explicitly
'
)
help
=
'
Show only specs that were installed explicitly
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-E
'
,
'
--implicit
'
,
action
=
'
store_true
'
,
'
-E
'
,
'
--implicit
'
,
action
=
'
store_true
'
,
help
=
'
Show only specs that were installed as dependencies
'
)
help
=
'
Show only specs that were installed as dependencies
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-u
'
,
'
--unknown
'
,
action
=
'
store_true
'
,
dest
=
'
unknown
'
,
'
-u
'
,
'
--unknown
'
,
action
=
'
store_true
'
,
dest
=
'
unknown
'
,
help
=
'
Show only specs Spack does not have a package for.
'
)
help
=
'
Show only specs Spack does not have a package for.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-m
'
,
'
--missing
'
,
action
=
'
store_true
'
,
dest
=
'
missing
'
,
'
-m
'
,
'
--missing
'
,
action
=
'
store_true
'
,
dest
=
'
missing
'
,
help
=
'
Show missing dependencies as well as installed specs.
'
)
help
=
'
Show missing dependencies as well as installed specs.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-M
'
,
'
-M
'
,
'
--only-missing
'
,
action
=
'
store_true
'
,
dest
=
'
only_missing
'
,
'
--only-missing
'
,
action
=
'
store_true
'
,
dest
=
'
only_missing
'
,
help
=
'
Show only missing dependencies.
'
)
help
=
'
Show only missing dependencies.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
-N
'
,
'
-N
'
,
'
--namespace
'
,
action
=
'
store_true
'
,
'
--namespace
'
,
action
=
'
store_true
'
,
help
=
'
Show fully qualified package names.
'
)
help
=
'
Show fully qualified package names.
'
)
subparser
.
add_argument
(
subparser
.
add_argument
(
'
query_specs
'
,
'
query_specs
'
,
nargs
=
argparse
.
REMAINDER
,
nargs
=
argparse
.
REMAINDER
,
help
=
'
optional specs to filter results
'
)
help
=
'
optional specs to filter results
'
)
...
@@ -109,11 +135,12 @@ def display_specs(specs, **kwargs):
...
@@ -109,11 +135,12 @@ def display_specs(specs, **kwargs):
# Traverse the index and print out each package
# Traverse the index and print out each package
for
i
,
(
architecture
,
compiler
)
in
enumerate
(
sorted
(
index
)):
for
i
,
(
architecture
,
compiler
)
in
enumerate
(
sorted
(
index
)):
if
i
>
0
:
print
if
i
>
0
:
print
header
=
"
%s{%s} / %s{%s}
"
%
(
header
=
"
%s{%s} / %s{%s}
"
%
(
spack
.
spec
.
architecture_color
,
spack
.
spec
.
architecture_color
,
architecture
,
architecture
,
spack
.
spec
.
compiler_color
,
spack
.
spec
.
compiler_color
,
compiler
)
compiler
)
tty
.
hline
(
colorize
(
header
),
char
=
'
-
'
)
tty
.
hline
(
colorize
(
header
),
char
=
'
-
'
)
specs
=
index
[(
architecture
,
compiler
)]
specs
=
index
[(
architecture
,
compiler
)]
...
@@ -128,20 +155,21 @@ def display_specs(specs, **kwargs):
...
@@ -128,20 +155,21 @@ def display_specs(specs, **kwargs):
for
abbrv
,
spec
in
zip
(
abbreviated
,
specs
):
for
abbrv
,
spec
in
zip
(
abbreviated
,
specs
):
if
hashes
:
if
hashes
:
print
gray_hash
(
spec
,
hlen
),
print
(
gray_hash
(
spec
,
hlen
),
)
print
format
%
(
abbrv
,
spec
.
prefix
)
print
(
format
%
(
abbrv
,
spec
.
prefix
)
)
elif
mode
==
'
deps
'
:
elif
mode
==
'
deps
'
:
for
spec
in
specs
:
for
spec
in
specs
:
print
spec
.
tree
(
print
(
spec
.
tree
(
format
=
format_string
,
format
=
format_string
,
color
=
True
,
color
=
True
,
indent
=
4
,
indent
=
4
,
prefix
=
(
lambda
s
:
gray_hash
(
s
,
hlen
))
if
hashes
else
None
)
prefix
=
(
lambda
s
:
gray_hash
(
s
,
hlen
))
if
hashes
else
None
)
)
elif
mode
==
'
short
'
:
elif
mode
==
'
short
'
:
# Print columns of output if not printing flags
# Print columns of output if not printing flags
if
not
flags
:
if
not
flags
:
def
fmt
(
s
):
def
fmt
(
s
):
string
=
""
string
=
""
if
hashes
:
if
hashes
:
...
@@ -149,18 +177,17 @@ def fmt(s):
...
@@ -149,18 +177,17 @@ def fmt(s):
string
+=
s
.
format
(
'
$-%s$@$+
'
%
nfmt
,
color
=
True
)
string
+=
s
.
format
(
'
$-%s$@$+
'
%
nfmt
,
color
=
True
)
return
string
return
string
colify
(
fmt
(
s
)
for
s
in
specs
)
colify
(
fmt
(
s
)
for
s
in
specs
)
# Print one entry per line if including flags
# Print one entry per line if including flags
else
:
else
:
for
spec
in
specs
:
for
spec
in
specs
:
# Print the hash if necessary
# Print the hash if necessary
hsh
=
gray_hash
(
spec
,
hlen
)
+
'
'
if
hashes
else
''
hsh
=
gray_hash
(
spec
,
hlen
)
+
'
'
if
hashes
else
''
print
hsh
+
spec
.
format
(
format_string
,
color
=
True
)
+
'
\n
'
print
(
hsh
+
spec
.
format
(
format_string
,
color
=
True
)
+
'
\n
'
)
else
:
else
:
raise
ValueError
(
raise
ValueError
(
"
Invalid mode for display_specs: %s. Must be one of (paths, deps, short).
"
%
mode
)
# NOQA: ignore=E501
"
Invalid mode for display_specs: %s. Must be one of (paths, deps, short).
"
%
mode
)
def
find
(
parser
,
args
):
def
find
(
parser
,
args
):
...
@@ -198,7 +225,8 @@ def find(parser, args):
...
@@ -198,7 +225,8 @@ def find(parser, args):
if
not
query_specs
:
if
not
query_specs
:
specs
=
set
(
spack
.
installed_db
.
query
(
**
q_args
))
specs
=
set
(
spack
.
installed_db
.
query
(
**
q_args
))
else
:
else
:
results
=
[
set
(
spack
.
installed_db
.
query
(
qs
,
**
q_args
))
for
qs
in
query_specs
]
results
=
[
set
(
spack
.
installed_db
.
query
(
qs
,
**
q_args
))
for
qs
in
query_specs
]
specs
=
set
.
union
(
*
results
)
specs
=
set
.
union
(
*
results
)
if
not
args
.
mode
:
if
not
args
.
mode
:
...
@@ -206,7 +234,8 @@ def find(parser, args):
...
@@ -206,7 +234,8 @@ def find(parser, args):
if
sys
.
stdout
.
isatty
():
if
sys
.
stdout
.
isatty
():
tty
.
msg
(
"
%d installed packages.
"
%
len
(
specs
))
tty
.
msg
(
"
%d installed packages.
"
%
len
(
specs
))
display_specs
(
specs
,
mode
=
args
.
mode
,
display_specs
(
specs
,
mode
=
args
.
mode
,
long
=
args
.
long
,
long
=
args
.
long
,
very_long
=
args
.
very_long
,
very_long
=
args
.
very_long
,
show_flags
=
args
.
show_flags
)
show_flags
=
args
.
show_flags
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment