Pre code clean-up
This commit is contained in:
@@ -49,12 +49,13 @@ class RSLNamer(object):
|
||||
str: parsed submission type
|
||||
"""
|
||||
def st_from_path(filename:Path) -> str:
|
||||
logger.debug(f"Using path method for {filename}.")
|
||||
logger.info(f"Using path method for {filename}.")
|
||||
if filename.exists():
|
||||
wb = load_workbook(filename)
|
||||
try:
|
||||
# NOTE: Gets first category in the metadata.
|
||||
submission_type = next(item.strip().title() for item in wb.properties.category.split(";"))
|
||||
categories = wb.properties.category.split(";")
|
||||
submission_type = next(item.strip().title() for item in categories)
|
||||
except (StopIteration, AttributeError):
|
||||
sts = {item.name: item.get_template_file_sheets() for item in SubmissionType.query()}
|
||||
try:
|
||||
@@ -67,12 +68,12 @@ class RSLNamer(object):
|
||||
return submission_type
|
||||
def st_from_str(filename:str) -> str:
|
||||
regex = BasicSubmission.construct_regex()
|
||||
logger.debug(f"Using string method for {filename}.")
|
||||
logger.debug(f"Using regex: {regex}")
|
||||
logger.info(f"Using string method for {filename}.")
|
||||
# logger.debug(f"Using regex: {regex}")
|
||||
m = regex.search(filename)
|
||||
try:
|
||||
submission_type = m.lastgroup
|
||||
logger.debug(f"Got submission type: {submission_type}")
|
||||
# logger.debug(f"Got submission type: {submission_type}")
|
||||
except AttributeError as e:
|
||||
submission_type = None
|
||||
logger.critical(f"No submission type found or submission type found!: {e}")
|
||||
@@ -118,7 +119,7 @@ class RSLNamer(object):
|
||||
regex = re.compile(rf'{regex}', re.IGNORECASE | re.VERBOSE)
|
||||
except re.error as e:
|
||||
regex = BasicSubmission.construct_regex()
|
||||
logger.debug(f"Using regex: {regex}")
|
||||
logger.info(f"Using regex: {regex}")
|
||||
match filename:
|
||||
case Path():
|
||||
m = regex.search(filename.stem)
|
||||
|
||||
@@ -57,14 +57,14 @@ class PydReagent(BaseModel):
|
||||
@classmethod
|
||||
def rescue_lot_string(cls, value):
|
||||
if value is not None:
|
||||
return convert_nans_to_nones(str(value))
|
||||
return convert_nans_to_nones(str(value).strip())
|
||||
return value
|
||||
|
||||
@field_validator("lot")
|
||||
@classmethod
|
||||
def enforce_lot_string(cls, value):
|
||||
if value is not None:
|
||||
return value.upper()
|
||||
return value.upper().strip()
|
||||
return value
|
||||
|
||||
@field_validator("expiry", mode="before")
|
||||
@@ -97,9 +97,9 @@ class PydReagent(BaseModel):
|
||||
@classmethod
|
||||
def enforce_name(cls, value, values):
|
||||
if value is not None:
|
||||
return convert_nans_to_nones(str(value))
|
||||
return convert_nans_to_nones(str(value).strip())
|
||||
else:
|
||||
return values.data['role']
|
||||
return values.data['role'].strip()
|
||||
|
||||
def improved_dict(self) -> dict:
|
||||
"""
|
||||
@@ -210,6 +210,18 @@ class PydSample(BaseModel, extra='allow'):
|
||||
def int_to_str(cls, value):
|
||||
return str(value)
|
||||
|
||||
@field_validator("submitter_id")
|
||||
@classmethod
|
||||
def strip_sub_id(cls, value):
|
||||
match value:
|
||||
case dict():
|
||||
value['value'] = value['value'].strip().upper()
|
||||
case str():
|
||||
value = value.strip().upper()
|
||||
case _:
|
||||
pass
|
||||
return value
|
||||
|
||||
def improved_dict(self) -> dict:
|
||||
"""
|
||||
Constructs a dictionary consisting of model.fields and model.extras
|
||||
@@ -439,6 +451,7 @@ class PydSubmission(BaseModel, extra='allow'):
|
||||
if value['value'] in [None, "None"]:
|
||||
return dict(value=uuid.uuid4().hex.upper(), missing=True)
|
||||
else:
|
||||
value['value'] = value['value'].strip()
|
||||
return value
|
||||
|
||||
@field_validator("submitted_date", mode="before")
|
||||
@@ -523,6 +536,7 @@ class PydSubmission(BaseModel, extra='allow'):
|
||||
# logger.debug(f"RSL-plate initial value: {value['value']} and other values: {values.data}")
|
||||
sub_type = values.data['submission_type']['value']
|
||||
if check_not_nan(value['value']):
|
||||
value['value'] = value['value'].strip()
|
||||
return value
|
||||
else:
|
||||
# logger.debug("Constructing plate sub_type.")
|
||||
@@ -808,6 +822,7 @@ class PydSubmission(BaseModel, extra='allow'):
|
||||
for sample in self.samples:
|
||||
sample, associations, _ = sample.toSQL(submission=instance)
|
||||
# logger.debug(f"Sample SQL object to be added to submission: {sample.__dict__}")
|
||||
logger.debug(associations)
|
||||
for assoc in associations:
|
||||
if assoc is not None and assoc not in instance.submission_sample_associations:
|
||||
instance.submission_sample_associations.append(assoc)
|
||||
|
||||
Reference in New Issue
Block a user