lmod-toolkit 0.0.1__tar.gz → 0.0.3__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 (24) hide show
  1. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/.github/workflows/publish-to-test-pypi.yml +5 -5
  2. lmod_toolkit-0.0.3/.gitignore +216 -0
  3. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/PKG-INFO +4 -4
  4. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/pyproject.toml +16 -6
  5. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/setup.sh +17 -20
  6. lmod_toolkit-0.0.3/src/lmod_toolkit/__init__.py +1 -0
  7. lmod_toolkit-0.0.3/src/lmod_toolkit/_version.py +24 -0
  8. {lmod_toolkit-0.0.1/src/lmod-toolkit → lmod_toolkit-0.0.3/src/lmod_toolkit}/build_helper.py +7 -0
  9. lmod_toolkit-0.0.3/src/lmod_toolkit/lmod_config.py +35 -0
  10. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/src/lmod_toolkit.egg-info/PKG-INFO +4 -4
  11. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/src/lmod_toolkit.egg-info/SOURCES.txt +6 -3
  12. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/src/lmod_toolkit.egg-info/scm_file_list.json +5 -3
  13. lmod_toolkit-0.0.3/src/lmod_toolkit.egg-info/scm_version.json +8 -0
  14. lmod_toolkit-0.0.3/src/lmod_toolkit.egg-info/top_level.txt +1 -0
  15. lmod_toolkit-0.0.3/utils/quickstart.sh +81 -0
  16. lmod_toolkit-0.0.1/src/lmod-toolkit/__init__.py +0 -0
  17. lmod_toolkit-0.0.1/src/lmod-toolkit/lmod_config.py +0 -4
  18. lmod_toolkit-0.0.1/src/lmod_toolkit.egg-info/scm_version.json +0 -8
  19. lmod_toolkit-0.0.1/src/lmod_toolkit.egg-info/top_level.txt +0 -1
  20. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/README.md +0 -0
  21. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/README.pypi +0 -0
  22. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/setup.cfg +0 -0
  23. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/src/lmod_toolkit.egg-info/dependency_links.txt +0 -0
  24. {lmod_toolkit-0.0.1 → lmod_toolkit-0.0.3}/utils/uv_installer.sh +0 -0
@@ -13,13 +13,13 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
 
15
15
  steps:
16
- - uses: actions/checkout@v4
16
+ - uses: actions/checkout@v7
17
17
  with:
18
18
  persist-credentials: false
19
19
  fetch-depth: 0 # Fetch all history for all branches and tags
20
20
 
21
21
  - name: Set up Python
22
- uses: actions/setup-python@v5
22
+ uses: actions/setup-python@v7
23
23
  with:
24
24
  python-version: "3.x"
25
25
 
@@ -34,7 +34,7 @@ jobs:
34
34
  run: python3 -m build
35
35
 
36
36
  - name: Store the distribution packages
37
- uses: actions/upload-artifact@v4
37
+ uses: actions/upload-artifact@v7
38
38
  with:
39
39
  name: python-package-distributions
40
40
  path: dist/
@@ -54,7 +54,7 @@ jobs:
54
54
  id-token: write # IMPORTANT: mandatory for trusted publishing
55
55
  steps:
56
56
  - name: Download all the dists
57
- uses: actions/download-artifact@v4
57
+ uses: actions/download-artifact@v8
58
58
  with:
59
59
  name: python-package-distributions
60
60
  path: dist/
@@ -78,7 +78,7 @@ jobs:
78
78
 
79
79
  steps:
80
80
  - name: Download all the dists
81
- uses: actions/download-artifact@v4
81
+ uses: actions/download-artifact@v8
82
82
  with:
83
83
  name: python-package-distributions
84
84
  path: dist/
