Skip to content

Commit

Permalink
add default value None for all optional parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Voigt committed Aug 2, 2023
1 parent 5ad874b commit 70a4032
Showing 1 changed file with 71 additions and 71 deletions.
142 changes: 71 additions & 71 deletions pyscicat/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ class DatasetType(str, enum.Enum):
class MongoQueryable(BaseModel):
"""Many objects in SciCat are mongo queryable"""

createdBy: Optional[str]
updatedBy: Optional[str]
updatedAt: Optional[str]
createdAt: Optional[str]
createdBy: Optional[str] = None
updatedBy: Optional[str] = None
updatedAt: Optional[str] = None
createdAt: Optional[str] = None


class Ownable(MongoQueryable):
"""Many objects in SciCat are ownable"""

ownerGroup: str
accessGroups: Optional[List[str]]
instrumentGroup: Optional[str]
accessGroups: Optional[List[str]] = None
instrumentGroup: Optional[str] = None


class User(BaseModel):
Expand All @@ -47,19 +47,19 @@ class Proposal(Ownable):
"""

proposalId: str
pi_email: Optional[str]
pi_firstname: Optional[str]
pi_lastname: Optional[str]
pi_email: Optional[str] = None
pi_firstname: Optional[str] = None
pi_lastname: Optional[str] = None
email: str
firstname: Optional[str]
lastname: Optional[str]
title: Optional[str] # required in next backend version
abstract: Optional[str]
startTime: Optional[str]
endTime: Optional[str]
firstname: Optional[str] = None
lastname: Optional[str] = None
title: Optional[str] = None # required in next backend version
abstract: Optional[str] = None
startTime: Optional[str] = None
endTime: Optional[str] = None
MeasurementPeriodList: Optional[
List[dict]
] # may need updating with the measurement period model
] = None # may need updating with the measurement period model


class Sample(Ownable):
Expand All @@ -68,10 +68,10 @@ class Sample(Ownable):
Raw datasets should be linked to such sample definitions.
"""

sampleId: Optional[str]
owner: Optional[str]
description: Optional[str]
sampleCharacteristics: Optional[dict]
sampleId: Optional[str] = None
owner: Optional[str] = None
description: Optional[str] = None
sampleCharacteristics: Optional[dict] = None
isPublished: bool = False


