Skip to content

Commit

Permalink
Merge pull request #50 from ImageMarkup/deprecate-benign-malignant
Browse files Browse the repository at this point in the history
Deprecate benign_malignant
  • Loading branch information
danlamanna authored Dec 18, 2024
2 parents bdbbb4d + 0e417c2 commit ca9c725
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 44 deletions.
23 changes: 0 additions & 23 deletions isic_metadata/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,29 +347,6 @@ def lower(cls, v: Any) -> Any:
v = v.lower()
return v

@model_validator(mode="after")
def validate_no_benign_melanoma(self) -> MetadataRow:
if not self.benign_malignant:
return self

if (DiagnosisEnum.is_melanoma(self.diagnosis) and self.benign_malignant == "benign") or (
DiagnosisEnum.is_nevus(self.diagnosis)
and self.benign_malignant
not in [
BenignMalignantEnum.benign,
BenignMalignantEnum.indeterminate_benign,
BenignMalignantEnum.indeterminate,
]
):
raise error_incompatible_fields(
"diagnosis",
"benign_malignant",
self.diagnosis.value,
self.benign_malignant.value,
)

return self

@model_validator(mode="after")
def validate_melanoma_fields(self) -> MetadataRow:
melanoma_fields: list[str] = [
Expand Down
17 changes: 0 additions & 17 deletions tests/test_dependent_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,9 @@
from pydantic import ValidationError
import pytest

from isic_metadata.diagnosis_hierarchical import DiagnosisEnum
from isic_metadata.metadata import MetadataRow


@pytest.mark.parametrize(("melanoma_diagnosis"), DiagnosisEnum._melanoma_diagnoses())
def test_diagnosis_no_benign_melanoma(melanoma_diagnosis: str):
with pytest.raises(ValidationError) as excinfo:
MetadataRow.model_validate({"diagnosis": melanoma_diagnosis, "benign_malignant": "benign"})
assert len(excinfo.value.errors()) == 1
assert " is incompatible with benign_malignant" in excinfo.value.errors()[0]["msg"]


@pytest.mark.parametrize("benign_malignant", ["malignant", "indeterminate/malignant"])
def test_diagnosis_no_malignant_nevus(benign_malignant: str):
with pytest.raises(ValidationError) as excinfo:
MetadataRow.model_validate({"diagnosis": "Nevus", "benign_malignant": benign_malignant})
assert len(excinfo.value.errors()) == 1
assert " is incompatible with benign_malignant" in excinfo.value.errors()[0]["msg"]


@pytest.mark.parametrize("diagnosis", [None, "Basal cell carcinoma"])
@pytest.mark.parametrize(
("field_name", "field_value"),
Expand Down
4 changes: 0 additions & 4 deletions tests/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,6 @@ def test_fitzpatrick_skin_type():
MetadataRow.model_validate({"fitzpatrick_skin_type": "I"})


def test_benign_malignant():
MetadataRow.model_validate({"benign_malignant": "benign"})


@pytest.mark.parametrize(
("raw", "parsed"),
[
Expand Down

0 comments on commit ca9c725

Please sign in to comment.