Skip to content

Commit

Permalink
Merge pull request #1428 from microbiomedata/1423-fix-ingest
Browse files Browse the repository at this point in the history
Fix ingest post dependency upgrade
  • Loading branch information
naglepuff authored Oct 23, 2024
2 parents e13ce7e + 4e2f5af commit fe5f696
Show file tree
Hide file tree
Showing 8 changed files with 651 additions and 90 deletions.
38 changes: 19 additions & 19 deletions nmdc_server/fakes.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,25 +222,25 @@ class Meta:
model = models.MetagenomeAssembly
sqlalchemy_session = db

scaffolds: int = Faker("pyint")
contigs: int = Faker("pyint")
scaf_bp: int = Faker("pyint")
contig_bp: int = Faker("pyint")
scaf_n50: int = Faker("pyint")
scaf_l50: int = Faker("pyint")
ctg_n50: int = Faker("pyint")
ctg_l50: int = Faker("pyint")
scaf_n90: int = Faker("pyint")
scaf_l90: int = Faker("pyint")
ctg_n90: int = Faker("pyint")
ctg_l90: int = Faker("pyint")
scaf_max: int = Faker("pyint")
ctg_max: int = Faker("pyint")
scaf_n_gt50k: int = Faker("pyint")
scaf_l_gt50k: int = Faker("pyint")
scaf_pct_gt50k: int = Faker("pyint")
num_input_reads: int = Faker("pyint")
num_aligned_reads: int = Faker("pyint")
scaffolds: float = Faker("pyfloat")
contigs: float = Faker("pyfloat")
scaf_bp: float = Faker("pyfloat")
contig_bp: float = Faker("pyfloat")
scaf_n50: float = Faker("pyfloat")
scaf_l50: float = Faker("pyfloat")
ctg_n50: float = Faker("pyfloat")
ctg_l50: float = Faker("pyfloat")
scaf_n90: float = Faker("pyfloat")
scaf_l90: float = Faker("pyfloat")
ctg_n90: float = Faker("pyfloat")
ctg_l90: float = Faker("pyfloat")
scaf_max: float = Faker("pyfloat")
ctg_max: float = Faker("pyfloat")
scaf_n_gt50k: float = Faker("pyfloat")
scaf_l_gt50k: float = Faker("pyfloat")
scaf_pct_gt50k: float = Faker("pyfloat")
num_input_reads: float = Faker("pyfloat")
num_aligned_reads: float = Faker("pyfloat")
scaf_logsum: float = Faker("pyfloat")
scaf_powsum: float = Faker("pyfloat")
ctg_logsum: float = Faker("pyfloat")
Expand Down
8 changes: 4 additions & 4 deletions nmdc_server/ingest/biosample.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from datetime import datetime
from typing import Any, Dict

from pydantic import field_validator
from pydantic.v1 import root_validator, validator
from pydantic import field_validator, model_validator
from pydantic.v1 import validator
from pymongo.cursor import Cursor
from sqlalchemy.orm import Session

Expand All @@ -21,7 +21,7 @@
class Biosample(BiosampleCreate):
_extract_value = validator("*", pre=True, allow_reuse=True)(extract_value)

@root_validator(pre=True)
@model_validator(mode="before")
def extract_extras(cls, values):
if "lat_lon" in values:
if "latitude" in values["lat_lon"] and "longitude" in values["lat_lon"]:
Expand All @@ -31,7 +31,7 @@ def extract_extras(cls, values):
lat, lon = values.pop("lat_lon")["has_raw_value"].split(" ")
values["latitude"] = float(lat)
values["longitude"] = float(lon)
return extract_extras(cls, values)
return extract_extras(cls, values) # type: ignore

@field_validator("depth", mode="before")
@classmethod
Expand Down
2 changes: 1 addition & 1 deletion nmdc_server/ingest/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def extract_extras(
cls: BaseModel, values: Dict[str, Any], exclude: Optional[Set[str]] = None
) -> Dict[str, Any]:
# Move unknown attributes into values['annotations']
fields = set(cls.__fields__.keys())
fields = set(cls.model_fields.keys())
exclude = (exclude or set()).union(EXCLUDED_FIELDS)
values.setdefault("annotations", {})
for key, value in values.items():
Expand Down
8 changes: 4 additions & 4 deletions nmdc_server/ingest/omics_processing.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from datetime import datetime
from typing import Any, Dict, Optional

from pydantic import field_validator
from pydantic.v1 import root_validator, validator
from pydantic import field_validator, model_validator
from pydantic.v1 import validator
from pymongo.collection import Collection
from pymongo.cursor import Cursor
from pymongo.database import Database
Expand Down Expand Up @@ -36,9 +36,9 @@
class OmicsProcessing(OmicsProcessingCreate):
_extract_value = validator("*", pre=True, allow_reuse=True)(extract_value)

@root_validator(pre=True)
@model_validator(mode="before")
def extract_extras(cls, values):
return extract_extras(cls, values)
return extract_extras(cls, values) # type: ignore

@field_validator("add_date", "mod_date", mode="before")
@classmethod
Expand Down
11 changes: 6 additions & 5 deletions nmdc_server/ingest/study.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import re
from typing import Optional
from typing import List, Optional

import requests
from pydantic.v1 import root_validator, validator
from pydantic import model_validator
from pydantic.v1 import validator
from pymongo.cursor import Cursor
from sqlalchemy.orm import Session

Expand Down Expand Up @@ -41,17 +42,17 @@ def get_or_create_pi(db: Session, name: str, url: Optional[str], orcid: Optional
class Study(StudyCreate):
_extract_value = validator("*", pre=True, allow_reuse=True)(extract_value)

@root_validator(pre=True)
@model_validator(mode="before")
def extract_extras(cls, values):
return extract_extras(cls, values)
return extract_extras(cls, values) # type: ignore


def transform_doi(doi: str) -> str:
matches = re.findall(r"10.\d{4,9}/[-._;()/:a-zA-Z0-9]+$", doi)
return matches[0]


def get_study_image_data(image_urls: list[dict[str, str]]) -> Optional[bytes]:
def get_study_image_data(image_urls: List[dict[str, str]]) -> Optional[bytes]:
if image_urls:
r = requests.get(image_urls[0]["url"])
if r.ok:
Expand Down
Loading

0 comments on commit fe5f696

Please sign in to comment.