cmsdials 1.8.0__tar.gz → 2.0.0rc2__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 (83) hide show
  1. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.gitlab-ci.yml +24 -10
  2. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/PKG-INFO +2 -1
  3. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/README.md +1 -0
  4. cmsdials-2.0.0rc2/cmsdials/_version.py +34 -0
  5. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/ml_bad_lumisection/client.py +13 -7
  6. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/ml_bad_lumisection/models.py +1 -2
  7. cmsdials-2.0.0rc2/cmsdials/clients/ml_models_index/models.py +47 -0
  8. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials.egg-info/PKG-INFO +2 -1
  9. cmsdials-1.8.0/cmsdials/_version.py +0 -21
  10. cmsdials-1.8.0/cmsdials/clients/ml_models_index/models.py +0 -26
  11. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.coveragerc +0 -0
  12. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.editorconfig +0 -0
  13. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.gitignore +0 -0
  14. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.mailmap +0 -0
  15. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.pre-commit-config.yaml +0 -0
  16. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/.tool-versions +0 -0
  17. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/LICENSE +0 -0
  18. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/__init__.py +0 -0
  19. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/__init__.py +0 -0
  20. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/_base.py +0 -0
  21. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/bearer.py +0 -0
  22. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/client.py +0 -0
  23. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/exceptions.py +0 -0
  24. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/models.py +0 -0
  25. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/auth/secret_key.py +0 -0
  26. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/__init__.py +0 -0
  27. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/dataset_index/__init__.py +0 -0
  28. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/dataset_index/client.py +0 -0
  29. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/dataset_index/models.py +0 -0
  30. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/file_index/__init__.py +0 -0
  31. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/file_index/client.py +0 -0
  32. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/file_index/models.py +0 -0
  33. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h1d/__init__.py +0 -0
  34. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h1d/client.py +0 -0
  35. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h1d/models.py +0 -0
  36. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h2d/__init__.py +0 -0
  37. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h2d/client.py +0 -0
  38. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/h2d/models.py +0 -0
  39. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/lumisection/__init__.py +0 -0
  40. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/lumisection/client.py +0 -0
  41. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/lumisection/models.py +0 -0
  42. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/mes/__init__.py +0 -0
  43. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/mes/client.py +0 -0
  44. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/mes/models.py +0 -0
  45. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/ml_bad_lumisection/__init__.py +0 -0
  46. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/ml_models_index/__init__.py +0 -0
  47. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/ml_models_index/client.py +0 -0
  48. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/oms_proxy/__init__.py +0 -0
  49. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/oms_proxy/client.py +0 -0
  50. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/oms_proxy/models.py +0 -0
  51. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/run/__init__.py +0 -0
  52. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/run/client.py +0 -0
  53. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/clients/run/models.py +0 -0
  54. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/cmsdials.py +0 -0
  55. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/filters.py +0 -0
  56. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/utils/__init__.py +0 -0
  57. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/utils/_json.py +0 -0
  58. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/utils/api_client.py +0 -0
  59. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/utils/base_model.py +0 -0
  60. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials/utils/logger.py +0 -0
  61. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials.egg-info/SOURCES.txt +0 -0
  62. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials.egg-info/dependency_links.txt +0 -0
  63. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials.egg-info/requires.txt +0 -0
  64. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/cmsdials.egg-info/top_level.txt +0 -0
  65. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/mypy.ini +0 -0
  66. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/pyproject.toml +0 -0
  67. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/pytest.ini +0 -0
  68. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/ruff.toml +0 -0
  69. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/setup.cfg +0 -0
  70. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/__init__.py +0 -0
  71. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_auth_client.py +0 -0
  72. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_file_index_client.py +0 -0
  73. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_h1d_client.py +0 -0
  74. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_h2d_client.py +0 -0
  75. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_lumisection_client.py +0 -0
  76. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_mes_client.py +0 -0
  77. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_oms_proxy_client.py +0 -0
  78. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_resume.py +0 -0
  79. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/test_run_client.py +0 -0
  80. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/integration/utils.py +0 -0
  81. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/unit/__init__.py +0 -0
  82. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tests/unit/test_base_api_client.py +0 -0
  83. {cmsdials-1.8.0 → cmsdials-2.0.0rc2}/tox.ini +0 -0