Expand All @@ -83,72 +83,72 @@ class Job(MongoQueryable):
track of analysis jobs e.g. for automated analysis workflows
"""

id: Optional[str]
id: Optional[str] = None
emailJobInitiator: str
type: str
creationTime: Optional[str] # not sure yet which ones are optional or not.
executionTime: Optional[str]
jobParams: Optional[dict]
jobStatusMessage: Optional[str]
datasetList: Optional[dict] # documentation says dict, but should maybe be list?
jobResultObject: Optional[dict] # ibid.
creationTime: Optional[str] = None # not sure yet which ones are optional or not.
executionTime: Optional[str] = None
jobParams: Optional[dict] = None
jobStatusMessage: Optional[str] = None
datasetList: Optional[dict] = None # documentation says dict, but should maybe be list?
jobResultObject: Optional[dict] = None # ibid.


class Instrument(MongoQueryable):
"""
Instrument class, most of this is flexibly definable in customMetadata
"""

pid: Optional[str]
pid: Optional[str] = None
name: str
customMetadata: Optional[dict]
customMetadata: Optional[dict] = None


class Dataset(Ownable):
"""
A dataset in SciCat, base class for derived and raw datasets
"""

pid: Optional[str]
classification: Optional[str]
pid: Optional[str] = None
classification: Optional[str] = None
contactEmail: str
creationTime: str # datetime
datasetName: Optional[str]
description: Optional[str]
history: Optional[List[dict]] # list of foreigh key ids to the Messages table
instrumentId: Optional[str]
datasetName: Optional[str] = None
description: Optional[str] = None
history: Optional[List[dict]] = None # list of foreigh key ids to the Messages table
instrumentId: Optional[str] = None
isPublished: Optional[bool] = False
keywords: Optional[List[str]]
license: Optional[str]
numberOfFiles: Optional[int]
numberOfFilesArchived: Optional[int]
orcidOfOwner: Optional[str]
packedSize: Optional[int]
keywords: Optional[List[str]] = None
license: Optional[str] = None
numberOfFiles: Optional[int] = None
numberOfFilesArchived: Optional[int] = None
orcidOfOwner: Optional[str] = None
packedSize: Optional[int] = None
owner: str
ownerEmail: Optional[str]
sharedWith: Optional[List[str]]
size: Optional[int]
ownerEmail: Optional[str] = None
sharedWith: Optional[List[str]] = None
size: Optional[int] = None
sourceFolder: str
sourceFolderHost: Optional[str]
techniques: Optional[List[dict]] # with {'pid':pid, 'name': name} as entries
sourceFolderHost: Optional[str] = None
techniques: Optional[List[dict]] = None # with {'pid':pid, 'name': name} as entries
type: DatasetType
validationStatus: Optional[str]
version: Optional[str]
scientificMetadata: Optional[Dict]
validationStatus: Optional[str] = None
version: Optional[str] = None
scientificMetadata: Optional[Dict] = None


class RawDataset(Dataset):
"""
Raw datasets from which derived datasets are... derived.
"""

principalInvestigator: Optional[str]
creationLocation: Optional[str]
principalInvestigator: Optional[str] = None
creationLocation: Optional[str] = None
type: DatasetType = DatasetType.raw
dataFormat: Optional[str]
endTime: Optional[str] # datetime
sampleId: Optional[str]
proposalId: Optional[str]
dataFormat: Optional[str] = None
endTime: Optional[str] = None # datetime
sampleId: Optional[str] = None
proposalId: Optional[str] = None


class DerivedDataset(Dataset):
Expand All @@ -159,8 +159,8 @@ class DerivedDataset(Dataset):
investigator: str
inputDatasets: List[str]
usedSoftware: List[str]
jobParameters: Optional[dict]
jobLogData: Optional[str]
jobParameters: Optional[dict] = None
jobLogData: Optional[str] = None
type: DatasetType = DatasetType.derived


Expand All @@ -173,8 +173,8 @@ class DataFile(MongoQueryable):

path: str
size: int
time: Optional[str]
chk: Optional[str]
time: Optional[str] = None
chk: Optional[str] = None
uid: Optional[str] = None
gid: Optional[str] = None
perm: Optional[str] = None
Expand All @@ -185,13 +185,13 @@ class Datablock(Ownable):
A Datablock maps between a Dataset and contains DataFiles
"""

id: Optional[str]
id: Optional[str] = None
# archiveId: str = None listed in catamel model, but comes back invalid?
size: int
packedSize: Optional[int]
chkAlg: Optional[int]
packedSize: Optional[int] = None
chkAlg: Optional[int] = None
version: str = None
instrumentGroup: Optional[str]
instrumentGroup: Optional[str] = None
dataFileList: List[DataFile]
datasetId: str

Expand All @@ -201,10 +201,10 @@ class OrigDatablock(Ownable):
An Original Datablock maps between a Dataset and contains DataFiles
"""

id: Optional[str]
id: Optional[str] = None
# archiveId: str = None listed in catamel model, but comes back invalid?
size: int
instrumentGroup: Optional[str]
instrumentGroup: Optional[str] = None
dataFileList: List[DataFile]
datasetId: str

Expand All @@ -214,9 +214,9 @@ class Attachment(Ownable):
Attachments can be any base64 encoded string...thumbnails are attachments
"""

id: Optional[str]
id: Optional[str] = None
thumbnail: str
caption: Optional[str]
caption: Optional[str] = None
datasetId: str


Expand All @@ -231,17 +231,17 @@ class PublishedData:
publisher: str
publicationYear: int
title: str
url: Optional[str]
url: Optional[str] = None
abstract: str
dataDescription: str
resourceType: str
numberOfFiles: Optional[int]
sizeOfArchive: Optional[int]
numberOfFiles: Optional[int] = None
sizeOfArchive: Optional[int] = None
pidArray: List[str]
authors: List[str]
registeredTime: str
status: str
thumbnail: Optional[str]
thumbnail: Optional[str] = None
createdBy: str
updatedBy: str
createdAt: str
Expand Down

0 comments on commit 70a4032

Please sign in to comment.