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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
eic_tools
Spack
Commits
0cf03518
Commit
0cf03518
authored
9 years ago
by
Massimiliano Culpo
Browse files
Options
Downloads
Patches
Plain Diff
reverted deletion of the wrong `architecture.py`
parent
603f5e69
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
lib/spack/spack/architecture.py
+89
-0
89 additions, 0 deletions
lib/spack/spack/architecture.py
with
89 additions
and
0 deletions
lib/spack/spack/
util/
architecture.py
→
lib/spack/spack/architecture.py
+
89
−
0
View file @
0cf03518
...
...
@@ -22,25 +22,68 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##############################################################################
import
os
import
re
import
platform
import
sys
from
llnl.util.lang
import
memoized
import
spack
import
spack.error
as
serr
def
os_is_in
(
*
args
):
"""
Return True if any element in the list is equal to sys.platform, False otherwise
:param args: list of names to be checked
:return: True or False
"""
return
any
(
map
(
lambda
x
:
x
==
sys
.
platform
,
args
)
)
class
InvalidSysTypeError
(
serr
.
SpackError
):
def
__init__
(
self
,
sys_type
):
super
(
InvalidSysTypeError
,
self
).
__init__
(
"
Invalid sys_type value for Spack:
"
+
sys_type
)
def
os_is_not_in
(
*
args
):
"""
Return True if none of the elements in the list is equal to sys.platform, False otherwise
class
NoSysTypeError
(
serr
.
SpackError
):
def
__init__
(
self
):
super
(
NoSysTypeError
,
self
).
__init__
(
"
Could not determine sys_type for this machine.
"
)
:param args: list of names to be checked
:return: True or False
"""
return
not
os_is_in
(
*
args
)
def
get_sys_type_from_spack_globals
():
"""
Return the SYS_TYPE from spack globals, or None if it isn
'
t set.
"""
if
not
hasattr
(
spack
,
"
sys_type
"
):
return
None
elif
hasattr
(
spack
.
sys_type
,
"
__call__
"
):
return
spack
.
sys_type
()
else
:
return
spack
.
sys_type
def
get_sys_type_from_environment
():
"""
Return $SYS_TYPE or None if it
'
s not defined.
"""
return
os
.
environ
.
get
(
'
SYS_TYPE
'
)
def
get_sys_type_from_platform
():
"""
Return the architecture from Python
'
s platform module.
"""
sys_type
=
platform
.
system
()
+
'
-
'
+
platform
.
machine
()
sys_type
=
re
.
sub
(
r
'
[^\w-]
'
,
'
_
'
,
sys_type
)
return
sys_type
.
lower
()
@memoized
def
sys_type
():
"""
Returns a SysType for the current machine.
"""
methods
=
[
get_sys_type_from_spack_globals
,
get_sys_type_from_environment
,
get_sys_type_from_platform
]
# search for a method that doesn't return None
sys_type
=
None
for
method
in
methods
:
sys_type
=
method
()
if
sys_type
:
break
# Couldn't determine the sys_type for this machine.
if
sys_type
is
None
:
return
"
unknown_arch
"
if
not
isinstance
(
sys_type
,
basestring
):
raise
InvalidSysTypeError
(
sys_type
)
return
sys_type
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