cmsdials 1.2.0__tar.gz → 1.3.0__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 (41) hide show
  1. {cmsdials-1.2.0 → cmsdials-1.3.0}/PKG-INFO +1 -1
  2. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/file_index/models.py +1 -1
  3. cmsdials-1.3.0/cmsdials/clients/oms_proxy/client.py +46 -0
  4. cmsdials-1.3.0/cmsdials/clients/oms_proxy/models.py +14 -0
  5. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/cmsdials.py +2 -0
  6. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/filters.py +3 -0
  7. cmsdials-1.3.0/cmsdials/utils/__init__.py +0 -0
  8. {cmsdials-1.2.0 → cmsdials-1.3.0}/pyproject.toml +1 -1
  9. {cmsdials-1.2.0 → cmsdials-1.3.0}/LICENSE +0 -0
  10. {cmsdials-1.2.0 → cmsdials-1.3.0}/README.md +0 -0
  11. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/__init__.py +0 -0
  12. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/__init__.py +0 -0
  13. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/_base.py +0 -0
  14. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/bearer.py +0 -0
  15. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/client.py +0 -0
  16. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/exceptions.py +0 -0
  17. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/models.py +0 -0
  18. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/auth/secret_key.py +0 -0
  19. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/__init__.py +0 -0
  20. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/file_index/__init__.py +0 -0
  21. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/file_index/client.py +0 -0
  22. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h1d/__init__.py +0 -0
  23. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h1d/client.py +0 -0
  24. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h1d/models.py +0 -0
  25. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h2d/__init__.py +0 -0
  26. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h2d/client.py +0 -0
  27. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/h2d/models.py +0 -0
  28. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/lumisection/__init__.py +0 -0
  29. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/lumisection/client.py +0 -0
  30. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/lumisection/models.py +0 -0
  31. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/mes/__init__.py +0 -0
  32. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/mes/client.py +0 -0
  33. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/mes/models.py +0 -0
  34. {cmsdials-1.2.0/cmsdials/clients/run → cmsdials-1.3.0/cmsdials/clients/oms_proxy}/__init__.py +0 -0
  35. {cmsdials-1.2.0/cmsdials/utils → cmsdials-1.3.0/cmsdials/clients/run}/__init__.py +0 -0
  36. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/run/client.py +0 -0
  37. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/clients/run/models.py +0 -0
  38. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/utils/_json.py +0 -0
  39. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/utils/api_client.py +0 -0
  40. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/utils/base_model.py +0 -0
  41. {cmsdials-1.2.0 → cmsdials-1.3.0}/cmsdials/utils/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmsdials
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: The Python api client interface to DIALS service
5
5
  Home-page: https://github.com/cms-DQM/dials-py
6
6
  Author: Gabriel Moreira
@@ -14,7 +14,7 @@ class FileIndex(BaseModel):
14
14
  creation_date: datetime
15
15
  last_modification_date: datetime
16
16
  logical_file_name: str
17
- status: str = Field(..., max_length=15)
17
+ status: str = Field(..., max_length=255)
18
18
  err_trace: Optional[str] = Field(..., max_length=5000)
19
19
 
20
20
 
@@ -0,0 +1,46 @@
1
+ from typing import Optional
2
+
3
+ import requests
4
+ from requests.exceptions import HTTPError
5
+
6
+ from ...auth._base import BaseCredentials
7
+ from ...utils.api_client import BaseAPIClient
8
+ from ...utils.logger import logger
9
+ from .models import OMSFilter, OMSPage
10
+
11
+
12
+ class OMSProxyClient(BaseAPIClient):
13
+ default_timeout = 30
14
+ lookup_url = "oms-proxy/"
15
+
16
+ def __init__(
17
+ self,
18
+ creds: BaseCredentials,
19
+ *args: str,
20
+ **kwargs: str,
21
+ ) -> None:
22
+ super().__init__(*args, **kwargs)
23
+ self.creds = creds
24
+
25
+ def _build_headers(self) -> dict:
26
+ base = {"accept": "application/json"}
27
+ self.creds.before_request(base)
28
+ return base
29
+
30
+ def query(self, endpoint: str, filters: list[OMSFilter], pages: Optional[list[OMSPage]] = None):
31
+ headers = self._build_headers()
32
+ endpoint_url = self.api_url + self.lookup_url
33
+
34
+ # Format filters
35
+ filters = {f"filter[{_filter.attribute_name}][{_filter.operator}]": _filter.value for _filter in filters}
36
+ pages = {f"page[{page.attribute_name}]": page.value for page in pages} if pages and len(pages) > 0 else {}
37
+ params = {"endpoint": endpoint, **filters, **pages}
38
+
39
+ response = requests.get(endpoint_url, headers=headers, params=params, timeout=self.default_timeout)
40
+ try:
41
+ response.raise_for_status()
42
+ except HTTPError as err:
43
+ logger.info(f"Api raw response: {response.text}")
44
+ raise err
45
+
46
+ return response.json()
@@ -0,0 +1,14 @@
1
+ from typing import Literal, Union
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class OMSFilter(BaseModel):
7
+ attribute_name: str
8
+ value: Union[str, int, float]
9
+ operator: Literal["EQ", "NEQ", "LT", "GT", "LE", "GE", "LIKE"]
10
+
11
+
12
+ class OMSPage(BaseModel):
13
+ attribute_name: str
14
+ value: int
@@ -6,6 +6,7 @@ from .clients.h1d.client import LumisectionHistogram1DClient
6
6
  from .clients.h2d.client import LumisectionHistogram2DClient
7
7
  from .clients.lumisection.client import LumisectionClient
8
8
  from .clients.mes.client import MonitoringElementClient
9
+ from .clients.oms_proxy.client import OMSProxyClient
9
10
  from .clients.run.client import RunClient
10
11
 
11
12
 
@@ -17,3 +18,4 @@ class Dials:
17
18
  self.lumi = LumisectionClient(creds, workspace, *args, **kwargs)
18
19
  self.run = RunClient(creds, workspace, *args, **kwargs)
19
20
  self.mes = MonitoringElementClient(creds, workspace, *args, **kwargs)
21
+ self.oms = OMSProxyClient(creds, *args, **kwargs)
@@ -3,6 +3,7 @@ from .clients.h1d.models import LumisectionHistogram1DFilters
3
3
  from .clients.h2d.models import LumisectionHistogram2DFilters
4
4
  from .clients.lumisection.models import LumisectionFilters
5
5
  from .clients.mes.models import MEFilters
6
+ from .clients.oms_proxy.models import OMSFilter, OMSPage
6
7
  from .clients.run.models import RunFilters
7
8
 
8
9
 
@@ -13,4 +14,6 @@ __all__ = [
13
14
  "LumisectionFilters",
14
15
  "RunFilters",
15
16
  "MEFilters",
17
+ "OMSFilter",
18
+ "OMSPage",
16
19
  ]
File without changes
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cmsdials"
3
- version = "1.2.0"
3
+ version = "1.3.0"
4
4
  description = "The Python api client interface to DIALS service"
5
5
  authors = ["Gabriel Moreira <gabrielmscampos@gmail.com>"]
6
6
  readme = "README.md"
File without changes
File without changes
File without changes