Source code for wisefood.entities.fctables

# entities/articles.py
from typing import List, Optional

from .base import BaseEntity, BaseCollectionProxy, Field

[docs] class FCTable(BaseEntity): """ Schema-backed entity for /fctables. Thin accessors over `self.data`. Adapted to represent a Food Composition Table (FCT). """ ENDPOINT = "fctables" URN_PREFIX = "urn:fctable:" # Core metadata id: str = Field("id", read_only=True) title: str = Field("title", default="") description: Optional[str] = Field("description") status: str = Field("status", default="active") type: str = Field("type", default="food_composition_table") # Specific metadata from FoodCompositionTableSchema compiling_institution: str = Field("compiling_institution", default="") database_name: str = Field("database_name", default="") classification_schemes: List[str] = Field("classification_schemes", default_factory=list) standardization_schemes: List[str] = Field("standardization_schemes", default_factory=list) measurement_units: List[str] = Field("measurement_units", default_factory=list) reference_portions: List[str] = Field("reference_portions", default_factory=list) completeness_percent: Optional[float] = Field("completeness_percent") completeness_description: Optional[str] = Field("completeness_description") nutrient_coverage: List[str] = Field("nutrient_coverage", default_factory=list) data_formats: List[str] = Field("data_formats", default_factory=list) tasks_supported: List[str] = Field("tasks_supported", default_factory=list) number_of_entries: Optional[int] = Field("number_of_entries") min_nutrients_per_item: Optional[int] = Field("min_nutrients_per_item") max_nutrients_per_item: Optional[int] = Field("max_nutrients_per_item") # Links / identifiers url: Optional[str] = Field("url") license: Optional[str] = Field("license") external_id: Optional[str] = Field("external_id") organization_urn: Optional[str] = Field("organization_urn") # Content-ish fields (kept for compatibility) abstract: Optional[str] = Field("abstract") category: Optional[str] = Field("category") content: str = Field("content", default="") venue: str = Field("venue", default="") # Authorship & tags authors: List[str] = Field("authors", default_factory=list) tags: List[str] = Field("tags", default_factory=list) language: Optional[str] = Field("language") # Embedded artifact payloads, when present in API responses. artifact_records: List[dict] = Field("artifacts", default_factory=list) region: Optional[str] = Field("region") # Timestamps / system fields creator: Optional[str] = Field("creator", read_only=True) created_at: Optional[str] = Field("created_at", read_only=True) updated_at: Optional[str] = Field("updated_at", read_only=True)
[docs] class FCTablesProxy(BaseCollectionProxy): ENTITY_CLS = FCTable ENDPOINT = "fctables"