diff --git a/pyproject.toml b/pyproject.toml index b43a84b3..26fb6774 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ dependencies = [ "pandas>=1.0.0", "pyphen>=0.11.0,<0.15.0", "ftfy>=6.0.3,<6.1.0", + "pydantic>=2.0", ] requires-python = ">=3.8" diff --git a/src/textdescriptives/components/quality_data_classes.py b/src/textdescriptives/components/quality_data_classes.py index b8251d70..4a5bac79 100644 --- a/src/textdescriptives/components/quality_data_classes.py +++ b/src/textdescriptives/components/quality_data_classes.py @@ -2,7 +2,7 @@ from typing import Any, Dict, Optional, Tuple, Union -from pydantic import BaseModel, Extra, Field +from pydantic import ConfigDict, BaseModel, Field Interval = Tuple[Optional[float], Optional[float]] @@ -20,9 +20,7 @@ class ThresholdsOutput(BaseModel): >>> t_out.passed True """ - - class Config: - extra = Extra.forbid + model_config = ConfigDict(extra="forbid") threshold: Union[Interval, bool, None] value: Union[float, None] @@ -60,9 +58,7 @@ def __eq__(self, other: Any) -> bool: class QualityThresholds(BaseModel): """Thresholds for quality metrics.""" - - class Config: - extra = Extra.forbid + model_config = ConfigDict(extra="forbid") n_stop_words: Interval = Field( (2, None), @@ -163,9 +159,7 @@ class Config: class QualityOutput(BaseModel): """The output of the quality function.""" - - class Config: - extra = Extra.forbid + model_config = ConfigDict(extra="forbid") n_stop_words: ThresholdsOutput = Field( ...,