Skip to content

Commit cc36228

Browse files
committed
Merge branch 'main' into HEA-596/Relax-mandatory-field-requirements-for-some-LivelihoodActivity-subclasses
2 parents 8c5449c + ede1d27 commit cc36228

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

pipelines/assets/base.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def corrected_files(context: AssetExecutionContext, config: BSSMetadataConfig) -
190190
partition_key = context.asset_partition_key_for_output()
191191
livelihood_zone_baseline = LivelihoodZoneBaseline.objects.get_by_natural_key(*partition_key.split("~")[1:])
192192

193-
def validate_previous_value(cell, expected_previous_value, previous_value):
193+
def validate_previous_value(worksheet_name, cell_reference, expected_previous_value, previous_value):
194194
"""
195195
Inline function to validate the existing value of a cell is the expected one, prior to correcting it.
196196
"""
@@ -210,7 +210,7 @@ def validate_previous_value(cell, expected_previous_value, previous_value):
210210
if expected_previous_value != previous_value:
211211
raise ValueError(
212212
"Unexpected prior value in source BSS. "
213-
f"BSS `{partition_key}`, cell `{cell}`, "
213+
f"BSS `{partition_key}`, cell `'{worksheet_name}'!{cell_reference}`, "
214214
f"value found `{previous_value}`, expected `{expected_previous_value}`."
215215
)
216216

@@ -280,12 +280,16 @@ def validate_previous_value(cell, expected_previous_value, previous_value):
280280
previous_value = xlrd.error_text_from_code[
281281
xlrd_wb.sheet_by_name(correction.worksheet_name).cell_value(row - 1, col - 1)
282282
]
283-
validate_previous_value(cell, correction.previous_value, previous_value)
283+
validate_previous_value(
284+
correction.worksheet_name, cell, correction.previous_value, previous_value
285+
)
284286
# xlwt uses 0-based indexes, but coordinate_to_tuple uses 1-based, so offset the values
285287
wb.get_sheet(correction.worksheet_name).write(row - 1, col - 1, correction.value)
286288
else:
287289
cell = wb[correction.worksheet_name][cell]
288-
validate_previous_value(cell, correction.previous_value, cell.value)
290+
validate_previous_value(
291+
correction.worksheet_name, cell.coordinate, correction.previous_value, cell.value
292+
)
289293
cell.value = correction.value
290294
cell.comment = Comment(
291295
f"{correction.author__username} on {correction.correction_date.date().isoformat()}: {correction.comment}", # NOQA: E501

pipelines/assets/livelihood_activity_regexes.json

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,12 @@
739739
false,
740740
"number_of_local_measures"
741741
],
742+
[
743+
"autre culture(?: de rente)?{separator_pattern} (?:type|nom)",
744+
null,
745+
true,
746+
"product__name"
747+
],
742748
[
743749
"autre culture{separator_pattern} \\(?{product_pattern}\\)?(?: type)?",
744750
null,
@@ -769,12 +775,6 @@
769775
true,
770776
"quantity_sold"
771777
],
772-
[
773-
"autre culture de rente: type",
774-
null,
775-
true,
776-
"product__name"
777-
],
778778
[
779779
"autre culture de rente: \\(?{product_pattern}\\)?",
780780
null,
@@ -793,6 +793,12 @@
793793
true,
794794
"quantity_sold"
795795
],
796+
[
797+
"{product_pattern}: (?P<unit_of_measure_id>kg|l)? {vendu_pattern}",
798+
null,
799+
true,
800+
"quantity_sold"
801+
],
796802
[
797803
"{product_pattern}: (?P<unit_of_measure_id>kg|l)? sold",
798804
null,

pipelines_tests/test_assets/test_livelihood_activity_regexes.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,10 @@
519519
"is_start": true,
520520
"attribute": "product__name"
521521
},
522+
"Autre culture: nom": {
523+
"is_start": true,
524+
"attribute": "product__name"
525+
},
522526
"chou: qtité produite": {
523527
"is_start": true,
524528
"product_id": "chou",

0 commit comments

Comments
 (0)