@@ -65,6 +65,7 @@ create_release:
65
65
  rules:
66
66
  - if: $CI_COMMIT_TAG
67
67
  variables:
68
+ # GITLAB_TOKEN has to be set in CI/CD variables - Project Access Token with api access permission
68
69
  GITLAB_HOST: $CI_SERVER_FQDN
69
70
  before_script:
70
71
  - apk add jq --no-cache
@@ -75,26 +76,39 @@ create_release:
75
76
  # Fetch all tags
76
77
  git fetch --tags
77
78
 
78
- # Get the previous tag
79
- PREV_TAG=$(git describe --tags --abbrev=0 ${CI_COMMIT_TAG}^)
80
- echo "Generating release for ${CI_COMMIT_TAG} (MRs since ${PREV_TAG})"
79
+ # Try to get the previous tag
80
+ PREV_TAG=$(git describe --tags --abbrev=0 "${CI_COMMIT_TAG}^" 2>/dev/null || true)
81
+
82
+ if [ -z "$PREV_TAG" ]; then
83
+ echo "Generating release for ${CI_COMMIT_TAG} - No previous tag found, assuming this is the first release."
84
+ COMMIT_RANGE_LINEAR_COMP=""
85
+ COMMIT_RANGE_SYMMETRIC_DIFF=""
86
+ else
87
+ echo "Generating release for ${CI_COMMIT_TAG} (MRs since ${PREV_TAG})"
88
+ COMMIT_RANGE_LINEAR_COMP="${PREV_TAG}..${CI_COMMIT_TAG}"
89
+ COMMIT_RANGE_SYMMETRIC_DIFF="${PREV_TAG}...${CI_COMMIT_TAG}"
90
+ fi
81
91
 
82
92
  # Setup auth
83
93
  glab auth login --token "$GITLAB_TOKEN"
84
94
 
85
95
  # Generate release notes
86
- echo "### Changes since ${PREV_TAG}:" > release_notes.md
87
- echo "" >> release_notes.md
88
- echo "[${PREV_TAG}...${CI_COMMIT_TAG}]($CI_PROJECT_URL/-/compare/${PREV_TAG}...${CI_COMMIT_TAG})" >> release_notes.md
89
- echo "" >> release_notes.md
96
+ if [ -z "$COMMIT_RANGE_LINEAR_COMP" ]; then
97
+ echo "### First release: ${CI_COMMIT_TAG}:" > release_notes.md
98
+ echo "" >> release_notes.md
99
+ else
100
+ echo "### Changes since ${PREV_TAG}:" > release_notes.md
101
+ echo "" >> release_notes.md
102
+ echo "[${COMMIT_RANGE_SYMMETRIC_DIFF}]($CI_PROJECT_URL/-/compare/${COMMIT_RANGE_SYMMETRIC_DIFF})" >> release_notes.md
103
+ echo "" >> release_notes.md
104
+ fi
90
105
 
91
106
  # Get MR numbers between the two tags by parsing commit messages
92
- MR_NUMBERS=$(git log $PREV_TAG..$CI_COMMIT_TAG --merges --pretty=format:"%b" | grep -oE '!([0-9]+)' | tr -d '!' | sort -u)
107
+ MR_NUMBERS=$(git log ${COMMIT_RANGE_LINEAR_COMP} --merges --pretty=format:"%b" | grep -oE '!([0-9]+)' | tr -d '!' | sort -u)
93
108
 
94
109
  # Update release notes, fallback to commit list if merge request list is empty
95
- # The default merge commit message has this at the end: See merge request gamoreir/test-release-ci!3
96
110
  if [ -z "$MR_NUMBERS" ]; then
97
- COMMIT_LIST=$(git log --pretty=format:"- #%h from %an <%ae>: %s" ${PREV_TAG}..${CI_COMMIT_TAG})
111
+ COMMIT_LIST=$(git log --pretty=format:"- #%h from %an <%ae>: %s" ${COMMIT_RANGE_LINEAR_COMP})
98
112
  echo "${COMMIT_LIST}" >> release_notes.md
