nci-cidc-api-modules 1.2.7__tar.gz → 1.2.9__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 (34) hide show
  1. {nci_cidc_api_modules-1.2.7/nci_cidc_api_modules.egg-info → nci_cidc_api_modules-1.2.9}/PKG-INFO +1 -1
  2. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/models.py +26 -11
  3. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9/nci_cidc_api_modules.egg-info}/PKG-INFO +1 -1
  4. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/LICENSE +0 -0
  5. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/MANIFEST.in +0 -0
  6. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/README.md +0 -0
  7. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/config/__init__.py +0 -0
  8. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/config/db.py +0 -0
  9. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/config/logging.py +0 -0
  10. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/config/secrets.py +0 -0
  11. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/config/settings.py +0 -0
  12. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/__init__.py +0 -0
  13. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/files/__init__.py +0 -0
  14. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/files/details.py +0 -0
  15. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/files/facets.py +0 -0
  16. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/migrations.py +0 -0
  17. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/models/schemas.py +0 -0
  18. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/__init__.py +0 -0
  19. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/auth.py +0 -0
  20. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/emails.py +0 -0
  21. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/file_handling.py +0 -0
  22. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/gcloud_client.py +0 -0
  23. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/jose.py +0 -0
  24. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/cidc_api/shared/rest_utils.py +0 -0
  25. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/nci_cidc_api_modules.egg-info/SOURCES.txt +0 -0
  26. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/nci_cidc_api_modules.egg-info/dependency_links.txt +0 -0
  27. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/nci_cidc_api_modules.egg-info/not-zip-safe +0 -0
  28. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/nci_cidc_api_modules.egg-info/requires.txt +0 -0
  29. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/nci_cidc_api_modules.egg-info/top_level.txt +0 -0
  30. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/pyproject.toml +0 -0
  31. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/requirements.modules.txt +0 -0
  32. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/setup.cfg +0 -0
  33. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/setup.py +0 -0
  34. {nci_cidc_api_modules-1.2.7 → nci_cidc_api_modules-1.2.9}/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.2.7
3
+ Version: 1.2.9
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
@@ -28,6 +28,7 @@ __all__ = [
28
28
  "JobFileCategories",
29
29
  "ValidationConfigs",
30
30
  "TRIAL_APPENDIX_A",
31
+ "TRIAL_APPENDIX_A_CELL_THAT_ENDS_THE_HEADER",
31
32
  "REQUEST_LETTER",
32
33
  "ADMIN_FILE_CATEGORIES",
33
34
  "FINAL_JOB_STATUS",
@@ -82,7 +83,6 @@ from sqlalchemy import (
82
83
  Boolean,
83
84
  CheckConstraint,
84
85
  Column,
85
- Date,
86
86
  DateTime,
87
87
  Enum,
88
88
  ForeignKey,
@@ -150,6 +150,10 @@ from ..shared.gcloud_client import (
150
150
  os.environ["TZ"] = "UTC"
151
151
  logger = get_logger(__name__)
152
152
 
153
+ # pylint: disable=protected-access,not-callable,no-value-for-parameter,too-many-positional-arguments
154
+ # pylint: disable=unsubscriptable-object,singleton-comparison,broad-exception-raised,redefined-builtin
155
+ # pylint: disable=arguments-renamed,logging-fstring-interpolation,disable=comparison-with-callable
156
+
153
157
 
154
158
  class FileGroups:
155
159
  pass
@@ -3243,7 +3247,8 @@ def upload_manifest_json(
3243
3247
 
3244
3248
  TRIAL_APPENDIX_A = "trial_appendix_a"
3245
3249
  REQUEST_LETTER = "request_letter"
3246
- ADMIN_FILE_CATEGORIES = [TRIAL_APPENDIX_A, REQUEST_LETTER]
3250
+ DETAILED_VALIDATION = "detailed_validation"
3251
+ ADMIN_FILE_CATEGORIES = [TRIAL_APPENDIX_A, REQUEST_LETTER, DETAILED_VALIDATION]
3247
3252
 
3248
3253
 
3249
3254
  class PreprocessedFiles(CommonColumns):
@@ -3391,8 +3396,8 @@ class PreprocessedFiles(CommonColumns):
3391
3396
  """
3392
3397
  if job_id is not None:
3393
3398
  return query.filter_by(job_id=job_id)
3394
- else:
3395
- return query.filter(cls.job_id.is_(None))
3399
+
3400
+ return query.filter(cls.job_id.is_(None))
3396
3401
 
3397
3402
 
3398
3403
  INGESTION_JOB_STATUSES = [
@@ -3415,6 +3420,7 @@ INGESTION_JOB_COLORS = {
3415
3420
  }
3416
3421
  # TODO If have "CANCELLED" concept or other final status, add here
3417
3422
  FINAL_JOB_STATUS = ["PUBLISHED"]
3423
+ TRIAL_APPENDIX_A_CELL_THAT_ENDS_THE_HEADER = "Data Category"
3418
3424
 
3419
3425
 
3420
3426
  class IngestionJobs(CommonColumns):
@@ -3455,16 +3461,16 @@ class IngestionJobs(CommonColumns):
3455
3461
  df = gcs_xlsx_or_csv_file_to_pandas_dataframe(GOOGLE_CLINICAL_DATA_BUCKET, appendix_a.object_url)
3456
3462
  categories = []
3457
3463
  headers_ended = False
3458
- for index, row in df.iterrows():
3464
+ for _index, row in df.iterrows():
3459
3465
  cell = str(row.iloc[0])
3460
3466
  if headers_ended:
3461
- if not cell == "nan" and cell not in categories and cell != "Specialized_Data":
3467
+ if cell != "nan" and cell not in categories:
3462
3468
  categories.append(cell)
3463
- elif cell == "PATIENT-LEVEL DATA":
3469
+ elif cell.lower() == TRIAL_APPENDIX_A_CELL_THAT_ENDS_THE_HEADER.lower():
3464
3470
  headers_ended = True
3465
- if "Data_Dictionary" not in categories:
3471
+ if "data_dictionary" not in categories:
3466
3472
  # Ensure Data_Dictionary is always a required file category
3467
- categories.append("Data_Dictionary")
3473
+ categories.append("data_dictionary")
3468
3474
  return categories
3469
3475
 
3470
3476
  @classmethod
@@ -3608,13 +3614,22 @@ class FileValidationErrors(CommonColumns):
3608
3614
  @classmethod
3609
3615
  @with_default_session
3610
3616
  def get_errors_for_job_sorted_by_file_id(cls, job_id: int, session: Session = None) -> list["FileValidationErrors"]:
3611
- return session.query(cls).filter(cls.job_id == job_id).order_by(cls.file_id.asc()).all()
3617
+ errors = (
3618
+ session.query(cls)
3619
+ .join(PreprocessedFiles)
3620
+ .filter(PreprocessedFiles.status == "current")
3621
+ .filter(cls.job_id == job_id)
3622
+ .order_by(cls.file_id.asc())
3623
+ .all()
3624
+ )
3625
+
3626
+ return errors
3612
3627
 
3613
3628
 
3614
3629
  class ValidationConfigs(CommonColumns):
3615
3630
  __tablename__ = "validation_configs"
3616
3631
 
3617
- data_label = Column(String, nullable=True)
3632
+ data_element = Column(String, nullable=True)
3618
3633
  validation = Column(String, nullable=True)
3619
3634
  scope = Column(String, nullable=True)
3620
3635
  active = Column(Boolean, nullable=False, default=True, server_default="true")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nci_cidc_api_modules
3
- Version: 1.2.7
3
+ Version: 1.2.9
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