nci-cidc-api-modules 1.1.14__tar.gz → 1.1.16__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 (37) hide show
  1. {nci_cidc_api_modules-1.1.14/nci_cidc_api_modules.egg-info → nci_cidc_api_modules-1.1.16}/PKG-INFO +2 -2
  2. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/emails.py +25 -12
  3. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16/nci_cidc_api_modules.egg-info}/PKG-INFO +2 -2
  4. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/nci_cidc_api_modules.egg-info/requires.txt +1 -1
  5. nci_cidc_api_modules-1.1.16/pyproject.toml +10 -0
  6. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/requirements.modules.txt +1 -1
  7. nci_cidc_api_modules-1.1.14/pyproject.toml +0 -71
  8. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/LICENSE +0 -0
  9. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/MANIFEST.in +0 -0
  10. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/README.md +0 -0
  11. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/config/__init__.py +0 -0
  12. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/config/db.py +0 -0
  13. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/config/logging.py +0 -0
  14. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/config/secrets.py +0 -0
  15. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/config/settings.py +0 -0
  16. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/csms/__init__.py +0 -0
  17. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/csms/auth.py +0 -0
  18. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/__init__.py +0 -0
  19. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/csms_api.py +0 -0
  20. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/files/__init__.py +0 -0
  21. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/files/details.py +0 -0
  22. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/files/facets.py +0 -0
  23. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/migrations.py +0 -0
  24. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/models.py +0 -0
  25. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/models/schemas.py +0 -0
  26. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/__init__.py +0 -0
  27. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/auth.py +0 -0
  28. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/gcloud_client.py +0 -0
  29. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/jose.py +0 -0
  30. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/cidc_api/shared/rest_utils.py +0 -0
  31. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/nci_cidc_api_modules.egg-info/SOURCES.txt +0 -0
  32. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/nci_cidc_api_modules.egg-info/dependency_links.txt +0 -0
  33. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/nci_cidc_api_modules.egg-info/not-zip-safe +0 -0
  34. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/nci_cidc_api_modules.egg-info/top_level.txt +0 -0
  35. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/setup.cfg +0 -0
  36. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/setup.py +0 -0
  37. {nci_cidc_api_modules-1.1.14 → nci_cidc_api_modules-1.1.16}/tests/test_api.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nci_cidc_api_modules
3
- Version: 1.1.14
3
+ Version: 1.1.16
4
4
  Summary: SQLAlchemy data models and configuration tools used in the NCI CIDC API
5
5
  Home-page: https://github.com/NCI-CIDC/cidc-api-gae
6
6
  License: MIT license
@@ -26,7 +26,7 @@ Requires-Dist: numpy<2,>=1.16.5
26
26
  Requires-Dist: pandas==1.5.3
27
27
  Requires-Dist: python-dotenv==0.10.3
28
28
  Requires-Dist: requests==2.32.3
29
- Requires-Dist: jinja2==3.1.5
29
+ Requires-Dist: jinja2==3.1.6
30
30
  Requires-Dist: certifi==2024.7.4
31
31
  Requires-Dist: nci-cidc-schemas==0.27.09
32
32
  Dynamic: description
@@ -1,14 +1,11 @@
1
1
  """Template functions for CIDC email bodies."""
2
2
 
3
3
  import html
4
- import base64
5
4
  from functools import wraps
6
- from typing import Dict, Union
7
-
8
- from cidc_schemas.prism import generate_analysis_configs_from_upload_patch
5
+ from typing import List
9
6
 
10
7
  from . import gcloud_client
11
- from ..config.settings import ENV, GOOGLE_ACL_DATA_BUCKET
8
+ from ..config.settings import ENV
12
9
 
13
10
  # emails this list for
14
11
  # - new user registration,
@@ -87,14 +84,12 @@ def new_user_registration(email: str) -> dict:
87
84
  @sendable
88
85
  def new_upload_alert(upload, full_metadata) -> dict:
89
86
  """Alert the CIDC administrators that an upload succeeded."""
90
- pipeline_configs: Dict[str, Union[bytes, str]] = generate_analysis_configs_from_upload_patch(
91
- full_metadata,
92
- upload.metadata_patch,
93
- upload.upload_type,
94
- GOOGLE_ACL_DATA_BUCKET,
95
- )
87
+ possible_manifest_info = ""
88
+ if upload.metadata_patch and "shipments" in upload.metadata_patch and upload.metadata_patch["shipments"]:
89
+ manifest_id = upload.metadata_patch["shipments"][0].get("manifest_id")
90
+ possible_manifest_info = f" manifest {manifest_id}"
96
91
 
97
- subject = f"[UPLOAD SUCCESS]({ENV}) {upload.upload_type} uploaded to {upload.trial_id}"
92
+ subject = f"[UPLOAD SUCCESS]({ENV}) {upload.upload_type}{possible_manifest_info} uploaded to {upload.trial_id}"
98
93
 