99
113
  else
100
114
  for mr in $MR_NUMBERS; do
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmsdials
3
- Version: 1.8.0
3
+ Version: 2.0.0rc2
4
4
  Summary: The Python api client interface to DIALS service
5
5
  Author-email: Gabriel Moreira <gabriel.moreira@cern.ch>
6
6
  Project-URL: Repository, https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py
@@ -372,6 +372,7 @@ Do not worry. The GitLab CI is configured to automatically publish the package o
372
372
 
373
373
  > [!NOTE]
374
374
  > For this to work the CI/CD variables named `UV_PUBLISH_TOKEN`, `GITLAB_TOKEN` should be registered in gitlab. The `UV_PUBLISH_TOKEN` is a api token access of CMSDQM organization and the `GITLAB_TOKEN` is a Project Access Token with api read/write rights, which is needed to read merge requests using the `glab-cli`.
375
+ > https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py/-/settings/access_tokens
375
376
 
376
377
  #### Manual
377
378
 
@@ -349,6 +349,7 @@ Do not worry. The GitLab CI is configured to automatically publish the package o
349
349
 
350
350
  > [!NOTE]
351
351
  > For this to work the CI/CD variables named `UV_PUBLISH_TOKEN`, `GITLAB_TOKEN` should be registered in gitlab. The `UV_PUBLISH_TOKEN` is a api token access of CMSDQM organization and the `GITLAB_TOKEN` is a Project Access Token with api read/write rights, which is needed to read merge requests using the `glab-cli`.
352
+ > https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py/-/settings/access_tokens
352
353
 
353
354
  #### Manual
