nci-cidc-api-modules 1.2.42__py3-none-any.whl → 1.2.44__py3-none-any.whl
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.
- cidc_api/__init__.py +1 -1
- cidc_api/models/data.py +1 -1
- cidc_api/models/db/stage1/additional_treatment_orm.py +0 -1
- cidc_api/models/db/stage1/adverse_event_orm.py +0 -1
- cidc_api/models/db/stage1/baseline_clinical_assessment_orm.py +0 -1
- cidc_api/models/db/stage1/comorbidity_orm.py +0 -1
- cidc_api/models/db/stage1/consent_group_orm.py +0 -1
- cidc_api/models/db/stage1/demographic_orm.py +0 -1
- cidc_api/models/db/stage1/disease_orm.py +0 -1
- cidc_api/models/db/stage1/exposure_orm.py +0 -1
- cidc_api/models/db/stage1/gvhd_diagnosis_acute_orm.py +0 -1
- cidc_api/models/db/stage1/gvhd_diagnosis_chronic_orm.py +0 -1
- cidc_api/models/db/stage1/gvhd_organ_acute_orm.py +0 -1
- cidc_api/models/db/stage1/gvhd_organ_chronic_orm.py +0 -1
- cidc_api/models/db/stage1/medical_history_orm.py +0 -1
- cidc_api/models/db/stage1/other_malignancy_orm.py +0 -1
- cidc_api/models/db/stage1/participant_orm.py +1 -2
- cidc_api/models/db/stage1/prior_treatment_orm.py +0 -1
- cidc_api/models/db/stage1/radiotherapy_dose_orm.py +0 -1
- cidc_api/models/db/stage1/response_by_system_orm.py +0 -1
- cidc_api/models/db/stage1/response_orm.py +0 -1
- cidc_api/models/db/stage1/specimen_orm.py +0 -1
- cidc_api/models/db/stage1/stem_cell_transplant_orm.py +0 -1
- cidc_api/models/db/stage1/surgery_orm.py +0 -1
- cidc_api/models/db/stage1/therapy_agent_dose_orm.py +0 -1
- cidc_api/models/db/stage1/treatment_orm.py +0 -1
- cidc_api/models/db/stage1/trial_orm.py +0 -1
- cidc_api/models/db/stage2/additional_treatment_orm.py +0 -1
- cidc_api/models/db/stage2/administrative_person_orm.py +0 -1
- cidc_api/models/db/stage2/administrative_role_assignment_orm.py +0 -1
- cidc_api/models/db/stage2/adverse_event_orm.py +0 -1
- cidc_api/models/db/stage2/arm_orm.py +0 -1
- cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py +0 -1
- cidc_api/models/db/stage2/cohort_orm.py +0 -1
- cidc_api/models/db/stage2/comorbidity_orm.py +0 -1
- cidc_api/models/db/stage2/consent_group_orm.py +0 -1
- cidc_api/models/db/stage2/contact_orm.py +0 -1
- cidc_api/models/db/stage2/demographic_orm.py +0 -1
- cidc_api/models/db/stage2/disease_orm.py +0 -1
- cidc_api/models/db/stage2/exposure_orm.py +0 -1
- cidc_api/models/db/stage2/file_orm.py +0 -1
- cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py +0 -1
- cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py +0 -1
- cidc_api/models/db/stage2/gvhd_organ_acute_orm.py +0 -1
- cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py +0 -1
- cidc_api/models/db/stage2/institution_orm.py +0 -1
- cidc_api/models/db/stage2/medical_history_orm.py +0 -1
- cidc_api/models/db/stage2/other_clinical_endpoint_orm.py +0 -1
- cidc_api/models/db/stage2/other_malignancy_orm.py +0 -1
- cidc_api/models/db/stage2/participant_orm.py +0 -1
- cidc_api/models/db/stage2/prior_treatment_orm.py +0 -1
- cidc_api/models/db/stage2/publication_orm.py +0 -1
- cidc_api/models/db/stage2/radiotherapy_dose_orm.py +0 -1
- cidc_api/models/db/stage2/response_by_system_orm.py +0 -1
- cidc_api/models/db/stage2/response_orm.py +0 -1
- cidc_api/models/db/stage2/shipment_orm.py +0 -1
- cidc_api/models/db/stage2/shipment_specimen_orm.py +0 -1
- cidc_api/models/db/stage2/specimen_orm.py +0 -1
- cidc_api/models/db/stage2/stem_cell_transplant_orm.py +0 -1
- cidc_api/models/db/stage2/surgery_orm.py +0 -1
- cidc_api/models/db/stage2/therapy_agent_dose_orm.py +0 -1
- cidc_api/models/db/stage2/treatment_orm.py +0 -1
- cidc_api/models/db/stage2/trial_orm.py +0 -1
- cidc_api/models/files/facets.py +4 -0
- cidc_api/models/models.py +12 -0
- cidc_api/models/types.py +1 -0
- cidc_api/shared/file_handling.py +13 -4
- cidc_api/shared/gcloud_client.py +44 -11
- {nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/METADATA +3 -2
- {nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/RECORD +73 -73
- {nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/WHEEL +0 -0
- {nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/licenses/LICENSE +0 -0
- {nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/top_level.txt +0 -0
cidc_api/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.2.
|
|
1
|
+
__version__ = "1.2.44"
|
cidc_api/models/data.py
CHANGED
|
@@ -11,9 +11,9 @@ standard_data_categories = [
|
|
|
11
11
|
# A class to hold the representation of a trial's dataset all at once
|
|
12
12
|
class Dataset(dict):
|
|
13
13
|
def __init__(self, *args, **kwargs):
|
|
14
|
-
super().__init__(*args, **kwargs)
|
|
15
14
|
for data_category in standard_data_categories:
|
|
16
15
|
self[data_category] = []
|
|
16
|
+
super().__init__(*args, **kwargs)
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
# Maps data categories like "treatment" to their associated pydantic model
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.db.stage1.base_orm import BaseORM
|
|
|
10
10
|
class AdditionalTreatmentORM(BaseORM):
|
|
11
11
|
__tablename__ = "additional_treatment"
|
|
12
12
|
__repr_attrs__ = ["additional_treatment_id", "participant_id"]
|
|
13
|
-
__table_args__ = {"schema": "stage1"}
|
|
14
13
|
__data_category__ = "additional_treatment"
|
|
15
14
|
|
|
16
15
|
additional_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -20,7 +20,6 @@ from cidc_api.models.types import (
|
|
|
20
20
|
class AdverseEventORM(BaseORM):
|
|
21
21
|
__tablename__ = "adverse_event"
|
|
22
22
|
__repr_attrs__ = ["adverse_event_id", "participant_id", "event_term"]
|
|
23
|
-
__table_args__ = {"schema": "stage1"}
|
|
24
23
|
__data_category__ = "adverse_event"
|
|
25
24
|
|
|
26
25
|
adverse_event_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import ECOGScore, KarnofskyScore
|
|
|
9
9
|
class BaselineClinicalAssessmentORM(BaseORM):
|
|
10
10
|
__tablename__ = "baseline_clinical_assessment"
|
|
11
11
|
__repr_attrs__ = ["baseline_clinical_assessment_id", "participant_id"]
|
|
12
|
-
__table_args__ = {"schema": "stage1"}
|
|
13
12
|
__data_category__ = "baseline_clinical_assessment"
|
|
14
13
|
|
|
15
14
|
baseline_clinical_assessment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import ICD10CMCode, ICD10CMTerm
|
|
|
9
9
|
class ComorbidityORM(BaseORM):
|
|
10
10
|
__tablename__ = "comorbidity"
|
|
11
11
|
__repr_attrs__ = ["comorbidity_id", "comorbidity_term"]
|
|
12
|
-
__table_args__ = {"schema": "stage1"}
|
|
13
12
|
__data_category__ = "comorbidity"
|
|
14
13
|
|
|
15
14
|
comorbidity_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -23,7 +23,6 @@ from cidc_api.models.types import (
|
|
|
23
23
|
class DemographicORM(BaseORM):
|
|
24
24
|
__tablename__ = "demographic"
|
|
25
25
|
__repr_attrs__ = ["demographic_id", "participant_id", "age_at_enrollment", "sex"]
|
|
26
|
-
__table_args__ = {"schema": "stage1"}
|
|
27
26
|
__data_category__ = "demographic"
|
|
28
27
|
|
|
29
28
|
demographic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import YNU, ExposureType
|
|
|
11
11
|
class ExposureORM(BaseORM):
|
|
12
12
|
__tablename__ = "exposure"
|
|
13
13
|
__repr_attrs__ = ["exposure_id", "exposure_type", "carcinogen_exposure"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "exposure"
|
|
16
15
|
|
|
17
16
|
exposure_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -17,7 +17,6 @@ class GVHDDiagnosisAcuteORM(BaseORM):
|
|
|
17
17
|
__tablename__ = "gvhd_diagnosis_acute"
|
|
18
18
|
__table_args__ = (
|
|
19
19
|
UniqueConstraint("participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_acute_pre_or_post"),
|
|
20
|
-
{"schema": "stage1"},
|
|
21
20
|
)
|
|
22
21
|
__repr_attrs__ = ["gvhd_diagnosis_acute_id", "pre_or_post_enrollment"]
|
|
23
22
|
__data_category__ = "gvhd_diagnosis_acute"
|
|
@@ -19,7 +19,6 @@ class GVHDDiagnosisChronicORM(BaseORM):
|
|
|
19
19
|
UniqueConstraint(
|
|
20
20
|
"participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_chronic_pre_or_post"
|
|
21
21
|
),
|
|
22
|
-
{"schema": "stage1"},
|
|
23
22
|
)
|
|
24
23
|
__repr_attrs__ = ["gvhd_diagnosis_chronic_id", "pre_or_post_enrollment"]
|
|
25
24
|
__data_category__ = "gvhd_diagnosis_chronic"
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import GVHDOrgan, GVHDOrganAcuteStage
|
|
|
9
9
|
class GVHDOrganAcuteORM(BaseORM):
|
|
10
10
|
__tablename__ = "gvhd_organ_acute"
|
|
11
11
|
__repr_attrs__ = ["gvhd_organ_acute_id", "organ"]
|
|
12
|
-
__table_args__ = {"schema": "stage1"}
|
|
13
12
|
__data_category__ = "gvhd_organ_acute"
|
|
14
13
|
|
|
15
14
|
gvhd_organ_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import GVHDOrgan, GVHDOrganChronicScore
|
|
|
9
9
|
class GVHDOrganChronicORM(BaseORM):
|
|
10
10
|
__tablename__ = "gvhd_organ_chronic"
|
|
11
11
|
__repr_attrs__ = ["gvhd_organ_chronic_id", "organ"]
|
|
12
|
-
__table_args__ = {"schema": "stage1"}
|
|
13
12
|
__data_category__ = "gvhd_organ_chronic"
|
|
14
13
|
|
|
15
14
|
gvhd_organ_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -12,7 +12,6 @@ from cidc_api.models.types import TobaccoSmokingStatus
|
|
|
12
12
|
class MedicalHistoryORM(BaseORM):
|
|
13
13
|
__tablename__ = "medical_history"
|
|
14
14
|
__repr_attrs__ = ["medical_history_id"]
|
|
15
|
-
__table_args__ = {"schema": "stage1"}
|
|
16
15
|
__data_category__ = "medical_history"
|
|
17
16
|
|
|
18
17
|
medical_history_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.types import UberonAnatomicalTerm, ICDO3MorphologicalCode,
|
|
|
10
10
|
class OtherMalignancyORM(BaseORM):
|
|
11
11
|
__tablename__ = "other_malignancy"
|
|
12
12
|
__repr_attrs__ = ["other_malignancy_id", "primary_disease_site"]
|
|
13
|
-
__table_args__ = {"schema": "stage1"}
|
|
14
13
|
__data_category__ = "other_malignancy"
|
|
15
14
|
|
|
16
15
|
other_malignancy_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,12 +10,11 @@ from cidc_api.models.types import OffStudyReason, YNU
|
|
|
10
10
|
|
|
11
11
|
class ParticipantORM(BaseORM):
|
|
12
12
|
__tablename__ = "participant"
|
|
13
|
-
__repr_attrs__ = ["native_participant_id", "cimac_participant_id"]
|
|
13
|
+
__repr_attrs__ = ["participant_id", "native_participant_id", "cimac_participant_id"]
|
|
14
14
|
__table_args__ = (
|
|
15
15
|
ForeignKeyConstraint(
|
|
16
16
|
["trial_id", "version"], ["stage1.trial.trial_id", "stage1.trial.version"], ondelete="CASCADE"
|
|
17
17
|
),
|
|
18
|
-
{"schema": "stage1"},
|
|
19
18
|
)
|
|
20
19
|
__data_category__ = "participant"
|
|
21
20
|
|
|
@@ -13,7 +13,6 @@ from cidc_api.models.types import ConditioningRegimenType, StemCellDonorType
|
|
|
13
13
|
class PriorTreatmentORM(BaseORM):
|
|
14
14
|
__tablename__ = "prior_treatment"
|
|
15
15
|
__repr_attrs__ = ["prior_treatment_id", "type"]
|
|
16
|
-
__table_args__ = {"schema": "stage1"}
|
|
17
16
|
__data_category__ = "prior_treatment"
|
|
18
17
|
|
|
19
18
|
prior_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -17,7 +17,6 @@ from cidc_api.models.types import (
|
|
|
17
17
|
class RadiotherapyDoseORM(BaseORM):
|
|
18
18
|
__tablename__ = "radiotherapy_dose"
|
|
19
19
|
__repr_attrs__ = ["radiotherapy_dose_id", "procedure"]
|
|
20
|
-
__table_args__ = {"schema": "stage1"}
|
|
21
20
|
__data_category__ = "radiotherapy_dose"
|
|
22
21
|
|
|
23
22
|
radiotherapy_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOve
|
|
|
10
10
|
class ResponseBySystemORM(BaseORM):
|
|
11
11
|
__tablename__ = "response_by_system"
|
|
12
12
|
__repr_attrs__ = ["response_by_system_id", "participant_id"]
|
|
13
|
-
__table_args__ = {"schema": "stage1"}
|
|
14
13
|
__data_category__ = "response_by_system"
|
|
15
14
|
|
|
16
15
|
response_by_system_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
|
11
11
|
class ResponseORM(BaseORM):
|
|
12
12
|
__tablename__ = "response"
|
|
13
13
|
__repr_attrs__ = ["response_id", "participant_id"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "response"
|
|
16
15
|
|
|
17
16
|
response_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -33,7 +33,6 @@ from cidc_api.models.types import (
|
|
|
33
33
|
class SpecimenORM(BaseORM):
|
|
34
34
|
__tablename__ = "specimen"
|
|
35
35
|
__repr_attrs__ = ["specimen_id", "participant_id", "cimac_id"]
|
|
36
|
-
__table_args__ = {"schema": "stage1"}
|
|
37
36
|
__data_category__ = "specimen"
|
|
38
37
|
|
|
39
38
|
specimen_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import StemCellDonorType, AllogeneicDonorType, StemCe
|
|
|
11
11
|
class StemCellTransplantORM(BaseORM):
|
|
12
12
|
__tablename__ = "stem_cell_transplant"
|
|
13
13
|
__repr_attrs__ = ["stem_cell_transplant_id"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "stem_cell_transplant"
|
|
16
15
|
|
|
17
16
|
stem_cell_transplant_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import SurgicalProcedure, UberonAnatomicalTerm, YNU
|
|
|
11
11
|
class SurgeryORM(BaseORM):
|
|
12
12
|
__tablename__ = "surgery"
|
|
13
13
|
__repr_attrs__ = ["surgery_id", "procedure"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "surgery"
|
|
16
15
|
|
|
17
16
|
surgery_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import TherapyAgentDoseUnits, YNU
|
|
|
11
11
|
class TherapyAgentDoseORM(BaseORM):
|
|
12
12
|
__tablename__ = "therapy_agent_dose"
|
|
13
13
|
__repr_attrs__ = ["therapy_agent_dose_id", "therapy_agent_name"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "therapy_agent_dose"
|
|
16
15
|
|
|
17
16
|
therapy_agent_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import YNU, OffTreatmentReason
|
|
|
11
11
|
class TreatmentORM(BaseORM):
|
|
12
12
|
__tablename__ = "treatment"
|
|
13
13
|
__repr_attrs__ = ["treatment_id", "participant_id", "treatment_description"]
|
|
14
|
-
__table_args__ = {"schema": "stage1"}
|
|
15
14
|
__data_category__ = "treatment"
|
|
16
15
|
|
|
17
16
|
treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -13,7 +13,6 @@ from cidc_api.models.types import PrimaryPurposeType, AgeGroup
|
|
|
13
13
|
class TrialORM(BaseORM):
|
|
14
14
|
__tablename__ = "trial"
|
|
15
15
|
__repr_attrs__ = ["trial_id", "version"]
|
|
16
|
-
__table_args__ = {"schema": "stage1"}
|
|
17
16
|
__data_category__ = "study"
|
|
18
17
|
|
|
19
18
|
trial_id: Mapped[str] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
|
10
10
|
class AdditionalTreatmentORM(BaseORM):
|
|
11
11
|
__tablename__ = "additional_treatment"
|
|
12
12
|
__repr_attrs__ = ["additional_treatment_id", "participant_id"]
|
|
13
|
-
__table_args__ = {"schema": "stage2"}
|
|
14
13
|
__data_category__ = "additional_treatment"
|
|
15
14
|
|
|
16
15
|
additional_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
|
10
10
|
class AdministrativePersonORM(BaseORM):
|
|
11
11
|
__tablename__ = "administrative_person"
|
|
12
12
|
__repr_attrs__ = ["first_name", "last_name"]
|
|
13
|
-
__table_args__ = {"schema": "stage2"}
|
|
14
13
|
|
|
15
14
|
administrative_person_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
15
|
institution_id: Mapped[int] = mapped_column(ForeignKey("stage2.institution.institution_id", ondelete="CASCADE"))
|
|
@@ -13,7 +13,6 @@ class AdministrativeRoleAssignmentORM(BaseORM):
|
|
|
13
13
|
ForeignKeyConstraint(
|
|
14
14
|
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
15
15
|
),
|
|
16
|
-
{"schema": "stage2"},
|
|
17
16
|
)
|
|
18
17
|
|
|
19
18
|
trial_id: Mapped[str] = mapped_column(primary_key=True)
|
|
@@ -20,7 +20,6 @@ from cidc_api.models.types import (
|
|
|
20
20
|
class AdverseEventORM(BaseORM):
|
|
21
21
|
__tablename__ = "adverse_event"
|
|
22
22
|
__repr_attrs__ = ["adverse_event_id", "participant_id", "event_term"]
|
|
23
|
-
__table_args__ = {"schema": "stage2"}
|
|
24
23
|
__data_category__ = "adverse_event"
|
|
25
24
|
|
|
26
25
|
adverse_event_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import ECOGScore, KarnofskyScore
|
|
|
9
9
|
class BaselineClinicalAssessmentORM(BaseORM):
|
|
10
10
|
__tablename__ = "baseline_clinical_assessment"
|
|
11
11
|
__repr_attrs__ = ["baseline_clinical_assessment_id", "participant_id"]
|
|
12
|
-
__table_args__ = {"schema": "stage2"}
|
|
13
12
|
__data_category__ = "baseline_clinical_assessment"
|
|
14
13
|
|
|
15
14
|
baseline_clinical_assessment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import ICD10CMCode, ICD10CMTerm
|
|
|
9
9
|
class ComorbidityORM(BaseORM):
|
|
10
10
|
__tablename__ = "comorbidity"
|
|
11
11
|
__repr_attrs__ = ["comorbidity_id", "comorbidity_term"]
|
|
12
|
-
__table_args__ = {"schema": "stage2"}
|
|
13
12
|
__data_category__ = "comorbidity"
|
|
14
13
|
|
|
15
14
|
comorbidity_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -7,7 +7,6 @@ from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
|
7
7
|
|
|
8
8
|
class ContactORM(BaseORM):
|
|
9
9
|
__tablename__ = "contact"
|
|
10
|
-
__table_args__ = {"schema": "stage2"}
|
|
11
10
|
|
|
12
11
|
contact_id: Mapped[int] = mapped_column(primary_key=True)
|
|
13
12
|
institution_id: Mapped[int] = mapped_column(ForeignKey("stage2.institution.institution_id", ondelete="CASCADE"))
|
|
@@ -23,7 +23,6 @@ from cidc_api.models.types import (
|
|
|
23
23
|
class DemographicORM(BaseORM):
|
|
24
24
|
__tablename__ = "demographic"
|
|
25
25
|
__repr_attrs__ = ["demographic_id", "participant_id", "age_at_enrollment", "sex"]
|
|
26
|
-
__table_args__ = {"schema": "stage2"}
|
|
27
26
|
__data_category__ = "demographic"
|
|
28
27
|
|
|
29
28
|
demographic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import YNU, ExposureType
|
|
|
11
11
|
class ExposureORM(BaseORM):
|
|
12
12
|
__tablename__ = "exposure"
|
|
13
13
|
__repr_attrs__ = ["exposure_id", "exposure_type", "carcinogen_exposure"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "exposure"
|
|
16
15
|
|
|
17
16
|
exposure_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -17,7 +17,6 @@ class GVHDDiagnosisAcuteORM(BaseORM):
|
|
|
17
17
|
__tablename__ = "gvhd_diagnosis_acute"
|
|
18
18
|
__table_args__ = (
|
|
19
19
|
UniqueConstraint("participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_acute_pre_or_post"),
|
|
20
|
-
{"schema": "stage2"},
|
|
21
20
|
)
|
|
22
21
|
__repr_attrs__ = ["gvhd_diagnosis_acute_id", "pre_or_post_enrollment"]
|
|
23
22
|
__data_category__ = "gvhd_diagnosis_acute"
|
|
@@ -19,7 +19,6 @@ class GVHDDiagnosisChronicORM(BaseORM):
|
|
|
19
19
|
UniqueConstraint(
|
|
20
20
|
"participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_chronic_pre_or_post"
|
|
21
21
|
),
|
|
22
|
-
{"schema": "stage2"},
|
|
23
22
|
)
|
|
24
23
|
__repr_attrs__ = ["gvhd_diagnosis_chronic_id", "pre_or_post_enrollment"]
|
|
25
24
|
__data_category__ = "gvhd_diagnosis_chronic"
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import GVHDOrgan, GVHDOrganAcuteStage
|
|
|
9
9
|
class GVHDOrganAcuteORM(BaseORM):
|
|
10
10
|
__tablename__ = "gvhd_organ_acute"
|
|
11
11
|
__repr_attrs__ = ["gvhd_organ_acute_id", "organ"]
|
|
12
|
-
__table_args__ = {"schema": "stage2"}
|
|
13
12
|
__data_category__ = "gvhd_organ_acute"
|
|
14
13
|
|
|
15
14
|
gvhd_organ_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import GVHDOrgan, GVHDOrganChronicScore
|
|
|
9
9
|
class GVHDOrganChronicORM(BaseORM):
|
|
10
10
|
__tablename__ = "gvhd_organ_chronic"
|
|
11
11
|
__repr_attrs__ = ["gvhd_organ_chronic_id", "organ"]
|
|
12
|
-
__table_args__ = {"schema": "stage2"}
|
|
13
12
|
__data_category__ = "gvhd_organ_chronic"
|
|
14
13
|
|
|
15
14
|
gvhd_organ_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -12,7 +12,6 @@ from cidc_api.models.types import TobaccoSmokingStatus
|
|
|
12
12
|
class MedicalHistoryORM(BaseORM):
|
|
13
13
|
__tablename__ = "medical_history"
|
|
14
14
|
__repr_attrs__ = ["medical_history_id"]
|
|
15
|
-
__table_args__ = {"schema": "stage2"}
|
|
16
15
|
__data_category__ = "medical_history"
|
|
17
16
|
|
|
18
17
|
medical_history_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -9,7 +9,6 @@ from cidc_api.models.types import YNU, ResponseSystem, ResponseSystemVersion
|
|
|
9
9
|
class OtherClinicalEndpointORM(BaseORM):
|
|
10
10
|
__tablename__ = "other_clinical_endpoint"
|
|
11
11
|
__repr_attrs__ = ["other_clinical_endpoint_id", "name", "event"]
|
|
12
|
-
__table_args__ = {"schema": "stage2"}
|
|
13
12
|
|
|
14
13
|
other_clinical_endpoint_id: Mapped[int] = mapped_column(primary_key=True)
|
|
15
14
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.types import UberonAnatomicalTerm, ICDO3MorphologicalCode,
|
|
|
10
10
|
class OtherMalignancyORM(BaseORM):
|
|
11
11
|
__tablename__ = "other_malignancy"
|
|
12
12
|
__repr_attrs__ = ["other_malignancy_id", "primary_disease_site"]
|
|
13
|
-
__table_args__ = {"schema": "stage2"}
|
|
14
13
|
__data_category__ = "other_malignancy"
|
|
15
14
|
|
|
16
15
|
other_malignancy_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -13,7 +13,6 @@ from cidc_api.models.types import ConditioningRegimenType, StemCellDonorType
|
|
|
13
13
|
class PriorTreatmentORM(BaseORM):
|
|
14
14
|
__tablename__ = "prior_treatment"
|
|
15
15
|
__repr_attrs__ = ["prior_treatment_id", "type"]
|
|
16
|
-
__table_args__ = {"schema": "stage2"}
|
|
17
16
|
__data_category__ = "prior_treatment"
|
|
18
17
|
|
|
19
18
|
prior_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -17,7 +17,6 @@ from cidc_api.models.types import (
|
|
|
17
17
|
class RadiotherapyDoseORM(BaseORM):
|
|
18
18
|
__tablename__ = "radiotherapy_dose"
|
|
19
19
|
__repr_attrs__ = ["radiotherapy_dose_id", "procedure"]
|
|
20
|
-
__table_args__ = {"schema": "stage2"}
|
|
21
20
|
__data_category__ = "radiotherapy_dose"
|
|
22
21
|
|
|
23
22
|
radiotherapy_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOve
|
|
|
10
10
|
class ResponseBySystemORM(BaseORM):
|
|
11
11
|
__tablename__ = "response_by_system"
|
|
12
12
|
__repr_attrs__ = ["response_by_system_id", "participant_id"]
|
|
13
|
-
__table_args__ = {"schema": "stage2"}
|
|
14
13
|
__data_category__ = "response_by_system"
|
|
15
14
|
|
|
16
15
|
response_by_system_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
|
11
11
|
class ResponseORM(BaseORM):
|
|
12
12
|
__tablename__ = "response"
|
|
13
13
|
__repr_attrs__ = ["response_id", "participant_id"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "response"
|
|
16
15
|
|
|
17
16
|
response_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -10,7 +10,6 @@ from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
|
10
10
|
class ShipmentSpecimenORM(BaseORM):
|
|
11
11
|
__tablename__ = "shipment_specimen"
|
|
12
12
|
__repr_attrs__ = ["specimen_id", "shipment_id"]
|
|
13
|
-
__table_args__ = {"schema": "stage2"}
|
|
14
13
|
|
|
15
14
|
specimen_id: Mapped[int] = mapped_column(
|
|
16
15
|
ForeignKey("stage2.specimen.specimen_id", ondelete="CASCADE"), primary_key=True
|
|
@@ -33,7 +33,6 @@ from cidc_api.models.types import (
|
|
|
33
33
|
class SpecimenORM(BaseORM):
|
|
34
34
|
__tablename__ = "specimen"
|
|
35
35
|
__repr_attrs__ = ["specimen_id", "participant_id", "cimac_id"]
|
|
36
|
-
__table_args__ = {"schema": "stage2"}
|
|
37
36
|
|
|
38
37
|
specimen_id: Mapped[int] = mapped_column(primary_key=True)
|
|
39
38
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import StemCellDonorType, AllogeneicDonorType, StemCe
|
|
|
11
11
|
class StemCellTransplantORM(BaseORM):
|
|
12
12
|
__tablename__ = "stem_cell_transplant"
|
|
13
13
|
__repr_attrs__ = ["stem_cell_transplant_id"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "stem_cell_transplant"
|
|
16
15
|
|
|
17
16
|
stem_cell_transplant_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import SurgicalProcedure, UberonAnatomicalTerm, YNU
|
|
|
11
11
|
class SurgeryORM(BaseORM):
|
|
12
12
|
__tablename__ = "surgery"
|
|
13
13
|
__repr_attrs__ = ["surgery_id", "procedure"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "surgery"
|
|
16
15
|
|
|
17
16
|
surgery_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import TherapyAgentDoseUnits, YNU
|
|
|
11
11
|
class TherapyAgentDoseORM(BaseORM):
|
|
12
12
|
__tablename__ = "therapy_agent_dose"
|
|
13
13
|
__repr_attrs__ = ["therapy_agent_dose_id", "therapy_agent_name"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "therapy_agent_dose"
|
|
16
15
|
|
|
17
16
|
therapy_agent_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -11,7 +11,6 @@ from cidc_api.models.types import YNU, OffTreatmentReason
|
|
|
11
11
|
class TreatmentORM(BaseORM):
|
|
12
12
|
__tablename__ = "treatment"
|
|
13
13
|
__repr_attrs__ = ["treatment_id", "participant_id", "treatment_description"]
|
|
14
|
-
__table_args__ = {"schema": "stage2"}
|
|
15
14
|
__data_category__ = "treatment"
|
|
16
15
|
|
|
17
16
|
treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
@@ -13,7 +13,6 @@ from cidc_api.models.types import AssayType, TrialOrganization, TrialFundingAgen
|
|
|
13
13
|
class TrialORM(BaseORM):
|
|
14
14
|
__tablename__ = "trial"
|
|
15
15
|
__repr_attrs__ = ["trial_id", "version"]
|
|
16
|
-
__table_args__ = {"schema": "stage2"}
|
|
17
16
|
__data_category__ = "study"
|
|
18
17
|
|
|
19
18
|
trial_id: Mapped[str] = mapped_column(primary_key=True)
|
cidc_api/models/files/facets.py
CHANGED
|
@@ -376,6 +376,10 @@ assay_facets: Facets = {
|
|
|
376
376
|
"Channels": FacetConfig(["/maldi_glycan/channels.csv", "Channels csv file for MALDI Glycan run"]),
|
|
377
377
|
"Tiff Zip": FacetConfig(["/maldi_glycan/tiff.zip", "Tiff zip for MALDI Glycan run"]),
|
|
378
378
|
},
|
|
379
|
+
"TCRseq RNA": {
|
|
380
|
+
"Alpha Results": FacetConfig(["/tcrseq_rna/alpha.csv"]),
|
|
381
|
+
"Beta Results": FacetConfig(["/tcrseq_rna/beta.csv"]),
|
|
382
|
+
},
|
|
379
383
|
"mIHC": {
|
|
380
384
|
"Samples Report": FacetConfig(["/mihc/sample_report.csv"], "Samples report for mIHC run"),
|
|
381
385
|
"Multitiffs": FacetConfig(["/mihc/multitiffs.tar.gz"], "Multi Tiffs file from mIHC run"),
|
cidc_api/models/models.py
CHANGED
|
@@ -28,6 +28,7 @@ __all__ = [
|
|
|
28
28
|
"JobFileCategories",
|
|
29
29
|
"CategoryDataElements",
|
|
30
30
|
"ValidationConfigs",
|
|
31
|
+
"MASTER_APPENDIX_A",
|
|
31
32
|
"TRIAL_APPENDIX_A",
|
|
32
33
|
"TRIAL_APPENDIX_A_CELL_THAT_ENDS_THE_HEADER",
|
|
33
34
|
"REQUEST_LETTER",
|
|
@@ -3262,6 +3263,7 @@ def upload_manifest_json(
|
|
|
3262
3263
|
return manifest_upload.id
|
|
3263
3264
|
|
|
3264
3265
|
|
|
3266
|
+
MASTER_APPENDIX_A = "master_appendix_a"
|
|
3265
3267
|
TRIAL_APPENDIX_A = "trial_appendix_a"
|
|
3266
3268
|
REQUEST_LETTER = "request_letter"
|
|
3267
3269
|
DETAILED_VALIDATION = "detailed_validation"
|
|
@@ -3361,6 +3363,16 @@ class PreprocessedFiles(CommonColumns):
|
|
|
3361
3363
|
query = cls.add_job_filter(query, job_id)
|
|
3362
3364
|
return query.all()
|
|
3363
3365
|
|
|
3366
|
+
@classmethod
|
|
3367
|
+
@with_default_session
|
|
3368
|
+
def get_latest_current_file(
|
|
3369
|
+
cls, file_category: str, job_id: int = None, session: Session = None
|
|
3370
|
+
) -> Optional["PreprocessedFiles"]:
|
|
3371
|
+
"""Return the latest 'current' file for the given category and job_id. Returns None if no file exists."""
|
|
3372
|
+
query = session.query(cls).filter_by(file_category=file_category, status="current")
|
|
3373
|
+
query = cls.add_job_filter(query, job_id)
|
|
3374
|
+
return query.order_by(cls.version.desc()).first()
|
|
3375
|
+
|
|
3364
3376
|
@classmethod
|
|
3365
3377
|
@with_default_session
|
|
3366
3378
|
def get_file_by_category_and_version(
|
cidc_api/models/types.py
CHANGED
cidc_api/shared/file_handling.py
CHANGED
|
@@ -17,14 +17,22 @@ logger = get_logger(__name__)
|
|
|
17
17
|
|
|
18
18
|
@trace_()
|
|
19
19
|
def set_current_file(
|
|
20
|
-
file: FileStorage,
|
|
20
|
+
file: FileStorage,
|
|
21
|
+
file_category: str,
|
|
22
|
+
gcs_folder: str,
|
|
23
|
+
session: Session,
|
|
24
|
+
uploader_email: str,
|
|
25
|
+
job_id: int = None,
|
|
26
|
+
append_timestamp: bool = None,
|
|
21
27
|
) -> PreprocessedFiles:
|
|
22
28
|
"""
|
|
23
29
|
Archives any existing 'current' files for the given category and job,
|
|
24
30
|
then uploads the new file as the latest 'current' version.
|
|
25
31
|
"""
|
|
26
32
|
latest_version = PreprocessedFiles.archive_current_files(file_category, job_id=job_id, session=session)
|
|
27
|
-
latest_file = create_file(
|
|
33
|
+
latest_file = create_file(
|
|
34
|
+
file, gcs_folder, file_category, session, uploader_email, job_id, latest_version + 1, append_timestamp
|
|
35
|
+
)
|
|
28
36
|
return latest_file
|
|
29
37
|
|
|
30
38
|
|
|
@@ -37,11 +45,12 @@ def create_file(
|
|
|
37
45
|
uploader_email: str,
|
|
38
46
|
job_id: int = None,
|
|
39
47
|
version: int = None,
|
|
48
|
+
append_timestamp: bool = None,
|
|
40
49
|
) -> PreprocessedFiles:
|
|
41
50
|
"""Upload file to GCS and create corresponding metadata record in the database."""
|
|
42
51
|
status = "pending" if gcs_folder.endswith("pending/") else "current"
|
|
43
|
-
# only need timestamp for current/versioned files
|
|
44
|
-
append_timestamp = status == "current"
|
|
52
|
+
# only need timestamp for current/versioned files, if not specified otherwise
|
|
53
|
+
append_timestamp = append_timestamp if append_timestamp is not None else (status == "current")
|
|
45
54
|
# create file in GCS
|
|
46
55
|
gcs_file_path = upload_file_to_gcs(file, GOOGLE_CLINICAL_DATA_BUCKET, gcs_folder, append_timestamp=append_timestamp)
|
|
47
56
|
# create corresponding record in db
|
cidc_api/shared/gcloud_client.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# pylint: disable=logging-fstring-interpolation,too-many-lines, broad-exception-raised
|
|
4
4
|
|
|
5
|
+
import asyncio
|
|
5
6
|
import base64
|
|
6
7
|
import datetime
|
|
7
8
|
import hashlib
|
|
@@ -26,6 +27,8 @@ from typing import (
|
|
|
26
27
|
)
|
|
27
28
|
|
|
28
29
|
import googleapiclient.discovery
|
|
30
|
+
from gcloud.aio.storage import Storage
|
|
31
|
+
from pandas.core.frame import DataFrame
|
|
29
32
|
import pandas as pd
|
|
30
33
|
import requests
|
|
31
34
|
from cidc_schemas.prism.constants import ASSAY_TO_FILEPATH
|
|
@@ -443,25 +446,50 @@ def upload_xlsx_to_intake_bucket(user_email: str, trial_id: str, upload_type: st
|
|
|
443
446
|
return f"https://console.cloud.google.com/storage/browser/_details/{bucket_name}/{blob_name}"
|
|
444
447
|
|
|
445
448
|
|
|
446
|
-
def
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
if blob_name[-3:] == "csv":
|
|
452
|
-
return strip_whitespaces(pd.read_csv(temp_file, dtype=str, keep_default_na=False))
|
|
453
|
-
elif blob_name[-4:] == "xlsx":
|
|
454
|
-
return strip_whitespaces(pd.read_excel(temp_file, dtype=str, keep_default_na=False))
|
|
449
|
+
def prepare_dataframe(extension, bytes) -> DataFrame:
|
|
450
|
+
if extension == "csv":
|
|
451
|
+
return strip_whitespaces(pd.read_csv(bytes, dtype=str, keep_default_na=False))
|
|
452
|
+
elif extension == "xlsx":
|
|
453
|
+
return strip_whitespaces(pd.read_excel(bytes, dtype=str, keep_default_na=False))
|
|
455
454
|
else:
|
|
456
455
|
raise Exception("Can only read csv or xlsx files")
|
|
457
456
|
|
|
458
457
|
|
|
458
|
+
def gcs_xlsx_or_csv_file_to_pandas_dataframe(bucket_name: str, blob_name: str) -> DataFrame:
|
|
459
|
+
"""Reads an XLSX or CSV file from Google Cloud Storage into a Pandas DataFrame."""
|
|
460
|
+
contents = get_file_bytes_from_gcs(bucket_name, blob_name)
|
|
461
|
+
extension = blob_name.split(".")[-1]
|
|
462
|
+
return prepare_dataframe(extension, contents)
|
|
463
|
+
|
|
464
|
+
|
|
459
465
|
def get_file_bytes_from_gcs(bucket_name: str, blob_name: str) -> io.BytesIO:
|
|
460
466
|
"""Reads a file from Google Cloud Storage and returns it as BytesIO."""
|
|
461
467
|
sheet_data = storage.Client().bucket(bucket_name).blob(blob_name).download_as_bytes()
|
|
462
468
|
return io.BytesIO(sheet_data)
|
|
463
469
|
|
|
464
470
|
|
|
471
|
+
async def async_gcs_files_to_pandas_dataframes(bucket_name: str, blob_names: List[str]) -> List[DataFrame]:
|
|
472
|
+
"""Async reads a XLSX or CSV files from Google Cloud Storage into a list of Pandas DataFrames."""
|
|
473
|
+
|
|
474
|
+
all_contents = await asyncio.gather(
|
|
475
|
+
*[async_get_file_bytes_from_gcs(bucket_name, blob_name) for blob_name in blob_names]
|
|
476
|
+
)
|
|
477
|
+
dataframes = []
|
|
478
|
+
|
|
479
|
+
for blob_name, contents in zip(blob_names, all_contents):
|
|
480
|
+
extension = blob_name.split(".")[-1]
|
|
481
|
+
dataframes.append(prepare_dataframe(extension, contents))
|
|
482
|
+
return dataframes
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
async def async_get_file_bytes_from_gcs(bucket_name: str, blob_name: str) -> io.BytesIO:
|
|
486
|
+
"""Async reads a file from Google Cloud Storage and returns it as BytesIO."""
|
|
487
|
+
|
|
488
|
+
async with Storage() as client:
|
|
489
|
+
sheet_data = await client.download(bucket_name, blob_name)
|
|
490
|
+
return io.BytesIO(sheet_data)
|
|
491
|
+
|
|
492
|
+
|
|
465
493
|
def _execute_multiblob_acl_change(
|
|
466
494
|
user_email_list: List[str],
|
|
467
495
|
blob_list: List[storage.Blob],
|
|
@@ -907,6 +935,7 @@ def get_signed_url(
|
|
|
907
935
|
bucket_name: str = GOOGLE_ACL_DATA_BUCKET,
|
|
908
936
|
method: str = "GET",
|
|
909
937
|
expiry_mins: int = 30,
|
|
938
|
+
use_short_filename: bool = False,
|
|
910
939
|
) -> str:
|
|
911
940
|
"""
|
|
912
941
|
Generate a signed URL for `object_name` to give a client temporary access.
|
|
@@ -921,7 +950,11 @@ def get_signed_url(
|
|
|
921
950
|
|
|
922
951
|
# Generate the signed URL, allowing a client to use `method` for `expiry_mins` minutes
|
|
923
952
|
expiration = datetime.timedelta(minutes=expiry_mins)
|
|
924
|
-
|
|
953
|
+
if use_short_filename:
|
|
954
|
+
filename = os.path.basename(object_name)
|
|
955
|
+
else:
|
|
956
|
+
# full filename with path included
|
|
957
|
+
filename = object_name.replace("/", "_").replace('"', "_").replace(" ", "_")
|
|
925
958
|
other_kwargs = {}
|
|
926
959
|
if os.environ.get("DEV_GOOGLE_STORAGE", None):
|
|
927
960
|
other_kwargs["api_access_endpoint"] = (os.environ.get("DEV_GOOGLE_STORAGE") or "") + (
|
|
@@ -931,7 +964,7 @@ def get_signed_url(
|
|
|
931
964
|
version="v2",
|
|
932
965
|
expiration=expiration,
|
|
933
966
|
method=method,
|
|
934
|
-
response_disposition=f'attachment; filename="{
|
|
967
|
+
response_disposition=f'attachment; filename="{filename}"',
|
|
935
968
|
**other_kwargs,
|
|
936
969
|
)
|
|
937
970
|
logger.info(f"generated signed URL for {object_name}: {url}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nci_cidc_api_modules
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.44
|
|
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
|
|
@@ -13,6 +13,7 @@ Requires-Dist: flask>=3.1.2
|
|
|
13
13
|
Requires-Dist: flask-migrate>=4.1.0
|
|
14
14
|
Requires-Dist: flask-sqlalchemy>=3.1.1
|
|
15
15
|
Requires-Dist: flask-talisman>=0.7.0
|
|
16
|
+
Requires-Dist: gcloud-aio-storage~=9.6.1
|
|
16
17
|
Requires-Dist: google-auth==2.45.0
|
|
17
18
|
Requires-Dist: google-api-python-client>=2.187.0
|
|
18
19
|
Requires-Dist: google-cloud-bigquery>=3.39.0
|
|
@@ -41,7 +42,7 @@ Requires-Dist: opentelemetry-instrumentation-requests>=0.59b0
|
|
|
41
42
|
Requires-Dist: opentelemetry-instrumentation-sqlalchemy>=0.59b0
|
|
42
43
|
Requires-Dist: opentelemetry-exporter-gcp-trace>=1.11.0
|
|
43
44
|
Requires-Dist: opentelemetry-propagator-gcp>=1.11.0
|
|
44
|
-
Requires-Dist: nci-cidc-schemas==0.28.
|
|
45
|
+
Requires-Dist: nci-cidc-schemas==0.28.11
|
|
45
46
|
Dynamic: description
|
|
46
47
|
Dynamic: description-content-type
|
|
47
48
|
Dynamic: home-page
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
cidc_api/__init__.py,sha256=
|
|
1
|
+
cidc_api/__init__.py,sha256=tZ6_k-1uqq2cr3SCnYO9N-chw-LhbafQ_arSm_DOlLs,23
|
|
2
2
|
cidc_api/telemetry.py,sha256=LuZWkG8CKCn23O41RTNxEOQwMmfpp-fQ6zSInZhVJg8,3333
|
|
3
3
|
cidc_api/config/__init__.py,sha256=5mX8GAPxUKV84iS-aGOoE-4m68LsOCGCDptXNdlgvj0,148
|
|
4
4
|
cidc_api/config/db.py,sha256=mEz8ugjvRNGylCqDYHaaMqaZfDh7sbd76BowmfBvq5c,2428
|
|
@@ -6,79 +6,79 @@ cidc_api/config/logging.py,sha256=abhVYtn8lfhIt0tyV2WHFgSmp_s2eeJh7kodB6LH4J0,11
|
|
|
6
6
|
cidc_api/config/secrets.py,sha256=jRFj7W43pWuPf9DZQLCKF7WPXf5cUv-BAaS3ASqhV_Q,1481
|
|
7
7
|
cidc_api/config/settings.py,sha256=ttOGvk_6zVMn4dtxIZ2-0w3wF2fpAUVfGpVZbKJ2b6s,4653
|
|
8
8
|
cidc_api/models/__init__.py,sha256=bl445G8Zic9YbhZ8ZBni07wtBMhLJRMBA-JqjLxx2bw,66
|
|
9
|
-
cidc_api/models/data.py,sha256=
|
|
9
|
+
cidc_api/models/data.py,sha256=TyVXk5jJO1NN05CLqejLf5BPp6yLSNNxPmFOgXUnA1M,1313
|
|
10
10
|
cidc_api/models/migrations.py,sha256=UlS5How3J4ryaRuZT6F5VQtAKikkl0LTv9MgMO_ltiQ,11161
|
|
11
|
-
cidc_api/models/models.py,sha256=
|
|
11
|
+
cidc_api/models/models.py,sha256=DTt0eFkFVVxVn23Aqr6TA8CQ7qb2hdqQ0xVJ3RakBBw,153684
|
|
12
12
|
cidc_api/models/schemas.py,sha256=6IE2dJoEMcMbi0Vr1V3cYKnPKU0hv9vRKBixOZHe88s,2766
|
|
13
|
-
cidc_api/models/types.py,sha256=
|
|
13
|
+
cidc_api/models/types.py,sha256=WVOTEH61FH5aGVwRbEcfNOce8NLjiEnl1ixtPWav2OA,30058
|
|
14
14
|
cidc_api/models/db/stage1/__init__.py,sha256=zsxOSoogzL_xZ8B5OwcwLXvAmm6g2GYx1Zf6LLw8dq8,1917
|
|
15
|
-
cidc_api/models/db/stage1/additional_treatment_orm.py,sha256=
|
|
16
|
-
cidc_api/models/db/stage1/adverse_event_orm.py,sha256=
|
|
15
|
+
cidc_api/models/db/stage1/additional_treatment_orm.py,sha256=GCMzsYZl_B-7-TWYDBUXbt_Gri6YDv8XkYRheDLh3pc,926
|
|
16
|
+
cidc_api/models/db/stage1/adverse_event_orm.py,sha256=32Kjpg6fvByp4gEVy6K28MlgMWQryG6GPh3un1F8x64,1914
|
|
17
17
|
cidc_api/models/db/stage1/base_orm.py,sha256=izKizTf2W1fCK2CRUeyuErJbOaxNp6d299n4gqKWHDQ,246
|
|
18
|
-
cidc_api/models/db/stage1/baseline_clinical_assessment_orm.py,sha256=
|
|
19
|
-
cidc_api/models/db/stage1/comorbidity_orm.py,sha256=
|
|
20
|
-
cidc_api/models/db/stage1/consent_group_orm.py,sha256=
|
|
21
|
-
cidc_api/models/db/stage1/demographic_orm.py,sha256=
|
|
22
|
-
cidc_api/models/db/stage1/disease_orm.py,sha256=
|
|
23
|
-
cidc_api/models/db/stage1/exposure_orm.py,sha256=
|
|
24
|
-
cidc_api/models/db/stage1/gvhd_diagnosis_acute_orm.py,sha256=
|
|
25
|
-
cidc_api/models/db/stage1/gvhd_diagnosis_chronic_orm.py,sha256=
|
|
26
|
-
cidc_api/models/db/stage1/gvhd_organ_acute_orm.py,sha256
|
|
27
|
-
cidc_api/models/db/stage1/gvhd_organ_chronic_orm.py,sha256=
|
|
28
|
-
cidc_api/models/db/stage1/medical_history_orm.py,sha256=
|
|
29
|
-
cidc_api/models/db/stage1/other_malignancy_orm.py,sha256=
|
|
30
|
-
cidc_api/models/db/stage1/participant_orm.py,sha256=
|
|
31
|
-
cidc_api/models/db/stage1/prior_treatment_orm.py,sha256=
|
|
32
|
-
cidc_api/models/db/stage1/radiotherapy_dose_orm.py,sha256=
|
|
33
|
-
cidc_api/models/db/stage1/response_by_system_orm.py,sha256=
|
|
34
|
-
cidc_api/models/db/stage1/response_orm.py,sha256=
|
|
35
|
-
cidc_api/models/db/stage1/specimen_orm.py,sha256=
|
|
36
|
-
cidc_api/models/db/stage1/stem_cell_transplant_orm.py,sha256=
|
|
37
|
-
cidc_api/models/db/stage1/surgery_orm.py,sha256=
|
|
38
|
-
cidc_api/models/db/stage1/therapy_agent_dose_orm.py,sha256=
|
|
39
|
-
cidc_api/models/db/stage1/treatment_orm.py,sha256=
|
|
40
|
-
cidc_api/models/db/stage1/trial_orm.py,sha256=
|
|
18
|
+
cidc_api/models/db/stage1/baseline_clinical_assessment_orm.py,sha256=pGanJlwnAm38LPVTu6XF4qP_mw-SqYP8AC3O8w8XPnw,911
|
|
19
|
+
cidc_api/models/db/stage1/comorbidity_orm.py,sha256=C4P3kcpNpnt1ICgU2Xm5S-ou6Xhx6yr690g6F_hBoZ0,881
|
|
20
|
+
cidc_api/models/db/stage1/consent_group_orm.py,sha256=O7oZr7-Rvmzn8o4kS_40e270sF2e-KX85VkXemsa2MM,1111
|
|
21
|
+
cidc_api/models/db/stage1/demographic_orm.py,sha256=JR6CXCVLEvFTgElQazuNEgopIuf5Ik1w0m1kSkxp4Q0,1693
|
|
22
|
+
cidc_api/models/db/stage1/disease_orm.py,sha256=Ni1kxQxgVi0MKUlovcsnmpR9v1TwKWcO6tpEr1oZcsE,1965
|
|
23
|
+
cidc_api/models/db/stage1/exposure_orm.py,sha256=u6YKhAAX_0uYHMOYf8sQQFy3l9KluRykaIiggn9v_EY,811
|
|
24
|
+
cidc_api/models/db/stage1/gvhd_diagnosis_acute_orm.py,sha256=0ItEmNE2H2Xmh4W3t0DNg3W764Uk00d5gni6maMQ3N0,1470
|
|
25
|
+
cidc_api/models/db/stage1/gvhd_diagnosis_chronic_orm.py,sha256=seH3WO9IzQmau47N7zjJOa6OCSYi9_25WE5jOvxl6q8,1552
|
|
26
|
+
cidc_api/models/db/stage1/gvhd_organ_acute_orm.py,sha256=knzkKz2qkRU0R6HjdtfClOuRpGEYEsLxbhqYUmOAjSg,838
|
|
27
|
+
cidc_api/models/db/stage1/gvhd_organ_chronic_orm.py,sha256=mkhS1jFgCt_2NRXZfoqHWZh1ShkzLoPLR9W8ac_wzGs,862
|
|
28
|
+
cidc_api/models/db/stage1/medical_history_orm.py,sha256=nyNOG_odEvPWqgu2DmiHT3K-FBB1ltI536iiNwCF0wA,1282
|
|
29
|
+
cidc_api/models/db/stage1/other_malignancy_orm.py,sha256=wfoSCPUIzfw4anDi6FeqyhTzYrwTNlpDRCvL608zmXM,1303
|
|
30
|
+
cidc_api/models/db/stage1/participant_orm.py,sha256=3-s6F0yTFzBYFZrDKv2xJMv5p3VBt5EL1Quu9cK4sd8,3541
|
|
31
|
+
cidc_api/models/db/stage1/prior_treatment_orm.py,sha256=SNa_JOIF5gS61N0HFEfM7BHv3JYsflt6LQz03WLb8Lo,1325
|
|
32
|
+
cidc_api/models/db/stage1/radiotherapy_dose_orm.py,sha256=dLp_ENJAq-_f6MAspaGK-6R6ngHceFKpsrjoBM8yviI,1500
|
|
33
|
+
cidc_api/models/db/stage1/response_by_system_orm.py,sha256=pOQSE5g-EFUApgEDOXwxyQCmvoC6M9atSfBDsF9f3KI,1524
|
|
34
|
+
cidc_api/models/db/stage1/response_orm.py,sha256=P9a0ZVq_hJ3dipRgJTFcdjuWi9ueyGd0oQYHRiACNpc,1163
|
|
35
|
+
cidc_api/models/db/stage1/specimen_orm.py,sha256=m1cq5SfkUETk6dk4s3uYLyXohpZgE8iU1Rzh0xVRTmw,1354
|
|
36
|
+
cidc_api/models/db/stage1/stem_cell_transplant_orm.py,sha256=CqOAo-Pnj11XqR9a0CeaIGyLn5Ar42Hl_10tqEllnO0,1097
|
|
37
|
+
cidc_api/models/db/stage1/surgery_orm.py,sha256=DCggc6xbjGhm-G93bueY5u43t896aBPTvRFTk3Gq8ys,1018
|
|
38
|
+
cidc_api/models/db/stage1/therapy_agent_dose_orm.py,sha256=y8vaJazcoJ5mb0dmGXiAN8dQPP6yyDGpAOs_wDlH3SY,1306
|
|
39
|
+
cidc_api/models/db/stage1/treatment_orm.py,sha256=gRhCswnYYr7DLHbUzz-Lyg3pDVJy6j0UjBZ8SQX3C9k,1625
|
|
40
|
+
cidc_api/models/db/stage1/trial_orm.py,sha256=bS2zIngkv8ruXdXskinSwz8H1EeAgs9aHnteUWqaplE,1266
|
|
41
41
|
cidc_api/models/db/stage2/__init__.py,sha256=R33BM1VDKJya5uuyYnPoGFVfhSViclIOklSoHH-EtBQ,2691
|
|
42
|
-
cidc_api/models/db/stage2/additional_treatment_orm.py,sha256=
|
|
43
|
-
cidc_api/models/db/stage2/administrative_person_orm.py,sha256=
|
|
44
|
-
cidc_api/models/db/stage2/administrative_role_assignment_orm.py,sha256=
|
|
45
|
-
cidc_api/models/db/stage2/adverse_event_orm.py,sha256=
|
|
46
|
-
cidc_api/models/db/stage2/arm_orm.py,sha256=
|
|
42
|
+
cidc_api/models/db/stage2/additional_treatment_orm.py,sha256=G8_3EgGWH0vf3Rt5hTmM9xFids4NPcEBkQSS7hsrIdI,924
|
|
43
|
+
cidc_api/models/db/stage2/administrative_person_orm.py,sha256=yjBktBwIjzHwqIbs1BAqJhh3y8f6swmEJRGs-XDQ_OI,1016
|
|
44
|
+
cidc_api/models/db/stage2/administrative_role_assignment_orm.py,sha256=9X3Fkecj8_pxui99LpvA7WIMuWcagYW-QiRcvI7gAHg,1291
|
|
45
|
+
cidc_api/models/db/stage2/adverse_event_orm.py,sha256=lsou-Ej7F_LW7D4pZbgAoR3BLPkW-KJkNjPPv2RtlY0,1914
|
|
46
|
+
cidc_api/models/db/stage2/arm_orm.py,sha256=5jSoHENJXpqW36UrECmBphz_MRQUcYIXGF0fvhMDMWY,707
|
|
47
47
|
cidc_api/models/db/stage2/base_orm.py,sha256=nk9q0wlHxbuC7vzMtPCsnqeIRQufh3MCniMxu-h7__w,246
|
|
48
|
-
cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py,sha256=
|
|
49
|
-
cidc_api/models/db/stage2/cohort_orm.py,sha256=
|
|
50
|
-
cidc_api/models/db/stage2/comorbidity_orm.py,sha256=
|
|
51
|
-
cidc_api/models/db/stage2/consent_group_orm.py,sha256=
|
|
52
|
-
cidc_api/models/db/stage2/contact_orm.py,sha256=
|
|
53
|
-
cidc_api/models/db/stage2/demographic_orm.py,sha256=
|
|
54
|
-
cidc_api/models/db/stage2/disease_orm.py,sha256
|
|
55
|
-
cidc_api/models/db/stage2/exposure_orm.py,sha256=
|
|
56
|
-
cidc_api/models/db/stage2/file_orm.py,sha256=
|
|
57
|
-
cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py,sha256=
|
|
58
|
-
cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py,sha256=
|
|
59
|
-
cidc_api/models/db/stage2/gvhd_organ_acute_orm.py,sha256=
|
|
60
|
-
cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py,sha256=
|
|
61
|
-
cidc_api/models/db/stage2/institution_orm.py,sha256=
|
|
62
|
-
cidc_api/models/db/stage2/medical_history_orm.py,sha256=
|
|
63
|
-
cidc_api/models/db/stage2/other_clinical_endpoint_orm.py,sha256=
|
|
64
|
-
cidc_api/models/db/stage2/other_malignancy_orm.py,sha256=
|
|
65
|
-
cidc_api/models/db/stage2/participant_orm.py,sha256=
|
|
66
|
-
cidc_api/models/db/stage2/prior_treatment_orm.py,sha256=
|
|
67
|
-
cidc_api/models/db/stage2/publication_orm.py,sha256=
|
|
68
|
-
cidc_api/models/db/stage2/radiotherapy_dose_orm.py,sha256=
|
|
69
|
-
cidc_api/models/db/stage2/response_by_system_orm.py,sha256=
|
|
70
|
-
cidc_api/models/db/stage2/response_orm.py,sha256=
|
|
71
|
-
cidc_api/models/db/stage2/shipment_orm.py,sha256=
|
|
72
|
-
cidc_api/models/db/stage2/shipment_specimen_orm.py,sha256=
|
|
73
|
-
cidc_api/models/db/stage2/specimen_orm.py,sha256
|
|
74
|
-
cidc_api/models/db/stage2/stem_cell_transplant_orm.py,sha256=
|
|
75
|
-
cidc_api/models/db/stage2/surgery_orm.py,sha256=
|
|
76
|
-
cidc_api/models/db/stage2/therapy_agent_dose_orm.py,sha256=
|
|
77
|
-
cidc_api/models/db/stage2/treatment_orm.py,sha256=
|
|
78
|
-
cidc_api/models/db/stage2/trial_orm.py,sha256=
|
|
48
|
+
cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py,sha256=4V8RuiWGNf2c8Plzeikusslk8pZGhedDm_oXMMDcRbc,911
|
|
49
|
+
cidc_api/models/db/stage2/cohort_orm.py,sha256=ag3Epvnr8__3yfmyUjR7n9fBfMnBlpU1wPyvFZFIWpo,710
|
|
50
|
+
cidc_api/models/db/stage2/comorbidity_orm.py,sha256=EbjqUj9vsFEL0KJFqsc04I-KFGjILje2H71WD2uP3ZQ,881
|
|
51
|
+
cidc_api/models/db/stage2/consent_group_orm.py,sha256=d6r00XxWf7wHwYDAhBsEjSq3Ma2jixAa5l5mNDePNFk,1111
|
|
52
|
+
cidc_api/models/db/stage2/contact_orm.py,sha256=__YFzOrYnMs_TNC1IAI1EL-Xx2stRJTUkcru5GDYleY,1267
|
|
53
|
+
cidc_api/models/db/stage2/demographic_orm.py,sha256=qTO8w0AVTP7NpryfeinaR2X22ll6qA_jxCVGXmAjN60,1693
|
|
54
|
+
cidc_api/models/db/stage2/disease_orm.py,sha256=-PVtbDHFI9PmlYTOsry8LFbuR2YVMq_NrVNkDSZMbLo,1965
|
|
55
|
+
cidc_api/models/db/stage2/exposure_orm.py,sha256=LLuGsaW-dA8B5e__LP9LGAaU7QH5fo5-4Btx28mpE3A,811
|
|
56
|
+
cidc_api/models/db/stage2/file_orm.py,sha256=Zn6HzTz_UcsZRAJUi3OvcASMMtYNh4AFLQTcq_NuG3A,1253
|
|
57
|
+
cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py,sha256=n1FtHoUzpKEhDkC5z9VQ_pMKj-M-RpPb3tOerDYwIe4,1470
|
|
58
|
+
cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py,sha256=tA-upQ9q755klfu01HQyRVxBZq7RX_WclZWHuGHGBiw,1552
|
|
59
|
+
cidc_api/models/db/stage2/gvhd_organ_acute_orm.py,sha256=3ShOfSGKgrRBmu83KkpHY3-tCbLL60UWtpcbLqqnq9Y,838
|
|
60
|
+
cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py,sha256=1oVQal-jDylHhfbop43UKZ86YQzrSMu9qCiF8_ELXnY,862
|
|
61
|
+
cidc_api/models/db/stage2/institution_orm.py,sha256=gE0tceyc8mOqZRoOtOAJIAPJUSwJcDaU8L6J4HuUSYM,1248
|
|
62
|
+
cidc_api/models/db/stage2/medical_history_orm.py,sha256=4g-0nk8TIRpzrqwYTAlj9w6o_bPwzic0ygX6sK4x9SU,1282
|
|
63
|
+
cidc_api/models/db/stage2/other_clinical_endpoint_orm.py,sha256=k2Vglc8jASKzSBYBc6C5HCfKUD-cC-HKgvNmuxMFOQc,1091
|
|
64
|
+
cidc_api/models/db/stage2/other_malignancy_orm.py,sha256=qcPL29e8RwAGquMWEp2-ZGSecJGhlgpKdfYFNIHXHvI,1303
|
|
65
|
+
cidc_api/models/db/stage2/participant_orm.py,sha256=U2OICb5OUPpMuh7SPeQJ9GsX4uq5MDc2UYMt52BJYb4,3695
|
|
66
|
+
cidc_api/models/db/stage2/prior_treatment_orm.py,sha256=pvtB3DD6UPtS7GQpAinvJi64mlZjEwWVcp0bFaHpASo,1305
|
|
67
|
+
cidc_api/models/db/stage2/publication_orm.py,sha256=EMAq83WtgFYy5yBESgaajruB6fzYfMTLNyZDZiIJBLM,1040
|
|
68
|
+
cidc_api/models/db/stage2/radiotherapy_dose_orm.py,sha256=QBNmehh5VsKzkc59u_CHsFIgWYKsEp4lFyxp5HPMysM,1500
|
|
69
|
+
cidc_api/models/db/stage2/response_by_system_orm.py,sha256=FzbxFkcIt-IGzwejVITHVFZ5qYA5Oece3yEBqhzjPHw,1524
|
|
70
|
+
cidc_api/models/db/stage2/response_orm.py,sha256=p4xtydLvuZovVwcMvq3-WdLsKeKtIl6KTklGlWGVBSA,1163
|
|
71
|
+
cidc_api/models/db/stage2/shipment_orm.py,sha256=dDmj_PK2yAq23oh60sAcT2dkw5PjWmBoqO55YtFtExc,2007
|
|
72
|
+
cidc_api/models/db/stage2/shipment_specimen_orm.py,sha256=0ufXOQPDjgucu5qXQWDAKnRXajvuldsZezj5ez6hsgg,909
|
|
73
|
+
cidc_api/models/db/stage2/specimen_orm.py,sha256=-UDfQ0IlbmCs6GxCwVIF2eiFPgsjdgq_OAV-X58lH_U,4165
|
|
74
|
+
cidc_api/models/db/stage2/stem_cell_transplant_orm.py,sha256=YxiDGUXIiEtHyBU0zieniG1Ey8cTozuuRym6fv_8DsA,1097
|
|
75
|
+
cidc_api/models/db/stage2/surgery_orm.py,sha256=68g7__ZncQ6Yui5nGhSOHZjWIXWrb5PRAZRS6FCWD18,1018
|
|
76
|
+
cidc_api/models/db/stage2/therapy_agent_dose_orm.py,sha256=dRgXJqlv_EAGaPZ99xFR3xSXBiCPcC-G5e5eJSxqiVY,1306
|
|
77
|
+
cidc_api/models/db/stage2/treatment_orm.py,sha256=ualcYhXrl2obJ-wXDRx5riQsgOWEbdOmmKY8YNiPdZY,1919
|
|
78
|
+
cidc_api/models/db/stage2/trial_orm.py,sha256=7_5kA1Yv80GFQykK8AIlFC0vtrsb2H8xLstlgt8J370,2855
|
|
79
79
|
cidc_api/models/files/__init__.py,sha256=8BMTnUSHzUbz0lBeEQY6NvApxDD3GMWMduoVMos2g4Y,213
|
|
80
80
|
cidc_api/models/files/details.py,sha256=sZkGM7iEV4-J6IDQCdiMV6KBDLbPxCOqUMaU3aY9rX8,65153
|
|
81
|
-
cidc_api/models/files/facets.py,sha256=
|
|
81
|
+
cidc_api/models/files/facets.py,sha256=vieZ3z_tYB29NqtvNzvKqajVwxM5ZLLZKeyQTq5lheU,33776
|
|
82
82
|
cidc_api/models/pydantic/base.py,sha256=6Lsf4fekIS1E-DwZmgCXlfm3Qq9_23dA_v3iz1w2JoA,1427
|
|
83
83
|
cidc_api/models/pydantic/stage1/__init__.py,sha256=H-NDjCd8isHTgZ7sqz-MIbzC-PpW1kEtR-x-Dyc8r6Q,1667
|
|
84
84
|
cidc_api/models/pydantic/stage1/additional_treatment.py,sha256=TFVzjd1NPLSfH9UnL2W3aZhpZSzDsg97j9IK8t882YA,1050
|
|
@@ -153,13 +153,13 @@ cidc_api/shared/assay_handling.py,sha256=zzWSqQ-ddLVzX5IuHvsaSib2H1lnjXpo9Lbxaoq
|
|
|
153
153
|
cidc_api/shared/auth.py,sha256=EIP9AKokLNrI79Fkpv3P7WdzaddJIsuGGICc1W494X0,9110
|
|
154
154
|
cidc_api/shared/email_layout.html,sha256=pBoTNw3ACHH-ncZFaNvcy5bXMqPwizR78usb0uCYtIc,7670
|
|
155
155
|
cidc_api/shared/emails.py,sha256=8kNFEaSnKpY-GX_iE59QUhSp3c4_uzy3SpHYt2QjuqI,6121
|
|
156
|
-
cidc_api/shared/file_handling.py,sha256=
|
|
157
|
-
cidc_api/shared/gcloud_client.py,sha256=
|
|
156
|
+
cidc_api/shared/file_handling.py,sha256=ObsLvBrkwHo6Nv48GvFXDKElNNl4inGpxv--001H_xc,5843
|
|
157
|
+
cidc_api/shared/gcloud_client.py,sha256=lZuSmFjJizJ3R_rbKvNs3ddv9igy8MEYKcXv6toTIF0,39625
|
|
158
158
|
cidc_api/shared/jose.py,sha256=-qzGzEDAlokEp9E7WtBtQkXyyfPWTYXlwYpCqVJWmqM,1830
|
|
159
159
|
cidc_api/shared/rest_utils.py,sha256=RwR30WOUAYCxL7V-i2totEyeriG30GbBDvBcpLXhM9w,6594
|
|
160
160
|
cidc_api/shared/utils.py,sha256=-gLnzxCR9E6h0plt2xrNisUG5_Y6GhhVwz3DgDIzpvs,367
|
|
161
|
-
nci_cidc_api_modules-1.2.
|
|
162
|
-
nci_cidc_api_modules-1.2.
|
|
163
|
-
nci_cidc_api_modules-1.2.
|
|
164
|
-
nci_cidc_api_modules-1.2.
|
|
165
|
-
nci_cidc_api_modules-1.2.
|
|
161
|
+
nci_cidc_api_modules-1.2.44.dist-info/licenses/LICENSE,sha256=pNYWVTHaYonnmJyplmeAp7tQAjosmDpAWjb34jjv7Xs,1102
|
|
162
|
+
nci_cidc_api_modules-1.2.44.dist-info/METADATA,sha256=JU98ds9ZfGUDOaKnvb9FSYoWKbgWJNZWvj9TmDYT5eY,40270
|
|
163
|
+
nci_cidc_api_modules-1.2.44.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
164
|
+
nci_cidc_api_modules-1.2.44.dist-info/top_level.txt,sha256=rNiRzL0lJGi5Q9tY9uSoMdTbJ-7u5c_D2E86KA94yRA,9
|
|
165
|
+
nci_cidc_api_modules-1.2.44.dist-info/RECORD,,
|
|
File without changes
|
{nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{nci_cidc_api_modules-1.2.42.dist-info → nci_cidc_api_modules-1.2.44.dist-info}/top_level.txt
RENAMED
|
File without changes
|