aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJán Jančár2024-02-01 18:58:46 +0100
committerGitHub2024-02-01 18:58:46 +0100
commit6d129a19dc77f15981cbdb27ace62e91206deac7 (patch)
tree0a4480530cf860dfc03ce123a07a71e139a9946c
parent9b088033a391871be67e736280a840b1b690011e (diff)
parent748d259c146cabbbe64808cc3ae4620ab1374855 (diff)
downloadsec-certs-6d129a19dc77f15981cbdb27ace62e91206deac7.tar.gz
sec-certs-6d129a19dc77f15981cbdb27ace62e91206deac7.tar.zst
sec-certs-6d129a19dc77f15981cbdb27ace62e91206deac7.zip
Merge pull request #385 from crocs-muni/fix/pydantic-migrate
Fix a bunch of deprecation warnings
-rw-r--r--src/sec_certs/configuration.py13
-rw-r--r--src/sec_certs/dataset/cc.py6
-rw-r--r--src/sec_certs/dataset/fips.py4
-rw-r--r--src/sec_certs/sample/cc_scheme.py2
4 files changed, 12 insertions, 13 deletions
diff --git a/src/sec_certs/configuration.py b/src/sec_certs/configuration.py
index 3ebb22bd..81fac197 100644
--- a/src/sec_certs/configuration.py
+++ b/src/sec_certs/configuration.py
@@ -6,7 +6,7 @@ from typing import Literal, Optional
import yaml
from pydantic import AnyHttpUrl, Field
-from pydantic_settings import BaseSettings
+from pydantic_settings import BaseSettings, SettingsConfigDict
class Configuration(BaseSettings):
@@ -15,8 +15,7 @@ class Configuration(BaseSettings):
While not a singleton, the `config` instance from this module is meant to be primarily used.
"""
- class Config:
- env_prefix = "seccerts_"
+ model_config = SettingsConfigDict(env_prefix="seccerts_")
log_filepath: Path = Field(
"./cert_processing_log.log",
@@ -122,12 +121,12 @@ class Configuration(BaseSettings):
"""
Returns keys of the config that have non-default value, i.e. were provided as kwargs, env. vars. or additionaly set.
"""
- return {key for key, value in Configuration.__fields__.items() if getattr(self, key) != value.default}
+ return {key for key, value in Configuration.model_fields.items() if getattr(self, key) != value.default}
def _set_attrs_from_cfg(self, other_cfg: Configuration, fields_to_set: set[str] | None) -> None:
if not fields_to_set:
- fields_to_set = set(Configuration.__fields__.keys())
- for field in [x for x in other_cfg.__fields__ if x in fields_to_set]:
+ fields_to_set = set(Configuration.model_fields.keys())
+ for field in [x for x in other_cfg.model_fields if x in fields_to_set]:
setattr(self, field, getattr(other_cfg, field))
def load_from_yaml(self, yaml_path: str | Path) -> None:
@@ -139,7 +138,7 @@ class Configuration(BaseSettings):
"""
with Path(yaml_path).open("r") as handle:
data = yaml.safe_load(handle)
- other_cfg = Configuration.parse_obj(data)
+ other_cfg = Configuration.model_validate(data)
keys_to_rewrite = set(data.keys()).union(other_cfg._get_nondefault_keys())
self._set_attrs_from_cfg(other_cfg, keys_to_rewrite)
diff --git a/src/sec_certs/dataset/cc.py b/src/sec_certs/dataset/cc.py
index 4eee93b6..398f2435 100644
--- a/src/sec_certs/dataset/cc.py
+++ b/src/sec_certs/dataset/cc.py
@@ -83,8 +83,8 @@ class CCDataset(Dataset[CCCertificate, CCAuxiliaryDatasets], ComplexSerializable
df = pd.DataFrame([x.pandas_tuple for x in self.certs.values()], columns=CCCertificate.pandas_columns)
df = df.set_index("dgst")
- df.not_valid_before = pd.to_datetime(df.not_valid_before, infer_datetime_format=True, errors="coerce")
- df.not_valid_after = pd.to_datetime(df.not_valid_after, infer_datetime_format=True, errors="coerce")
+ df.not_valid_before = pd.to_datetime(df.not_valid_before, errors="coerce")
+ df.not_valid_after = pd.to_datetime(df.not_valid_after, errors="coerce")
df = df.astype(
{"category": "category", "status": "category", "scheme": "category", "cert_lab": "category"}
).fillna(value=np.nan)
@@ -905,7 +905,7 @@ class CCDatasetMaintenanceUpdates(CCDataset, ComplexSerializableType):
df = df.set_index("dgst")
df.index.name = "dgst"
- df.maintenance_date = pd.to_datetime(df.maintenance_date, infer_datetime_format=True, errors="coerce")
+ df.maintenance_date = pd.to_datetime(df.maintenance_date, errors="coerce")
return df.fillna(value=np.nan)
@classmethod
diff --git a/src/sec_certs/dataset/fips.py b/src/sec_certs/dataset/fips.py
index a3d24b15..77f38754 100644
--- a/src/sec_certs/dataset/fips.py
+++ b/src/sec_certs/dataset/fips.py
@@ -326,8 +326,8 @@ class FIPSDataset(Dataset[FIPSCertificate, FIPSAuxiliaryDatasets], ComplexSerial
df = pd.DataFrame([x.pandas_tuple for x in self.certs.values()], columns=FIPSCertificate.pandas_columns)
df = df.set_index("dgst")
- df.date_validation = pd.to_datetime(df.date_validation, infer_datetime_format=True, errors="coerce")
- df.date_sunset = pd.to_datetime(df.date_sunset, infer_datetime_format=True, errors="coerce")
+ df.date_validation = pd.to_datetime(df.date_validation, errors="coerce")
+ df.date_sunset = pd.to_datetime(df.date_sunset, errors="coerce")
# Manually delete one certificate with bad embodiment (seems to have many blank fields)
df = df.loc[~(df.embodiment == "*")]
diff --git a/src/sec_certs/sample/cc_scheme.py b/src/sec_certs/sample/cc_scheme.py
index 41b16aec..8d18b5d0 100644
--- a/src/sec_certs/sample/cc_scheme.py
+++ b/src/sec_certs/sample/cc_scheme.py
@@ -236,7 +236,7 @@ def _get_france(url, enhanced, artifacts) -> list[dict[str, Any]]: # noqa: C901
complement_info = row.find("div", class_="info-complement")
for li in complement_info.find_all("li"):
label = li.find("span").text
- value = sns(li.find(text=True, recursive=False))
+ value = sns(li.find(string=True, recursive=False))
if "Commanditaire" in label:
cert["sponsor"] = value
elif "Développeur" in label: