Skip to content

Commit 2b6958b

Browse files
committed
refactor: update type aliases for optional fields and modify contact names in CSV processing
1 parent 4ef7bff commit 2b6958b

3 files changed

Lines changed: 26 additions & 13 deletions

File tree

schemas/well_inventory.py

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ def email_validator_function(email_str):
118118
Optional[AddressType], BeforeValidator(blank_to_none)
119119
]
120120
ContactRoleField: TypeAlias = Annotated[Optional[Role], BeforeValidator(blank_to_none)]
121-
FloatOrNone: TypeAlias = Annotated[Optional[float], BeforeValidator(empty_str_to_none)]
121+
OptionalFloat: TypeAlias = Annotated[
122+
Optional[float], BeforeValidator(empty_str_to_none)
123+
]
122124
MonitoryFrequencyField: TypeAlias = Annotated[
123125
Optional[MonitoringFrequency], BeforeValidator(blank_to_none)
124126
]
@@ -131,6 +133,11 @@ def email_validator_function(email_str):
131133
Optional[str], BeforeValidator(email_validator_function)
132134
]
133135

136+
OptionalBool: TypeAlias = Annotated[Optional[bool], BeforeValidator(empty_str_to_none)]
137+
OptionalDateTime: TypeAlias = Annotated[
138+
Optional[datetime], BeforeValidator(empty_str_to_none)
139+
]
140+
134141

135142
# ============= EOF =============================================
136143
class WellInventoryRow(BaseModel):
@@ -203,22 +210,22 @@ class WellInventoryRow(BaseModel):
203210

204211
directions_to_site: Optional[str] = None
205212
specific_location_of_well: Optional[str] = None
206-
repeat_measurement_permission: Optional[bool] = None
207-
sampling_permission: Optional[bool] = None
208-
datalogger_installation_permission: Optional[bool] = None
209-
public_availability_acknowledgement: Optional[bool] = None
213+
repeat_measurement_permission: OptionalBool = None
214+
sampling_permission: OptionalBool = None
215+
datalogger_installation_permission: OptionalBool = None
216+
public_availability_acknowledgement: OptionalBool = None
210217
special_requests: Optional[str] = None
211218
ose_well_record_id: Optional[str] = None
212-
date_drilled: Optional[datetime] = None
219+
date_drilled: OptionalDateTime = None
213220
completion_source: Optional[str] = None
214-
total_well_depth_ft: FloatOrNone = None
221+
total_well_depth_ft: OptionalFloat = None
215222
historic_depth_to_water_ft: Optional[float] = None
216223
depth_source: Optional[str] = None
217224
well_pump_type: Optional[str] = None
218-
well_pump_depth_ft: FloatOrNone = None
219-
is_open: Optional[bool] = None
220-
datalogger_possible: Optional[bool] = None
221-
casing_diameter_ft: FloatOrNone = None
225+
well_pump_depth_ft: OptionalFloat = None
226+
is_open: OptionalBool = None
227+
datalogger_possible: OptionalBool = None
228+
casing_diameter_ft: OptionalFloat = None
222229
measuring_point_description: Optional[str] = None
223230
well_purpose: Optional[WellPurposeEnum] = None
224231
well_hole_status: Optional[str] = None
@@ -228,7 +235,7 @@ class WellInventoryRow(BaseModel):
228235
contact_special_requests_notes: Optional[str] = None
229236
sampling_scenario_notes: Optional[str] = None
230237
well_measuring_notes: Optional[str] = None
231-
sample_possible: Optional[bool] = None
238+
sample_possible: OptionalBool = None
232239

233240
# @field_validator("contact_1_address_1_postal_code", mode="before")
234241
# def validate_postal_code(cls, v):

tests/features/environment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ def add_transducer_observation(context, session, block, deployment_id, value):
357357
def before_all(context):
358358
context.objects = {}
359359
rebuild = False
360-
# rebuild = True
360+
rebuild = True
361361
if rebuild:
362362
erase_and_rebuild_db()
363363

tests/features/steps/well-inventory-csv-given.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,12 @@ def step_impl(context: Context):
303303
def step_impl(context: Context):
304304
df = _get_valid_df(context)
305305
df["well_name_point_id"] = df["well_name_point_id"].apply(lambda x: "XY-")
306+
307+
# change contact name
308+
df.loc[0, "contact_1_name"] = "Contact 1"
309+
df.loc[0, "contact_2_name"] = "Contact 2"
310+
df.loc[1, "contact_1_name"] = "Contact 3"
311+
306312
_set_content_from_df(context, df)
307313

308314

0 commit comments

Comments
 (0)