354
355
 
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '2.0.0rc2'
32
+ __version_tuple__ = version_tuple = (2, 0, 0, 'rc2')
33
+
34
+ __commit_id__ = commit_id = 'g20833ad4f'
@@ -18,18 +18,24 @@ class MLBadLumisectionClient(
18
18
  edp = f"{model_id}/{dataset_id}/{run_number}/{ls_number}/{me_id}/"
19
19
  return super()._get(edp, **kwargs)
20
20
 
21
- def cert_json(self, model_id__in: list[int], dataset_id__in: list[int], run_number__in: list[int], **kwargs):
22
- edp = "cert-json/"
21
+ def __json_params_builder(
22
+ self, model_id__in: list[int], dataset_id__in: list[int], run_number__in: list[int], **kwargs
23
+ ):
23
24
  midin = ",".join(str(v) for v in model_id__in)
24
25
  didin = ",".join(str(v) for v in dataset_id__in)
25
26
  ridin = ",".join(str(v) for v in run_number__in)
26
- params = {"model_id__in": midin, "dataset_id__in": didin, "run_number__in": ridin}
27
+ return {"model_id__in": midin, "dataset_id__in": didin, "run_number__in": ridin}
28
+
29
+ def cert_json(self, model_id__in: list[int], dataset_id__in: list[int], run_number__in: list[int], **kwargs):
30
+ edp = "cert-json/"
31
+ params = self.__json_params_builder(
32
+ model_id__in=model_id__in, dataset_id__in=dataset_id__in, run_number__in=run_number__in
33
+ )
27
34
  return super()._get(edp, params=params, return_raw_json=True, **kwargs)
28
35
 
29
36
  def golden_json(self, model_id__in: list[int], dataset_id__in: list[int], run_number__in: list[int], **kwargs):
30
37
  edp = "golden-json/"
31
- midin = ",".join(str(v) for v in model_id__in)
32
- didin = ",".join(str(v) for v in dataset_id__in)
33
- ridin = ",".join(str(v) for v in run_number__in)
34
- params = {"model_id__in": midin, "dataset_id__in": didin, "run_number__in": ridin}
38
+ params = self.__json_params_builder(
39
+ model_id__in=model_id__in, dataset_id__in=dataset_id__in, run_number__in=run_number__in
40
+ )
35
41
  return super()._get(edp, params=params, return_raw_json=True, **kwargs)
@@ -11,8 +11,7 @@ class MLBadLumisection(BaseModel):
11
11
  file_id: int
12
12
  run_number: int
13
13
  ls_number: int
14
- me_id: int
15
- mse: float
14
+ metric_value: float
16
15
 
17
16
 
18
17
  class PaginatedMLBadLumisectionList(PaginatedBaseModel[MLBadLumisection]):
@@ -0,0 +1,47 @@
1
+ from datetime import datetime
2
+ from typing import Optional
3
+
4
+ from pydantic import BaseModel
5
+
6
+ from ...utils.base_model import PaginatedBaseFilters, PaginatedBaseModel
7
+
8
+
9
+ class MLModelsIndex(BaseModel):
10
+ id: int
11
+ name: str
12
+ revision: int
13
+ ready: bool
14
+ active: bool
15
+ type: str
16
+ anomaly_threshold: Optional[float]
17
+ builtin_threshold: bool
18
+ description: str
19
+ flagging_key: Optional[str]
20
+ input_signature: list[dict]
21
+ metric_key: str
22
+ output_signature: list[dict]
23
+ tags: Optional[list[dict]]
24
+ isvc_service_name: Optional[str]
25
+ isvc_yaml: Optional[str]
26
+ created_by: str
27
+ modified_by: str
28
+ created_at: datetime
29
+ modified_at: datetime
30
+
31
+
32
+ class PaginatedMLModelsIndexList(PaginatedBaseModel[MLModelsIndex]):
33
+ pass
34
+
35
+
36
+ class MLModelsIndexFilters(PaginatedBaseFilters):
37
+ id: Optional[int] = None
38
+ id__in: Optional[list[int]] = None
39
+ name: Optional[str] = None
40
+ name__regex: Optional[str] = None
41
+ active: Optional[bool] = None
42
+ ready: Optional[bool] = None
43
+ type: Optional[str] = None
44
+ input_signature_contains_me: Optional[str] = None
45
+ input_signature_contains_me__regex: Optional[str] = None
46
+ tag_name: Optional[str] = None
47
+ tag_value: Optional[str] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmsdials
3
- Version: 1.8.0
3
+ Version: 2.0.0rc2
4
4
  Summary: The Python api client interface to DIALS service
5
5
  Author-email: Gabriel Moreira <gabriel.moreira@cern.ch>
6
6
  Project-URL: Repository, https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py
@@ -372,6 +372,7 @@ Do not worry. The GitLab CI is configured to automatically publish the package o
372
372
 
373
373
  > [!NOTE]
374
374
  > For this to work the CI/CD variables named `UV_PUBLISH_TOKEN`, `GITLAB_TOKEN` should be registered in gitlab. The `UV_PUBLISH_TOKEN` is a api token access of CMSDQM organization and the `GITLAB_TOKEN` is a Project Access Token with api read/write rights, which is needed to read merge requests using the `glab-cli`.
375
+ > https://gitlab.cern.ch/cms-dqmdc/libraries/dials-py/-/settings/access_tokens
375
376
 
376
377
  #### Manual
377
378
 
@@ -1,21 +0,0 @@
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.8.0'
21
- __version_tuple__ = version_tuple = (1, 8, 0)
@@ -1,26 +0,0 @@
1
- from typing import Optional
2
-
3
- from pydantic import BaseModel
4
-
5
- from ...utils.base_model import PaginatedBaseFilters, PaginatedBaseModel
6
-
7
-
8
- class MLModelsIndex(BaseModel):
9
- model_id: int
10
- filename: str
11
- target_me: str
12
- active: bool
13
-
14
-
15
- class PaginatedMLModelsIndexList(PaginatedBaseModel[MLModelsIndex]):
16
- pass
17
-
18
-
19
- class MLModelsIndexFilters(PaginatedBaseFilters):
20
- model_id: Optional[int] = None
21
- model_id__in: Optional[list[int]] = None
22
- filename: Optional[str] = None
23
- filename__regex: Optional[str] = None
24
- target_me: Optional[str] = None
25
- target_me__regex: Optional[str] = None
26
- active: Optional[bool] = None
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes