lsst-ctrl-platform-s3df 28.2025.500__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 (32) hide show
  1. lsst_ctrl_platform_s3df-28.2025.500/.github/workflows/build.yaml +101 -0
  2. lsst_ctrl_platform_s3df-28.2025.500/.github/workflows/lint.yaml +11 -0
  3. lsst_ctrl_platform_s3df-28.2025.500/.github/workflows/rebase_checker.yaml +8 -0
  4. lsst_ctrl_platform_s3df-28.2025.500/.gitignore +234 -0
  5. lsst_ctrl_platform_s3df-28.2025.500/COPYRIGHT +1 -0
  6. lsst_ctrl_platform_s3df-28.2025.500/LICENSE +674 -0
  7. lsst_ctrl_platform_s3df-28.2025.500/PKG-INFO +24 -0
  8. lsst_ctrl_platform_s3df-28.2025.500/README.rst +5 -0
  9. lsst_ctrl_platform_s3df-28.2025.500/SConstruct +4 -0
  10. lsst_ctrl_platform_s3df-28.2025.500/bin.src/SConscript +3 -0
  11. lsst_ctrl_platform_s3df-28.2025.500/doc/.gitignore +10 -0
  12. lsst_ctrl_platform_s3df-28.2025.500/doc/conf.py +14 -0
  13. lsst_ctrl_platform_s3df-28.2025.500/doc/index.rst +51 -0
  14. lsst_ctrl_platform_s3df-28.2025.500/doc/manifest.yaml +12 -0
  15. lsst_ctrl_platform_s3df-28.2025.500/pyproject.toml +51 -0
  16. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/__init__.py +3 -0
  17. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/__init__.py +3 -0
  18. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/__init__.py +3 -0
  19. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/__init__.py +27 -0
  20. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/__init__.py +0 -0
  21. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/config/__init__.py +0 -0
  22. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/config/execConfig.py +5 -0
  23. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/config/slurmConfig.py +5 -0
  24. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/templates/__init__.py +0 -0
  25. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/templates/allocation.sh.template +97 -0
  26. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/templates/dynamic_slots.template +6 -0
  27. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/templates/generic.slurm.template +19 -0
  28. lsst_ctrl_platform_s3df-28.2025.500/python/lsst/ctrl/platform/s3df/etc/templates/glidein_condor_config.template +46 -0
  29. lsst_ctrl_platform_s3df-28.2025.500/setup.cfg +14 -0
  30. lsst_ctrl_platform_s3df-28.2025.500/tests/SConscript +3 -0
  31. lsst_ctrl_platform_s3df-28.2025.500/tests/test_load.py +26 -0
  32. lsst_ctrl_platform_s3df-28.2025.500/ups/ctrl_platform_s3df.table +10 -0
@@ -0,0 +1,101 @@
1
+ name: build_and_test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - "u/**"
8
+ tags:
9
+ - "*"
10
+ pull_request:
11
+
12
+ jobs:
13
+ build_and_test:
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ matrix:
17
+ python-version: ["3.11", "3.12"]
18
+
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ with:
22
+ # Need to clone everything for the git tags.
23
+ fetch-depth: 0
24
+
25
+ - name: Install uv
26
+ uses: astral-sh/setup-uv@v5
27
+ with:
28
+ version: "0.5.x"
29
+ enable-cache: true
30
+ python-version: ${{ matrix.python-version }}
31
+
32
+ - name: Install dependencies
33
+ run: |
34
+ uv sync
35
+
36
+ - name: Run tests
37
+ run: >-
38
+ uv run pytest -r a -v
39
+
40
+ check-changes:
41
+ outputs:
42
+ skip: ${{ steps.check.outputs.skip }}
43
+ runs-on: ubuntu-latest
44
+ if: startsWith(github.ref, 'refs/tags/')
45
+ steps:
46
+ - uses: actions/checkout@v4
47
+ with:
48
+ fetch-depth: 0
49
+ - name: Check if weekly changed
50
+ id: check
51
+ run: |
52
+ # Get SHA hashes for most recent weekly tags
53
+ weekly_sha=$(git tag -l 'w.*' | while read tag; do
54
+ git rev-list -n 1 "${tag}"
55
+ done)
56
+
57
+ echo "Weekly tag SHA ${weekly_sha}"
58
+ # Extract the current tag and its SHA
59
+ current_tag=${GITHUB_REF#refs/tags/}
60
+ echo "Current tag: ${current_tag}"
61
+ current_sha=$(git rev-list -1 "${current_tag}") || echo "no_value"
62
+ echo "Current sha: ${current_sha}"
63
+ # Count occurrences of the current SHA in the weekly SHA list
64
+ n=$(echo "${weekly_sha}" | grep -c "${current_sha}") || echo "0"
65
+ echo "Current tag ${current_tag} (${current_sha}) SHA found ${n} time(s)"
66
+
67
+ # Determine whether to skip the upload based on the count
68
+ if [ "${n}" -gt 1 ]; then
69
+ echo "Skip upload"
70
+ echo "skip=true" >> "${GITHUB_OUTPUT}"
71
+ else
72
+ echo "Enable upload"
73
+ echo "skip=false" >> "${GITHUB_OUTPUT}"
74
+ fi
75
+
76
+ pypi:
77
+ runs-on: ubuntu-latest
78
+ needs: [build_and_test, check-changes]
79
+ permissions:
80
+ id-token: write
81
+ if: "${{ ! startsWith(github.ref, 'refs/tags/w.') || needs.check-changes.outputs.skip == 'false' }}"
82
+
83
+ steps:
84
+ - uses: actions/checkout@v4
85
+ with:
86
+ # Need to clone everything to embed the version.
87
+ fetch-depth: 0
88
+
89
+ - name: Install uv
90
+ uses: astral-sh/setup-uv@v5
91
+ with:
92
+ version: "0.5.x"
93
+ enable-cache: true
94
+ python-version: "3.11"
95
+
96
+ - name: Build and create distribution
97
+ run: |
98
+ uv build
99
+
100
+ - name: Upload
101
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,11 @@
1
+ name: lint
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+
9
+ jobs:
10
+ call-workflow:
11
+ uses: lsst/rubin_workflows/.github/workflows/lint.yaml@main
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: Check that 'main' is not merged into the development branch
3
+
4
+ on: pull_request
5
+
6
+ jobs:
7
+ call-workflow:
8
+ uses: lsst/rubin_workflows/.github/workflows/rebase_checker.yaml@main
@@ -0,0 +1,234 @@
1
+ # General
2
+ .DS_Store
3
+ .AppleDouble
4
+ .LSOverride
5
+
6
+ # Icon must end with two \r
7
+ Icon
8
+
9
+ # Thumbnails
10
+ ._*
11
+
12
+ # Files that might appear in the root of a volume
13
+ .DocumentRevisions-V100
14
+ .fseventsd
15
+ .Spotlight-V100
16
+ .TemporaryItems
17
+ .Trashes
18
+ .VolumeIcon.icns
19
+ .com.apple.timemachine.donotpresent
20
+
21
+ # Directories potentially created on remote AFP share
22
+ .AppleDB
23
+ .AppleDesktop
24
+ Network Trash Folder
25
+ Temporary Items
26
+ .apdisk
27
+ *~
28
+
29
+ # temporary files which can be created if a process still has a handle open of a deleted file
30
+ .fuse_hidden*
31
+
32
+ # KDE directory preferences
33
+ .directory
34
+
35
+ # Linux trash folder which might appear on any partition or disk
36
+ .Trash-*
37
+
38
+ # .nfs files are created when an open file is removed but is still being accessed
39
+ .nfs*
40
+
41
+ # Byte-compiled / optimized / DLL files
42
+ __pycache__/
43
+ *.py[cod]
44
+ *$py.class
45
+
46
+ # C extensions
47
+ *.so
48
+
49
+ # Distribution / packaging
50
+ .Python
51
+ build/
52
+ develop-eggs/
53
+ dist/
54
+ downloads/
55
+ eggs/
56
+ .eggs/
57
+ lib/
58
+ lib64/
59
+ parts/
60
+ sdist/
61
+ var/
62
+ wheels/
63
+ share/python-wheels/
64
+ *.egg-info/
65
+ .installed.cfg
66
+ *.egg
67
+ MANIFEST
68
+
69
+ # PyInstaller
70
+ # Usually these files are written by a python script from a template
71
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
72
+ *.manifest
73
+ *.spec
74
+
75
+ # Installer logs
76
+ pip-log.txt
77
+ pip-delete-this-directory.txt
78
+
79
+ # Unit test / coverage reports
80
+ htmlcov/
81
+ .tox/
82
+ .nox/
83
+ .coverage
84
+ .coverage.*
85
+ .cache
86
+ nosetests.xml
87
+ coverage.xml
88
+ *.cover
89
+ *.py,cover
90
+ .hypothesis/
91
+ .pytest_cache/
92
+ cover/
93
+
94
+ # Translations
95
+ *.mo
96
+ *.pot
97
+
98
+ # Django stuff:
99
+ *.log
100
+ local_settings.py
101
+ db.sqlite3
102
+ db.sqlite3-journal
103
+
104
+ # Flask stuff:
105
+ instance/
106
+ .webassets-cache
107
+
108
+ # Scrapy stuff:
109
+ .scrapy
110
+
111
+ # Sphinx documentation
112
+ docs/_build/
113
+
114
+ # PyBuilder
115
+ .pybuilder/
116
+ target/
117
+
118
+ # Jupyter Notebook
119
+ .ipynb_checkpoints
120
+
121
+ # IPython
122
+ profile_default/
123
+ ipython_config.py
124
+
125
+ # pyenv
126
+ # For a library or package, you might want to ignore these files since the code is
127
+ # intended to run in multiple environments; otherwise, check them in:
128
+ # .python-version
129
+
130
+ # pipenv
131
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
132
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
133
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
134
+ # install all needed dependencies.
135
+ #Pipfile.lock
136
+
137
+ # UV
138
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
139
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
140
+ # commonly ignored for libraries.
141
+ uv.lock
142
+
143
+ # poetry
144
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
145
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
146
+ # commonly ignored for libraries.
147
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
148
+ #poetry.lock
149
+
150
+ # pdm
151
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
152
+ #pdm.lock
153
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
154
+ # in version control.
155
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
156
+ .pdm.toml
157
+ .pdm-python
158
+ .pdm-build/
159
+
160
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
161
+ __pypackages__/
162
+
163
+ # Celery stuff
164
+ celerybeat-schedule
165
+ celerybeat.pid
166
+
167
+ # SageMath parsed files
168
+ *.sage.py
169
+
170
+ # Environments
171
+ .env
172
+ .env.*
173
+ .envrc
174
+ .venv
175
+ env/
176
+ venv/
177
+ ENV/
178
+ env.bak/
179
+ venv.bak/
180
+
181
+ # Spyder project settings
182
+ .spyderproject
183
+ .spyproject
184
+
185
+ # Rope project settings
186
+ .ropeproject
187
+
188
+ # mkdocs documentation
189
+ /site
190
+
191
+ # mypy
192
+ .mypy_cache/
193
+ .dmypy.json
194
+ dmypy.json
195
+
196
+ # Pyre type checker
197
+ .pyre/
198
+
199
+ # pytype static type analyzer
200
+ .pytype/
201
+
202
+ # Cython debug symbols
203
+ cython_debug/
204
+
205
+ # PyCharm
206
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
207
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
208
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
209
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
210
+ #.idea/
211
+
212
+ # PyPI configuration file
213
+ .pypirc
214
+
215
+ # Local Ignores
216
+
217
+ # Do not commit the local version file
218
+ **/version.py
219
+
220
+ # VS Code
221
+ .vscode/
222
+
223
+ # Ruff
224
+ # Ruff usually installs a .gitignore file in its directory.
225
+ .ruff_cache/
226
+
227
+ # Scons
228
+ .sconsign.dblite
229
+ .sconf_temp
230
+ tests/.tests/
231
+ bin/*
232
+ python/*.dist-info
233
+ config.log
234
+ _build.*
@@ -0,0 +1 @@
1
+ Copyright 2023 University of Illinois Board of Trustees