@@ -0,0 +1,216 @@
1
+ # Custom
2
+ *.pyc
3
+ *~
4
+ .DS_Store
5
+ *.swp
6
+ *.old
7
+ _version.py
8
+
9
+ # Byte-compiled / optimized / DLL files
10
+ __pycache__/
11
+ *.py[codz]
12
+ *$py.class
13
+
14
+ # C extensions
15
+ *.so
16
+
17
+ # Distribution / packaging
18
+ .Python
19
+ build/
20
+ develop-eggs/
21
+ dist/
22
+ downloads/
23
+ eggs/
24
+ .eggs/
25
+ lib/
26
+ lib64/
27
+ parts/
28
+ sdist/
29
+ var/
30
+ wheels/
31
+ share/python-wheels/
32
+ *.egg-info/
33
+ .installed.cfg
34
+ *.egg
35
+ MANIFEST
36
+
37
+ # PyInstaller
38
+ # Usually these files are written by a python script from a template
39
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
40
+ *.manifest
41
+ *.spec
42
+
43
+ # Installer logs
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Unit test / coverage reports
48
+ htmlcov/
49
+ .tox/
50
+ .nox/
51
+ .coverage
52
+ .coverage.*
53
+ .cache
54
+ nosetests.xml
55
+ coverage.xml
56
+ *.cover
57
+ *.py.cover
58
+ .hypothesis/
59
+ .pytest_cache/
60
+ cover/
61
+
62
+ # Translations
63
+ *.mo
64
+ *.pot
65
+
66
+ # Django stuff:
67
+ *.log
68
+ local_settings.py
69
+ db.sqlite3
70
+ db.sqlite3-journal
71
+
72
+ # Flask stuff:
73
+ instance/
74
+ .webassets-cache
75
+
76
+ # Scrapy stuff:
77
+ .scrapy
78
+
79
+ # Sphinx documentation
80
+ docs/_build/
81
+
82
+ # PyBuilder
83
+ .pybuilder/
84
+ target/
85
+
86
+ # Jupyter Notebook
87
+ .ipynb_checkpoints
88
+
89
+ # IPython
90
+ profile_default/
91
+ ipython_config.py
92
+
93
+ # pyenv
94
+ # For a library or package, you might want to ignore these files since the code is
95
+ # intended to run in multiple environments; otherwise, check them in:
96
+ # .python-version
97
+
98
+ # pipenv
99
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
100
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
101
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
102
+ # install all needed dependencies.
103
+ #Pipfile.lock
104
+
105
+ # UV
106
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
107
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
108
+ # commonly ignored for libraries.
109
+ #uv.lock
110
+
111
+ # poetry
112
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
113
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
114
+ # commonly ignored for libraries.
115
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
116
+ #poetry.lock
117
+ #poetry.toml
118
+
119
+ # pdm
120
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
121
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
122
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
123
+ #pdm.lock
124
+ #pdm.toml
125
+ .pdm-python
126
+ .pdm-build/
127
+
128
+ # pixi
129
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
130
+ #pixi.lock
131
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
132
+ # in the .venv directory. It is recommended not to include this directory in version control.
133
+ .pixi
134
+
135
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
136
+ __pypackages__/
137
+
138
+ # Celery stuff
139
+ celerybeat-schedule
140
+ celerybeat.pid
141
+
142
+ # SageMath parsed files
143
+ *.sage.py
144
+
145
+ # Environments
146
+ .env
147
+ .envrc
148
+ .venv
149
+ env/
150
+ venv/
151
+ ENV/
152
+ env.bak/
153
+ venv.bak/
154
+
155
+ # Spyder project settings
156
+ .spyderproject
157
+ .spyproject
158
+
159
+ # Rope project settings
160
+ .ropeproject
161
+
162
+ # mkdocs documentation
163
+ /site
164
+
165
+ # mypy
166
+ .mypy_cache/
167
+ .dmypy.json
168
+ dmypy.json
169
+
170
+ # Pyre type checker
171
+ .pyre/
172
+
173
+ # pytype static type analyzer
174
+ .pytype/
175
+
176
+ # Cython debug symbols
177
+ cython_debug/
178
+
179
+ # PyCharm
180
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
181
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
182
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
183
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
184
+ #.idea/
185
+
186
+ # Abstra
187
+ # Abstra is an AI-powered process automation framework.
188
+ # Ignore directories containing user credentials, local state, and settings.
189
+ # Learn more at https://abstra.io/docs
190
+ .abstra/
191
+
192
+ # Visual Studio Code
193
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
194
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
195
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
196
+ # you could uncomment the following to ignore the entire vscode folder
197
+ # .vscode/
198
+
199
+ # Ruff stuff:
200
+ .ruff_cache/
201
+
202
+ # PyPI configuration file
203
+ .pypirc
204
+
205
+ # Cursor
206
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
207
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
208
+ # refer to https://docs.cursor.com/context/ignore-files
209
+ .cursorignore
210
+ .cursorindexingignore
211
+
212
+ # Marimo
213
+ marimo/_static/
214
+ marimo/_lsp/
215
+ __marimo__/
216
+
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
- Name: lmod_toolkit
3
- Version: 0.0.1
2
+ Name: lmod-toolkit
3
+ Version: 0.0.3
4
4
  Summary: ACCESS Lmod Toolkit
