Source code for kgdata.wikidata.models.propertystats

import glob
import gzip
import os
from dataclasses import dataclass
from typing import List, Dict

import orjson

from kgdata.config import WIKIDATA_DIR


[docs]@dataclass class WDQuantityPropertyStats: id: str value: "QuantityStats" qualifiers: Dict[str, "QuantityStats"]
[docs] @staticmethod def from_dir( indir: str = os.path.join( WIKIDATA_DIR, "step_2/quantity_prop_stats/quantity_stats" ) ) -> Dict[str, "WDQuantityPropertyStats"]: odict = {} for infile in glob.glob(os.path.join(indir, "*.gz")): with gzip.open(infile, "rb") as f: for line in f: data = orjson.loads(line) item = WDQuantityPropertyStats( data["id"], QuantityStats(**data["value"]), { q: QuantityStats(**qstat) for q, qstat in data["qualifiers"].items() }, ) odict[item.id] = item return odict
[docs]@dataclass class QuantityStats: units: List[str] min: float max: float mean: float std: float size: float int_size: int n_overi36: int