Skip to content

Commit ff454f4

Browse files
committed
feat: enhance organization validation and improve logging verbosity in transfer process
1 parent 6df269b commit ff454f4

3 files changed

Lines changed: 25 additions & 22 deletions

File tree

.pre-commit-config.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ repos:
2727
always_run: true
2828
args:
2929
- -x
30-
- -vv
31-
- --durations=20
3230

3331
# - repo: https://github.com/pre-commit/mirrors-mypy
3432
# rev: v1.10.0 # Use the latest stable version or pin to your preference

transfers/contact_transfer.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,10 @@ def _get_organization(row, co_to_org_mapper):
219219
organization = co_to_org_mapper.get(row.Company, row.Company)
220220

221221
# use Organization enum to catch validation errors
222-
Organization(organization)
222+
try:
223+
Organization(organization)
224+
except ValueError:
225+
return None
223226

224227
return organization
225228

@@ -239,7 +242,7 @@ def _add_second_contact(session, row, thing, co_to_org_mapper, added):
239242

240243
organization = _get_organization(row, co_to_org_mapper)
241244
if (name, organization) in added:
242-
return
245+
return None
243246

244247
added.append((name, organization))
245248

transfers/well_transfer.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,22 +80,22 @@
8080

8181
def _get_first_visit_date(row) -> datetime | None:
8282
first_visit_date = None
83+
84+
def _extract_date(date_str: str) -> datetime:
85+
return datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S.%f").date()
86+
8387
if row.DateCreated and row.SiteDate:
84-
date_created = datetime.strptime(row.DateCreated, "%Y-%m-%d %H:%M:%S.%f").date()
85-
site_date = datetime.strptime(row.SiteDate, "%Y-%m-%d %H:%M:%S.%f").date()
88+
date_created = _extract_date(row.DateCreated)
89+
site_date = _extract_date(row.SiteDate)
8690

8791
if date_created < site_date:
8892
first_visit_date = date_created
8993
else:
9094
first_visit_date = site_date
9195
elif row.DateCreated and not row.SiteDate:
92-
first_visit_date = datetime.strptime(
93-
row.DateCreated, "%Y-%m-%d %H:%M:%S.%f"
94-
).date()
96+
first_visit_date = _extract_date(row.DateCreated)
9597
elif not row.DateCreated and row.SiteDate:
96-
first_visit_date = datetime.strptime(
97-
row.SiteDate, "%Y-%m-%d %H:%M:%S.%f"
98-
).date()
98+
first_visit_date = _extract_date(row.SiteDate)
9999

100100
return first_visit_date
101101

@@ -432,9 +432,6 @@ def _add_formation_zone(self, row, well, formations):
432432
)
433433
else:
434434
# Formation does NOT exist: Do not create new formation. Flag and log for review
435-
logger.critical(
436-
f"MISSING FORMATION: Formation '{formation_code}' not found for well {well.name}. Flagged for review."
437-
)
438435
self._capture_error(
439436
row.PointID, f"Unknown formation: {formation_code}", "FormationZone"
440437
)
@@ -740,9 +737,10 @@ def _after_hook_chunk(self, well, formations, measuring_point_estimator):
740737
target_table=target_table,
741738
)
742739
objs.append(status_history)
743-
logger.info(
744-
f" Added monitoring status for well {well.name}: {status_value}"
745-
)
740+
if self.verbose:
741+
logger.info(
742+
f" Added monitoring status for well {well.name}: {status_value}"
743+
)
746744

747745
for code in NMA_MONITORING_FREQUENCY.keys():
748746
if code in row.MonitoringStatus:
@@ -755,9 +753,10 @@ def _after_hook_chunk(self, well, formations, measuring_point_estimator):
755753
)
756754

757755
objs.append(monitoring_frequency_history)
758-
logger.info(
759-
f" Adding '{monitoring_frequency}' monitoring frequency for well {well.name}"
760-
)
756+
if self.verbose:
757+
logger.info(
758+
f" Adding '{monitoring_frequency}' monitoring frequency for well {well.name}"
759+
)
761760

762761
if notna(row.Status):
763762

@@ -772,7 +771,10 @@ def _after_hook_chunk(self, well, formations, measuring_point_estimator):
772771
target_table=target_table,
773772
)
774773
objs.append(status_history)
775-
logger.info(f" Added well status for well {well.name}: {status_value}")
774+
if self.verbose:
775+
logger.info(
776+
f" Added well status for well {well.name}: {status_value}"
777+
)
776778
return objs
777779

778780

0 commit comments

Comments
 (0)