99
94
  html_content = f"""
100
95
  <ul>
@@ -137,3 +132,21 @@ def intake_metadata(user, trial_id: str, assay_type: str, description: str, xlsx
137
132
  }
138
133
 
139
134
  return email
135
+
136
+
137
+ def notify_manifest_errors(subject_message: str, errors: List[str], send_email=True) -> dict:
138
+ """Alert the CIDC administrators of errors in an attempted upload."""
139
+ subject = f"[UPLOAD FAILURE]({ENV}) {subject_message}"
140
+ html_content = f"<ul>{''.join(f'<li>{error}</li>' for error in errors)}</ul>"
141
+ return notify_mailing_list(subject, html_content, send_email=send_email)
142
+
143
+
144
+ @sendable
145
+ def notify_mailing_list(subject: str, html_content: str) -> dict:
146
+ """Generic notification to the CIDC administrators based on info passed."""
147
+ email = {
148
+ "to_emails": CIDC_MAILING_LIST,
149
+ "subject": subject,
150
+ "html_content": html_content,
151
+ }
152
+ return email
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nci_cidc_api_modules
3
- Version: 1.1.14
3
+ Version: 1.1.16
4
4
  Summary: SQLAlchemy data models and configuration tools used in the NCI CIDC API
5
5
  Home-page: https://github.com/NCI-CIDC/cidc-api-gae
6
6
  License: MIT license
@@ -26,7 +26,7 @@ Requires-Dist: numpy<2,>=1.16.5
26
26
  Requires-Dist: pandas==1.5.3
27
27
  Requires-Dist: python-dotenv==0.10.3
28
28
  Requires-Dist: requests==2.32.3
29
- Requires-Dist: jinja2==3.1.5
29
+ Requires-Dist: jinja2==3.1.6
30
30
  Requires-Dist: certifi==2024.7.4
31
31
  Requires-Dist: nci-cidc-schemas==0.27.09
32
32
  Dynamic: description
@@ -17,6 +17,6 @@ numpy<2,>=1.16.5
17
17
  pandas==1.5.3
18
18
  python-dotenv==0.10.3
19
19
  requests==2.32.3
20
- jinja2==3.1.5
20
+ jinja2==3.1.6
21
21
  certifi==2024.7.4
22
22
  nci-cidc-schemas==0.27.09
@@ -0,0 +1,10 @@
1
+ [tool.black]
2
+ exclude = "migrations"
3
+ target-version = ["py39"]
4
+ line-length = 120
5
+
6
+
7
+ [tool.pytest.ini_options]
8
+ minversion = "6.0"
9
+ # configure a webdriver for testing Dash dashboards
10
+ # addopts = "--webdriver Chrome --headless"
@@ -17,6 +17,6 @@ numpy>=1.16.5,<2
17
17
  pandas==1.5.3
18
18
  python-dotenv==0.10.3
19
19
  requests==2.32.3
20
- jinja2==3.1.5
20
+ jinja2==3.1.6
21
21
  certifi==2024.7.4
22
22
  nci-cidc-schemas==0.27.09
@@ -1,71 +0,0 @@
1
- [tool.black]
2
- exclude = "migrations"
3
- target-version = ["py39"]
4
- line-length = 120
5
-
6
-
7
- [tool.pytest.ini_options]
8
- minversion = "6.0"
9
- # configure a webdriver for testing Dash dashboards
10
- # addopts = "--webdriver Chrome --headless"
11
-
12
- [tool.poetry]
13
- name = "cidc-api-gae"
14
- version = "1.0.2"
15
- description = ""
16
- authors = []
17
- readme = "README.md"
18
-
19
- [tool.poetry.dependencies]
20
- python = ">3.9.0,<3.9.1 || >3.9.1,<3.10"
21
- flask-cors = "5.0.0"
22
- flask-cachecontrol = "0.3.0"
23
- six = "1.13.0"
24
- joserfc = "1.0.0"
25
- psycopg2-binary = ">=2,<3"
26
- packaging = ">=20.0.0"
27
- protobuf = "3.20.3"
28
- gunicorn = "^22.0.0"
29
- gevent = "23.9.1"
30
- psycogreen = "1.0.2"
31
- webargs = "6.0.0"
32
- dash = "2.15.0"
33
- markupsafe = "2.1.5"
34
- pyarrow="14.0.1"
35
- certifi="2024.7.4"
36
-
37
- [tool.poetry.group.dev.dependencies]
38
- pytest = ">=8.0.1,<8.1.0"
39
- black = "24.3.0"
40
- pre-commit = "2.9.2"
41
- ipython = "8.13.0"
42
- flask-shell-ipython = "0.5.1"
43
- webdriver-manager = "^4.0.1"
44
- percy = "2.0.2"
45
- selenium = "3.141.0"
46
- bs4 = "0.0.1"
47
-
48
-
49
- [tool.poetry.group.modules.dependencies]
50
- werkzeug = "3.0.6"
51
- flask = "2.2.5"
52
- flask-migrate = "2.5.2"
53
- flask-sqlalchemy = "2.5.1"
54
- sqlalchemy = ">=1.3.0,<1.4.0"
55
- marshmallow = "3.19.0"
56
- marshmallow-sqlalchemy = "0.22.3"
57
- google-cloud-storage = "2.18.0"
58
- google-cloud-secret-manager = "2.20.1"
59
- google-cloud-pubsub = "2.22.0"
60
- google-cloud-bigquery = "3.18.0"
61
- google-api-python-client = "2.64.0"
62
- pandas = "1.5.3"
63
- python-dotenv = "0.10.3"
64
- requests = "2.32.3"
65
- jinja2 = "3.1.5"
66
- nci-cidc-schemas = "0.26.36"
67
-
68
- # keep the existing build step
69
- # [build-system]
70
- # requires = ["poetry-core"]
71
- # build-backend = "poetry.core.masonry.api"