5
- Author-email: Andy Loftus <aloftus@illinois.com>, Eric Blau <blau@globus.org>
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
7
7
  Keywords: monitoring,information,gathering,publishing
8
8
  Classifier: Development Status :: 1 - Planning
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Topic :: System :: Monitoring
11
- Requires-Python: ==3.15.*
11
+ Requires-Python: >=3.14
12
12
  Description-Content-Type: text/markdown
13
13
 
14
14
  # lmod toolkit (LMTK)
@@ -1,12 +1,12 @@
1
1
  [build-system]
2
- requires = [ "setuptools >= 80", "setuptools-scm >= 8.3", "ipf >= 1.9" ]
2
+ requires = [ "setuptools >= 80", "setuptools-scm >= 8.3", "lmod-toolkit >= 0.0.2" ]
3
3
  build-backend = "setuptools.build_meta:__legacy__"
4
4
  # __legacy__ enables access to function in the local package
5
5
  # see also https://setuptools-git-versioning.readthedocs.io/en/stable/options/version_callback.html
6
6
 
7
7
  [project]
8
- name = "lmod_toolkit"
9
- requires-python = "==3.15.*"
8
+ name = "lmod-toolkit"
9
+ requires-python = ">=3.14"
10
10
  dependencies = [
11
11
  ]
12
12
  dynamic = [
@@ -27,7 +27,7 @@ keywords = [
27
27
  "publishing",
28
28
  ]
29
29
  authors = [
30
- {name = "Andy Loftus", email = "aloftus@illinois.com"},
30
+ {name = "Andy Loftus", email = "aloftus@illinois.edu"},
31
31
  {name = "Eric Blau", email = "blau@globus.org"},
32
32
  ]
33
33
 
@@ -37,7 +37,17 @@ Repository = "https://github.com/access-ci-org/lmod-toolkit"
37
37
  [tool.setuptools.dynamic]
38
38
  readme = {file = ["README.pypi"], content-type = "text/markdown"}
39
39
 
40
+
41
+ # needed because the package name (lmod-toolkit)
42
+ # doesn't match the import name (lmod_toolkit)
43
+ # [tool.setuptools.packages.find]
44
+ # where = ["src"]
45
+ # include = ["lmod_toolkit*"]
46
+ [tool.setuptools]
47
+ package-dir = {"" = "src"}
48
+
49
+
40
50
  [tool.setuptools_scm]
41
- version_file = "lmod_toolkit/_version.py"
42
- version_scheme = "ipf.build_helper:mk_version"
51
+ version_file = "src/lmod_toolkit/_version.py" # path is relevant to repo top dir
52
+ version_scheme = "lmod_toolkit.build_helper:mk_version" # a published version must exist in pypi
43
53
  local_scheme = "no-local-version" # local version component not allowed on pypi
@@ -68,11 +68,14 @@ install_uv() {
68
68
  export UV_UNMANAGED_INSTALL="${UV_DIR}"
69
69
  UV_URL=https://raw.githubusercontent.com/"${GH_USER}"/"${GH_REPO}"/refs/heads/"${GH_BRANCH}"/utils/uv_installer.sh
70
70
  # allow override of UV_URL (uv installer script)
71
- # [[ -n "${IPF_UV_URL}" ]] && UV_URL="${IPF_UV_URL}"
71
+ [[ -n "${LMTK_UV_URL}" ]] && UV_URL="${LMTK_UV_URL}"
72
72
  UV_INSTALLER="${UV_DIR}"/uv_installer.sh
73
73
  curl -LsSf --create-dirs "${UV_URL}" -o "${UV_INSTALLER}"
74
74
  sh "${UV_INSTALLER}" || die 'failed to install uv'
75
75
  }
76
+ #TODO - would it be useful to have a uv.toml file in {INSTALL_DIR}
77
+ #TODO - maybe also replace uv with a bash alias to use
78
+ # "uv --config-file <PATH_TO_UV_TOML>"
76
79
  }
77
80
 
78
81
 
@@ -83,7 +86,7 @@ mk_venv() {
83
86
  export UV_NO_CACHE=1
84
87
  export UV_MANAGED_PYTHON=1
85
88
  # allow override python version
86
- # [[ -n "${IPF_UV_PYTHON}" ]] && UV_PYTHON="${IPF_UV_PYTHON}"
89
+ [[ -n "${LMTK_UV_PYTHON}" ]] && UV_PYTHON="${LMTK_UV_PYTHON}"
87
90
  export UV_PYTHON
88
91
  "$UV" venv "$VENV"
89
92
  success "Python venv created at '$VENV'"
@@ -115,26 +118,18 @@ is_pre_release_allowed() {
115
118
  }
116
119
 
117
120
 
118
- install_pre_release() {
119
- [[ $DEBUG -eq $YES ]] && set -x
120
- is_pre_release_allowed || return
121
- "${V_PYTHON}" -m pip install \
122
- --upgrade \
123
- --no-cache-dir \
124
- --pre \
125
- --no-deps \
126
- --index-url https://test.pypi.org/simple/ \
127
- lmod_toolkit"${LMTK_INSTALL_VERSION:+==$LMTK_INSTALL_VERSION}" \
128
- && success "Installed dev version of lmod_toolkit"
129
- }
130
-
131
-
132
121
  install_lmod_toolkit() {
133
122
  [[ $DEBUG -eq $YES ]] && set -x
134
- "${V_PYTHON}" -m pip install \
135
- --upgrade \
136
- lmod_toolkit"${LMTK_INSTALL_VERSION:+==$LMTK_INSTALL_VERSION}" \
137
- && success "Ipf and dependencies installed"
123
+ export UV_DEFAULT_INDEX=https://pypi.org/simple
124
+ is_pre_release_allowed && {
125
+ export UV_INDEX=https://test.pypi.org/simple
126
+ export UV_PRERELEASE=allow
127
+ }
128
+ pushd "${INSTALL_DIR}"
129
+ "${UV}" pip install \
130
+ lmod-toolkit"${LMTK_INSTALL_VERSION:+==$LMTK_INSTALL_VERSION}"
131
+ popd
132
+
138
133
  }
139
134
 
140
135
 
@@ -176,6 +171,8 @@ install_uv
176
171
 
177
172
  mk_venv
178
173
 
174
+ install_lmod_toolkit
175
+
179
176
  # update_files
180
177
 
181
178
  # mk_symlinks
@@ -0,0 +1 @@
1
+ from . import lmod_config
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '0.0.3'
22
+ __version_tuple__ = version_tuple = (0, 0, 3)
23
+
24
+ __commit_id__ = commit_id = 'g82ce27c8d'
@@ -1,5 +1,12 @@
1
1
  from setuptools_scm.version import ScmVersion, guess_next_version
2
2
  import time
3
+
4
+ # import this module as part of build-system requires in pyproject.toml
5
+ # It must already exist on pypi as a published pkg for the build-system
6
+ # to be able to inlcude it...
7
+ # so for the very first time, use a different one (such as from ipf)
8
+ # in pyproject.toml, then once published, update pyproject.toml to use this one
9
+
3
10
  def mk_version( version: ScmVersion ) -> str:
4
11
  # setuptools_scm template options
5
12
  # see also https://github.com/pypa/setuptools-scm/blob/main/setuptools-scm/src/setuptools_scm/version.py especially "def meta( ... )"
@@ -0,0 +1,35 @@
1
+ import functools
2
+ import json
3
+ import pprint
4
+ import subprocess
5
+
6
+ __all__ = [
7
+ 'as_json',
8
+ 'get_config',
9
+ ]
10
+
11
+ @functools.cache
12
+ def get_config():
13
+ cmds = [ 'bash', '-l', '-c', 'module --config_json' ]
14
+ result = subprocess.run(
15
+ cmds,
16
+ capture_output=True, # Captures both stdout and stderr
17
+ text=True # Returns strings instead of bytes
18
+ )
19
+ return json.loads( result.stderr )
20
+
21
+
22
+ def as_json():
23
+ return json.dumps( get_config() )
24
+
25
+
26
+ def __getattr__( name ):
27
+ cfg = get_config()
28
+ try:
29
+ val = cfg['configT'][name]
30
+ except KeyError as e:
31
+ raise AttributeError( f"'{name}' not found" )
32
+
33
+
34
+ if __name__ == '__main__':
35
+ pprint.pprint( get_config() )
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
- Name: lmod_toolkit
3
- Version: 0.0.1
2
+ Name: lmod-toolkit
3
+ Version: 0.0.3
4
4
  Summary: ACCESS Lmod Toolkit
5
- Author-email: Andy Loftus <aloftus@illinois.com>, Eric Blau <blau@globus.org>
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
7
7
  Keywords: monitoring,information,gathering,publishing
8
8
  Classifier: Development Status :: 1 - Planning
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Topic :: System :: Monitoring
11
- Requires-Python: ==3.15.*
11
+ Requires-Python: >=3.14
12
12
  Description-Content-Type: text/markdown
13
13
 
14
14
  # lmod toolkit (LMTK)
@@ -1,15 +1,18 @@
1
+ .gitignore
1
2
  README.md
2
3
  README.pypi
3
4
  pyproject.toml
4
5
  setup.sh
5
6
  .github/workflows/publish-to-test-pypi.yml
6
- src/lmod-toolkit/__init__.py
7
- src/lmod-toolkit/build_helper.py
8
- src/lmod-toolkit/lmod_config.py
7
+ src/lmod_toolkit/__init__.py
8
+ src/lmod_toolkit/_version.py
9
+ src/lmod_toolkit/build_helper.py
10
+ src/lmod_toolkit/lmod_config.py
9
11
  src/lmod_toolkit.egg-info/PKG-INFO
10
12
  src/lmod_toolkit.egg-info/SOURCES.txt
11
13
  src/lmod_toolkit.egg-info/dependency_links.txt
12
14
  src/lmod_toolkit.egg-info/scm_file_list.json
13
15
  src/lmod_toolkit.egg-info/scm_version.json
14
16
  src/lmod_toolkit.egg-info/top_level.txt
17
+ utils/quickstart.sh
15
18
  utils/uv_installer.sh
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "files": [
3
3
  ".github/workflows/publish-to-test-pypi.yml",
4
+ ".gitignore",
4
5
  "README.md",
5
6
  "README.pypi",
6
7
  "pyproject.toml",
7
8
  "setup.sh",
8
- "src/lmod-toolkit/__init__.py",
9
- "src/lmod-toolkit/build_helper.py",
10
- "src/lmod-toolkit/lmod_config.py",
9
+ "src/lmod_toolkit/__init__.py",
10
+ "src/lmod_toolkit/build_helper.py",
11
+ "src/lmod_toolkit/lmod_config.py",
12
+ "utils/quickstart.sh",
11
13
  "utils/uv_installer.sh"
12
14
  ]
13
15
  }
@@ -0,0 +1,8 @@
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
+ }
@@ -0,0 +1 @@
1
+ lmod_toolkit
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/bash
2
+
3
+ set -x
4
+
5
+ # =========================
6
+ # customize these as needed
7
+ # =========================
8
+
9
+ # where to save the installer script
10
+ LMTK_SETUP="${HOME}"/lmtk-setup.sh
11
+
12
+ # set to an absolute path (default is $HOME/lmod-toolkit)
13
+ LMTK_INSTALL_DIR="${HOME}"/lmod-toolkit
14
+
15
+ # dont actually do anything, just print out a list of commands
16
+ # that can be run manually
17
+ # MANUAL=yes
18
+
19
+ # set to "yes" or leave unset (defaults to latest)
20
+ # LMTK_ALLOW_PRE_RELEASE=yes
21
+
22
+ # specify an exact version of LMTK
23
+ # get version string from
24
+ # https://pypi.org/project/lmod-toolkit/#history (production releases)
25
+ # OR https://test.pypi.org/project/lmod-toolkit/#history (pre-release versions)
26
+ # LMTK_INSTALL_VERSION=0.0.2.dev1794287670
27
+ # LMTK_INSTALL_VERSION=0.0.2
28
+
29
+ # either a branch name or leave unset (defaults to main)
30
+ # LMTK_GIT_BRANCH=poc
31
+
32
+ # specify a specific version of python if needed
33
+ # LMTK_UV_PYTHON=3.15
34
+
35
+ # =====================================
36
+ # shouldn't need to touch anything else
37
+ # =====================================
38
+
39
+
40
+ [[ -z "${LMTK_GIT_BRANCH}" ]] && LMTK_GIT_BRANCH=main
41
+ URL_BASE='https://raw.githubusercontent.com/access-ci-org/lmod-toolkit/refs/heads'
42
+ LMTK_SETUP_URL="${URL_BASE}"/"${LMTK_GIT_BRANCH}"/setup.sh
43
+ LMTK_UV_URL="${URL_BASE}"/"${LMTK_GIT_BRANCH}"/utils/uv_installer.sh
44
+ # LMTK_BIN="${LMTK_INSTALL_DIR}"/bin
45
+ VENV="${LMTK_INSTALL_DIR}"/.venv
46
+
47
+ ###
48
+ # MAIN
49
+ ###
50
+
51
+ # make exports (used by setup script)
52
+ export LMTK_UV_URL
53
+ export LMTK_INSTALL_DIR
54
+ [[ -n "${LMTK_ALLOW_PRE_RELEASE}" ]] && export LMTK_ALLOW_PRE_RELEASE
55
+ [[ -n "${LMTK_UV_PYTHON}" ]] && export LMTK_UV_PYTHON
56
+ [[ -n "${LMTK_INSTALL_VERSION}" ]] && export LMTK_INSTALL_VERSION
57
+
58
+ # set ACTION if doing manual run
59
+ if [[ -n "${MANUAL}" ]] ; then
60
+ ACTION=echo
61
+ set +x
62
+ echo 'COMMANDS THAT WOULD HAVE BEEN RUN'
63
+ echo '---------------------------------'
64
+ fi
65
+
66
+ # stop anything running
67
+ # [[ -x "${IPF_BIN}"/wfm ]] && ${ACTION} bash "${IPF_BIN}"/wfm stop
68
+
69
+ # cleanup any existing installs
70
+ ${ACTION} rm -rf "${LMTK_INSTALL_DIR}"
71
+ # ${ACTION} rm -rf "${HOME}"/.cache/pip #shouldn't need this anymore since switched to UV
72
+
73
+ # get new setup script
74
+ ${ACTION} rm -f "${LMTK_SETUP}"
75
+ ${ACTION} curl -o "${LMTK_SETUP}" "${LMTK_SETUP_URL}"
76
+ # and run it
77
+ ${ACTION} bash "${LMTK_SETUP}"
78
+
79
+ # validate install
80
+ # ${ACTION} "${VENV}"/bin/python --version
81
+ # ${ACTION} "${VENV}"/bin/python -m pip freeze
File without changes
@@ -1,4 +0,0 @@
1
- import json
2
-
3
- if __name__ == '__main__':
4
- pass
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.0.1",
3
- "distance": 0,
4
- "node": "g7caa8c7349c61bcde9f19609377db4f72366ff84",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-11-10"
8
- }
@@ -1 +0,0 @@
1
- lmod-toolkit
File without changes
File without changes
File without changes