lmod-toolkit 0.0.3__tar.gz → 0.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {lmod_toolkit-0.0.3/src/lmod_toolkit.egg-info → lmod_toolkit-0.0.4}/PKG-INFO +1 -1
  2. lmod_toolkit-0.0.4/src/lmod_toolkit/__init__.py +1 -0
  3. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit/_version.py +3 -3
  4. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit/lmod_config.py +1 -0
  5. lmod_toolkit-0.0.4/src/lmod_toolkit/lmod_spider.py +54 -0
  6. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4/src/lmod_toolkit.egg-info}/PKG-INFO +1 -1
  7. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit.egg-info/SOURCES.txt +1 -0
  8. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit.egg-info/scm_file_list.json +1 -0
  9. lmod_toolkit-0.0.4/src/lmod_toolkit.egg-info/scm_version.json +8 -0
  10. lmod_toolkit-0.0.3/src/lmod_toolkit/__init__.py +0 -1
  11. lmod_toolkit-0.0.3/src/lmod_toolkit.egg-info/scm_version.json +0 -8
  12. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/.github/workflows/publish-to-test-pypi.yml +0 -0
  13. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/.gitignore +0 -0
  14. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/README.md +0 -0
  15. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/README.pypi +0 -0
  16. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/pyproject.toml +0 -0
  17. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/setup.cfg +0 -0
  18. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/setup.sh +0 -0
  19. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit/build_helper.py +0 -0
  20. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit.egg-info/dependency_links.txt +0 -0
  21. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/src/lmod_toolkit.egg-info/top_level.txt +0 -0
  22. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/utils/quickstart.sh +0 -0
  23. {lmod_toolkit-0.0.3 → lmod_toolkit-0.0.4}/utils/uv_installer.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lmod-toolkit
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: ACCESS Lmod Toolkit
5
5
  Author-email: Andy Loftus <aloftus@illinois.edu>, Eric Blau <blau@globus.org>
6
6
  Project-URL: Repository, https://github.com/access-ci-org/lmod-toolkit
@@ -0,0 +1 @@
1
+ from . import lmod_config, lmod_spider
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.0.3'
22
- __version_tuple__ = version_tuple = (0, 0, 3)
21
+ __version__ = version = '0.0.4'
22
+ __version_tuple__ = version_tuple = (0, 0, 4)
23
23
 
24
- __commit_id__ = commit_id = 'g82ce27c8d'
24
+ __commit_id__ = commit_id = 'g9727bc061'
@@ -29,6 +29,7 @@ def __getattr__( name ):
29
29
  val = cfg['configT'][name]
30
30
  except KeyError as e:
31
31
  raise AttributeError( f"'{name}' not found" )
32
+ return val
32
33
 
33
34
 
34
35
  if __name__ == '__main__':
@@ -0,0 +1,54 @@
1
+ import functools
2
+ import json
3
+ import os
4
+ import pprint
5
+ import subprocess
6
+
7
+ from pathlib import Path
8
+
9
+ from lmod_toolkit import lmod_config
10
+
11
+
12
+ __all__ = [
13
+ 'as_json',
14
+ 'get_module_data',
15
+ 'get_module_files',
16
+ 'get_module_names',
17
+ ]
18
+
19
+
20
+ @functools.cache
21
+ def get_module_data():
22
+ prefix = lmod_config.prefix
23
+ libexec = Path( prefix , 'lmod' , 'lmod' , 'libexec' )
24
+ spider = libexec / 'spider'
25
+ try:
26
+ MODULEPATH = os.environ[ 'MODULEPATH' ] #will fail with KeyError if not found
27
+ except KeyError as e:
28
+ raise SystemExit( f"Missing environment variable 'MODULEPATH'\n{e}" )
29
+ cmds = [ 'bash', '-l', '-c', f"{spider} -o jsonSoftwarePage \"{MODULEPATH}\"" ]
30
+ result = subprocess.run(
31
+ cmds,
32
+ capture_output=True, # Captures both stdout and stderr
33
+ text=True # Returns strings instead of bytes
34
+ )
35
+ return json.loads( result.stdout )
36
+
37
+
38
+ def get_module_names():
39
+ return get_module_data().keys()
40
+
41
+
42
+ def get_module_files():
43
+ return [
44
+ v.keys()
45
+ for v in get_module_data().values()
46
+ ]
47
+
48
+
49
+ def as_json():
50
+ return json.dumps( get_module_data() )
51
+
52
+
53
+ if __name__ == '__main__':
54
+ pprint.pprint( get_module_data() )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lmod-toolkit
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: ACCESS Lmod Toolkit
5
5
  Author-email: Andy Loftus <aloftus@illinois.edu>, Eric Blau <blau@globus.org>
6
6
  Project-URL: Repository, https://github.com/access-ci-org/lmod-toolkit
@@ -8,6 +8,7 @@ src/lmod_toolkit/__init__.py
8
8
  src/lmod_toolkit/_version.py
9
9
  src/lmod_toolkit/build_helper.py
10
10
  src/lmod_toolkit/lmod_config.py
11
+ src/lmod_toolkit/lmod_spider.py
11
12
  src/lmod_toolkit.egg-info/PKG-INFO
12
13
  src/lmod_toolkit.egg-info/SOURCES.txt
13
14
  src/lmod_toolkit.egg-info/dependency_links.txt
@@ -9,6 +9,7 @@
9
9
  "src/lmod_toolkit/__init__.py",
10
10
  "src/lmod_toolkit/build_helper.py",
11
11
  "src/lmod_toolkit/lmod_config.py",
12
+ "src/lmod_toolkit/lmod_spider.py",
12
13
  "utils/quickstart.sh",
13
14
  "utils/uv_installer.sh"
14
15
  ]
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.0.4",
3
+ "distance": 0,
4
+ "node": "g9727bc061151dfc0466b13bd7510e0a30aeb40d1",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-11-13"
8
+ }
@@ -1 +0,0 @@
1
- from . import lmod_config
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.0.3",
3
- "distance": 0,
4
- "node": "g82ce27c8d4d07754f12eec0d5eae113b75382a11",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-11-12"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes