cmsdials 1.7.1__tar.gz → 1.7.2__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.
- cmsdials-1.7.2/.editorconfig +20 -0
- cmsdials-1.7.2/.gitignore +167 -0
- cmsdials-1.7.2/.gitlab-ci.yml +113 -0
- cmsdials-1.7.2/.mailmap +2 -0
- cmsdials-1.7.2/.pre-commit-config.yaml +25 -0
- cmsdials-1.7.2/.tool-versions +1 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/PKG-INFO +13 -18
- cmsdials-1.7.2/cmsdials/_version.py +21 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/client.py +3 -6
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/oms_proxy/client.py +4 -5
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/utils/api_client.py +1 -4
- cmsdials-1.7.2/cmsdials.egg-info/PKG-INFO +383 -0
- cmsdials-1.7.2/cmsdials.egg-info/SOURCES.txt +76 -0
- cmsdials-1.7.2/cmsdials.egg-info/dependency_links.txt +1 -0
- cmsdials-1.7.2/cmsdials.egg-info/requires.txt +9 -0
- cmsdials-1.7.2/cmsdials.egg-info/top_level.txt +1 -0
- cmsdials-1.7.2/pyproject.toml +55 -0
- cmsdials-1.7.2/ruff.toml +50 -0
- cmsdials-1.7.2/setup.cfg +4 -0
- cmsdials-1.7.2/tests/integration/__init__.py +0 -0
- cmsdials-1.7.2/tests/integration/test_auth_client.py +61 -0
- cmsdials-1.7.2/tests/integration/test_file_index_client.py +47 -0
- cmsdials-1.7.2/tests/integration/test_h1d_client.py +49 -0
- cmsdials-1.7.2/tests/integration/test_h2d_client.py +49 -0
- cmsdials-1.7.2/tests/integration/test_lumisection_client.py +49 -0
- cmsdials-1.7.2/tests/integration/test_mes_client.py +46 -0
- cmsdials-1.7.2/tests/integration/test_oms_proxy_client.py +37 -0
- cmsdials-1.7.2/tests/integration/test_resume.py +45 -0
- cmsdials-1.7.2/tests/integration/test_run_client.py +47 -0
- cmsdials-1.7.2/tests/integration/utils.py +15 -0
- cmsdials-1.7.2/tests/unit/__init__.py +0 -0
- cmsdials-1.7.2/tests/unit/test_base_api_client.py +20 -0
- cmsdials-1.7.2/tox.ini +9 -0
- cmsdials-1.7.1/cmsdials/_version.py +0 -1
- cmsdials-1.7.1/pyproject.toml +0 -149
- {cmsdials-1.7.1 → cmsdials-1.7.2}/LICENSE +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/README.md +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/_base.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/bearer.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/exceptions.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/auth/secret_key.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/dataset_index/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/dataset_index/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/dataset_index/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/file_index/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/file_index/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/file_index/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h1d/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h1d/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h1d/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h2d/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h2d/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/h2d/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/lumisection/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/lumisection/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/lumisection/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/mes/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/mes/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/mes/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_bad_lumisection/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_bad_lumisection/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_bad_lumisection/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_models_index/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_models_index/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/ml_models_index/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/oms_proxy/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/oms_proxy/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/run/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/run/client.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/clients/run/models.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/cmsdials.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/filters.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/utils/__init__.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/utils/_json.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/utils/base_model.py +0 -0
- {cmsdials-1.7.1 → cmsdials-1.7.2}/cmsdials/utils/logger.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# For VSCode install the extension: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
|
|
2
|
+
# top-most EditorConfig file
|
|
3
|
+
root = true
|
|
4
|
+
|
|
5
|
+
[*]
|
|
6
|
+
indent_style = space
|
|
7
|
+
indent_size = 4
|
|
8
|
+
charset = utf-8
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
insert_final_newline = true
|
|
11
|
+
end_of_line = lf
|
|
12
|
+
|
|
13
|
+
[*.md]
|
|
14
|
+
trim_trailing_whitespace = false
|
|
15
|
+
|
|
16
|
+
[Makefile]
|
|
17
|
+
indent_style = tab
|
|
18
|
+
|
|
19
|
+
[*.{yml,yaml,json}]
|
|
20
|
+
indent_size = 2
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
.cache-dev
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
cover/
|
|
54
|
+
|
|
55
|
+
# Translations
|
|
56
|
+
*.mo
|
|
57
|
+
*.pot
|
|
58
|
+
|
|
59
|
+
# Django stuff:
|
|
60
|
+
*.log
|
|
61
|
+
local_settings.py
|
|
62
|
+
db.sqlite3
|
|
63
|
+
db.sqlite3-journal
|
|
64
|
+
|
|
65
|
+
# Flask stuff:
|
|
66
|
+
instance/
|
|
67
|
+
.webassets-cache
|
|
68
|
+
|
|
69
|
+
# Scrapy stuff:
|
|
70
|
+
.scrapy
|
|
71
|
+
|
|
72
|
+
# Sphinx documentation
|
|
73
|
+
docs/_build/
|
|
74
|
+
|
|
75
|
+
# PyBuilder
|
|
76
|
+
.pybuilder/
|
|
77
|
+
target/
|
|
78
|
+
|
|
79
|
+
# Jupyter Notebook
|
|
80
|
+
.ipynb_checkpoints
|
|
81
|
+
|
|
82
|
+
# IPython
|
|
83
|
+
profile_default/
|
|
84
|
+
ipython_config.py
|
|
85
|
+
|
|
86
|
+
# pyenv
|
|
87
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
88
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
89
|
+
# .python-version
|
|
90
|
+
|
|
91
|
+
# pipenv
|
|
92
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
93
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
94
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
95
|
+
# install all needed dependencies.
|
|
96
|
+
#Pipfile.lock
|
|
97
|
+
|
|
98
|
+
# poetry
|
|
99
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
100
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
101
|
+
# commonly ignored for libraries.
|
|
102
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
103
|
+
poetry.lock
|
|
104
|
+
|
|
105
|
+
# pdm
|
|
106
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
107
|
+
#pdm.lock
|
|
108
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
109
|
+
# in version control.
|
|
110
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
111
|
+
.pdm.toml
|
|
112
|
+
|
|
113
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
114
|
+
__pypackages__/
|
|
115
|
+
|
|
116
|
+
# Celery stuff
|
|
117
|
+
celerybeat-schedule
|
|
118
|
+
celerybeat.pid
|
|
119
|
+
|
|
120
|
+
# SageMath parsed files
|
|
121
|
+
*.sage.py
|
|
122
|
+
|
|
123
|
+
# Environments
|
|
124
|
+
.env
|
|
125
|
+
.venv
|
|
126
|
+
env/
|
|
127
|
+
venv/
|
|
128
|
+
ENV/
|
|
129
|
+
env.bak/
|
|
130
|
+
venv.bak/
|
|
131
|
+
|
|
132
|
+
# Spyder project settings
|
|
133
|
+
.spyderproject
|
|
134
|
+
.spyproject
|
|
135
|
+
|
|
136
|
+
# Rope project settings
|
|
137
|
+
.ropeproject
|
|
138
|
+
|
|
139
|
+
# mkdocs documentation
|
|
140
|
+
/site
|
|
141
|
+
|
|
142
|
+
# mypy
|
|
143
|
+
.mypy_cache/
|
|
144
|
+
.dmypy.json
|
|
145
|
+
dmypy.json
|
|
146
|
+
|
|
147
|
+
# Pyre type checker
|
|
148
|
+
.pyre/
|
|
149
|
+
|
|
150
|
+
# pytype static type analyzer
|
|
151
|
+
.pytype/
|
|
152
|
+
|
|
153
|
+
# Cython debug symbols
|
|
154
|
+
cython_debug/
|
|
155
|
+
|
|
156
|
+
# PyCharm
|
|
157
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
158
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
159
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
160
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
161
|
+
#.idea/
|
|
162
|
+
|
|
163
|
+
# uv
|
|
164
|
+
uv.lock
|
|
165
|
+
|
|
166
|
+
# setuptools_scm
|
|
167
|
+
cmsdials/_version.py
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
stages:
|
|
2
|
+
- test
|
|
3
|
+
- build
|
|
4
|
+
- publish
|
|
5
|
+
- create_release
|
|
6
|
+
|
|
7
|
+
test_matrix:
|
|
8
|
+
stage: test
|
|
9
|
+
parallel:
|
|
10
|
+
matrix:
|
|
11
|
+
- PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12"]
|
|
12
|
+
image: registry.cern.ch/docker.io/library/python:$PYTHON_VERSION
|
|
13
|
+
before_script:
|
|
14
|
+
- python -m pip install --upgrade pip
|
|
15
|
+
- pip install uv
|
|
16
|
+
- uv sync --all-groups --extra pandas --extra tqdm
|
|
17
|
+
script:
|
|
18
|
+
- uv run pytest tests --cov=cmsdials --cov-report=xml --cov-report=term
|
|
19
|
+
coverage: "/TOTAL.+ ([0-9]{1,3}%)/"
|
|
20
|
+
artifacts:
|
|
21
|
+
reports:
|
|
22
|
+
coverage_report:
|
|
23
|
+
coverage_format: cobertura
|
|
24
|
+
path: coverage.xml
|
|
25
|
+
variables:
|
|
26
|
+
SECRET_KEY: "$SECRET_KEY"
|
|
27
|
+
|
|
28
|
+
build:
|
|
29
|
+
stage: build
|
|
30
|
+
image: registry.cern.ch/docker.io/library/python:3.12
|
|
31
|
+
before_script:
|
|
32
|
+
- python -m pip install --upgrade pip
|
|
33
|
+
- pip install uv
|
|
34
|
+
- uv sync --all-groups --extra pandas --extra tqdm
|
|
35
|
+
script:
|
|
36
|
+
- rm -rf dist/
|
|
37
|
+
- uv build
|
|
38
|
+
artifacts:
|
|
39
|
+
paths:
|
|
40
|
+
- dist/
|
|
41
|
+
expire_in: 1 hour
|
|
42
|
+
needs:
|
|
43
|
+
- test_matrix
|
|
44
|
+
|
|
45
|
+
publish:
|
|
46
|
+
stage: publish
|
|
47
|
+
image: registry.cern.ch/docker.io/library/python:3.12
|
|
48
|
+
rules:
|
|
49
|
+
- if: '$CI_COMMIT_TAG'
|
|
50
|
+
when: always
|
|
51
|
+
- when: never
|
|
52
|
+
before_script:
|
|
53
|
+
- python -m pip install --upgrade pip
|
|
54
|
+
- pip install uv
|
|
55
|
+
script:
|
|
56
|
+
- uv publish # UV_PUBLISH_TOKEN has to be set in CI/CD variables
|
|
57
|
+
needs:
|
|
58
|
+
- build
|
|
59
|
+
|
|
60
|
+
create_release:
|
|
61
|
+
stage: create_release
|
|
62
|
+
image: registry.cern.ch/registry.gitlab.com/gitlab-org/cli:latest
|
|
63
|
+
rules:
|
|
64
|
+
- if: $CI_COMMIT_TAG
|
|
65
|
+
variables:
|
|
66
|
+
GITLAB_HOST: $CI_SERVER_FQDN
|
|
67
|
+
before_script:
|
|
68
|
+
- apk add jq --no-cache
|
|
69
|
+
script:
|
|
70
|
+
- |
|
|
71
|
+
set -x
|
|
72
|
+
|
|
73
|
+
# Fetch all tags
|
|
74
|
+
git fetch --tags
|
|
75
|
+
|
|
76
|
+
# Get the previous tag
|
|
77
|
+
PREV_TAG=$(git describe --tags --abbrev=0 ${CI_COMMIT_TAG}^)
|
|
78
|
+
echo "Generating release for ${CI_COMMIT_TAG} (MRs since ${PREV_TAG})"
|
|
79
|
+
|
|
80
|
+
# Setup auth
|
|
81
|
+
glab auth login --token "$GITLAB_TOKEN"
|
|
82
|
+
|
|
83
|
+
# Generate release notes
|
|
84
|
+
echo "### Changes since ${PREV_TAG}:" > release_notes.md
|
|
85
|
+
echo "" >> release_notes.md
|
|
86
|
+
echo "[${PREV_TAG}...${CI_COMMIT_TAG}]($CI_PROJECT_URL/-/compare/${PREV_TAG}...${CI_COMMIT_TAG})" >> release_notes.md
|
|
87
|
+
echo "" >> release_notes.md
|
|
88
|
+
|
|
89
|
+
# Get MR numbers between the two tags by parsing commit messages
|
|
90
|
+
MR_NUMBERS=$(git log $PREV_TAG..$CI_COMMIT_TAG --merges --pretty=format:"%b" | grep -oE '!([0-9]+)' | tr -d '!' | sort -u)
|
|
91
|
+
|
|
92
|
+
# Update release notes, fallback to commit list if merge request list is empty
|
|
93
|
+
# The default merge commit message has this at the end: See merge request gamoreir/test-release-ci!3
|
|
94
|
+
if [ -z "$MR_NUMBERS" ]; then
|
|
95
|
+
COMMIT_LIST=$(git log --pretty=format:"- #%h from %an <%ae>: %s" ${PREV_TAG}..${CI_COMMIT_TAG})
|
|
96
|
+
echo "${COMMIT_LIST}" >> release_notes.md
|
|
97
|
+
else
|
|
98
|
+
for mr in $MR_NUMBERS; do
|
|
99
|
+
echo "Fetching MR $mr metadata"
|
|
100
|
+
mr_metadata=$(glab mr view "$mr" -R "$CI_PROJECT_PATH" -F json)
|
|
101
|
+
mr_web_url=$(echo "$mr_metadata" | jq -r '.web_url')
|
|
102
|
+
title=$(echo "$mr_metadata" | jq -r '.title')
|
|
103
|
+
author_username=$(echo "$mr_metadata" | jq -r '.author.username')
|
|
104
|
+
author_username_web_url=$(echo "$mr_metadata" | jq -r '.author.web_url')
|
|
105
|
+
echo "- [!${mr}](${mr_web_url}) from [@${author_username}](${author_username_web_url}): ${title}" >> release_notes.md
|
|
106
|
+
done
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Create the release
|
|
110
|
+
echo "Creating release for tag $CI_COMMIT_TAG"
|
|
111
|
+
glab release create "${CI_COMMIT_TAG}" -R "$CI_PROJECT_PATH" -F release_notes.md
|
|
112
|
+
needs:
|
|
113
|
+
- publish
|
cmsdials-1.7.2/.mailmap
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.5.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-added-large-files
|
|
6
|
+
args: ["--maxkb=500"]
|
|
7
|
+
exclude: >
|
|
8
|
+
(?x)^(
|
|
9
|
+
package-lock\.json
|
|
10
|
+
poetry\.lock
|
|
11
|
+
)$
|
|
12
|
+
- id: fix-byte-order-marker
|
|
13
|
+
- id: check-case-conflict
|
|
14
|
+
- id: check-merge-conflict
|
|
15
|
+
- id: check-symlinks
|
|
16
|
+
- id: debug-statements
|
|
17
|
+
- id: detect-private-key
|
|
18
|
+
- id: trailing-whitespace
|
|
19
|
+
- id: end-of-file-fixer
|
|
20
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
21
|
+
rev: v0.3.2
|
|
22
|
+
hooks:
|
|
23
|
+
- id: ruff
|
|
24
|
+
args: [--fix]
|
|
25
|
+
- id: ruff-format
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
python 3.12.9 3.11.10 3.10.13 3.9.19
|
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cmsdials
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.2
|
|
4
4
|
Summary: The Python api client interface to DIALS service
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Author-email: gabrielmscampos@gmail.com
|
|
8
|
-
Requires-Python: >=3.9,<4.0
|
|
5
|
+
Author-email: Gabriel Moreira <gabriel.moreira@cern.ch>
|
|
6
|
+
Project-URL: Repository, https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py
|
|
9
7
|
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Classifier: Programming Language :: Python
|
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
|
13
8
|
Classifier: Programming Language :: Python :: 3.9
|
|
14
9
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
-
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: requests<3.0.0,>=2.31.0
|
|
16
|
+
Requires-Dist: urllib3<2.0.0,>=1.26.16
|
|
17
|
+
Requires-Dist: pydantic<3.0.0,>=2.8.2
|
|
18
18
|
Provides-Extra: pandas
|
|
19
|
+
Requires-Dist: pandas>=1.5.3; extra == "pandas"
|
|
19
20
|
Provides-Extra: tqdm
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
|
|
22
|
-
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
23
|
-
Requires-Dist: tqdm (>=4.66.1) ; extra == "tqdm"
|
|
24
|
-
Requires-Dist: urllib3 (>=1.26.16,<2.0.0)
|
|
25
|
-
Project-URL: Repository, https://github.com/cms-DQM/dials-py
|
|
26
|
-
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: tqdm>=4.66.1; extra == "tqdm"
|
|
22
|
+
Dynamic: license-file
|
|
27
23
|
|
|
28
24
|

|
|
29
25
|

|
|
@@ -385,4 +381,3 @@ Then, to build and publish in one go you can do:
|
|
|
385
381
|
```bash
|
|
386
382
|
poetry publish --build
|
|
387
383
|
```
|
|
388
|
-
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
6
|
+
TYPE_CHECKING = False
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
11
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
12
|
+
else:
|
|
13
|
+
VERSION_TUPLE = object
|
|
14
|
+
|
|
15
|
+
version: str
|
|
16
|
+
__version__: str
|
|
17
|
+
__version_tuple__: VERSION_TUPLE
|
|
18
|
+
version_tuple: VERSION_TUPLE
|
|
19
|
+
|
|
20
|
+
__version__ = version = '1.7.2'
|
|
21
|
+
__version_tuple__ = version_tuple = (1, 7, 2)
|
|
@@ -23,10 +23,7 @@ class AuthClient(BaseAPIClient):
|
|
|
23
23
|
endpoint_url = self.api_url + "auth/new-device/"
|
|
24
24
|
response = requests.get(
|
|
25
25
|
url=endpoint_url,
|
|
26
|
-
headers={
|
|
27
|
-
"accept": "application/json",
|
|
28
|
-
"User-Agent": self._build_user_agent()
|
|
29
|
-
},
|
|
26
|
+
headers={"accept": "application/json", "User-Agent": self._build_user_agent()},
|
|
30
27
|
timeout=self.default_timeout,
|
|
31
28
|
)
|
|
32
29
|
response.raise_for_status()
|
|
@@ -40,7 +37,7 @@ class AuthClient(BaseAPIClient):
|
|
|
40
37
|
headers={
|
|
41
38
|
"accept": "application/json",
|
|
42
39
|
"Content-Type": "application/json",
|
|
43
|
-
"User-Agent": self._build_user_agent()
|
|
40
|
+
"User-Agent": self._build_user_agent(),
|
|
44
41
|
},
|
|
45
42
|
json={"device_code": device_code},
|
|
46
43
|
timeout=self.default_timeout,
|
|
@@ -67,7 +64,7 @@ class AuthClient(BaseAPIClient):
|
|
|
67
64
|
"accept": "application/json",
|
|
68
65
|
"Content-Type": "application/json",
|
|
69
66
|
"Authorization": f"{token_type} {access_token}",
|
|
70
|
-
"User-Agent": self._build_user_agent()
|
|
67
|
+
"User-Agent": self._build_user_agent(),
|
|
71
68
|
},
|
|
72
69
|
json={"refresh_token": refresh_token},
|
|
73
70
|
timeout=self.default_timeout,
|
|
@@ -23,14 +23,13 @@ class OMSProxyClient(BaseAPIClient):
|
|
|
23
23
|
self.creds = creds
|
|
24
24
|
|
|
25
25
|
def _build_headers(self) -> dict:
|
|
26
|
-
base = {
|
|
27
|
-
"Accept": "application/json",
|
|
28
|
-
"User-Agent": self._build_user_agent()
|
|
29
|
-
}
|
|
26
|
+
base = {"Accept": "application/json", "User-Agent": self._build_user_agent()}
|
|
30
27
|
self.creds.before_request(base)
|
|
31
28
|
return base
|
|
32
29
|
|
|
33
|
-
def query(
|
|
30
|
+
def query(
|
|
31
|
+
self, endpoint: str, filters: list[OMSFilter], pages: Optional[list[OMSPage]] = None, retries=DEFAULT_RETRIES
|
|
32
|
+
):
|
|
34
33
|
headers = self._build_headers()
|
|
35
34
|
endpoint_url = self.api_url + self.lookup_url
|
|
36
35
|
|
|
@@ -84,10 +84,7 @@ class BaseAuthorizedAPIClient(BaseAPIClient):
|
|
|
84
84
|
self.workspace = workspace
|
|
85
85
|
|
|
86
86
|
def _build_headers(self) -> dict:
|
|
87
|
-
base = {
|
|
88
|
-
"Accept": "application/json",
|
|
89
|
-
"User-Agent": self._build_user_agent()
|
|
90
|
-
}
|
|
87
|
+
base = {"Accept": "application/json", "User-Agent": self._build_user_agent()}
|
|
91
88
|
if self.workspace is not None:
|
|
92
89
|
base["Workspace"] = self.workspace
|
|
93
90
|
self.creds.before_request(base)
|