# AUTO-GENERATED by scripts/oas-sync emit-resource Foods. Do not edit by hand.
"""Resource wrapper for the OAS ``Foods`` tag (generated)."""
from __future__ import annotations
from typing import Any, Optional
from .._base import BaseResource
from ...models._generated.foods import Food
class FoodsResource(BaseResource):
"""Resource methods for the OAS `Foods` tag (generated)."""
[docs]
def autocomplete_v1(
self,
expression: str,
max_results: Optional[int] = None,
region: Optional[str] = None,
) -> list:
"""No typed model — returns the raw FatSecret response shape. See ``docs/migration-v3.rst`` for details. foods.autocomplete (v1). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "foods.autocomplete"}
params["expression"] = expression
self._client._set_optional(
params,
[
("max_results", max_results),
("region", region),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "suggestions", list_key="suggestion")
return raw
[docs]
def autocomplete_v2(
self,
expression: str,
max_results: Optional[int] = None,
region: Optional[str] = None,
) -> list:
"""No typed model — returns the raw FatSecret response shape. See ``docs/migration-v3.rst`` for details. foods.autocomplete (v2). Premier-only."""
params: dict[str, Any] = {"method": "foods.autocomplete.v2"}
params["expression"] = expression
self._client._set_optional(
params,
[
("max_results", max_results),
("region", region),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "suggestions", list_key="suggestion")
return raw
[docs]
def find_id_for_barcode_v1(
self,
barcode: str,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Any:
"""No typed model — returns the raw FatSecret response shape. See ``docs/migration-v3.rst`` for details. food.find_id_for_barcode (v1). Premier-only."""
params: dict[str, Any] = {"method": "food.find_id_for_barcode"}
params["barcode"] = barcode
self._client._set_optional(
params,
[
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food_id")
return raw
[docs]
def find_id_for_barcode_v2(
self,
barcode: str,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.find_id_for_barcode (v2). Premier-only."""
params: dict[str, Any] = {"method": "food.find_id_for_barcode.v2"}
params["barcode"] = barcode
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
[docs]
def get_v1(
self,
food_id: int,
include_sub_categories: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.get (v1). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food.get"}
params["food_id"] = food_id
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
def get_v2(
self,
food_id: int,
include_sub_categories: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.get (v2). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food.get.v2"}
params["food_id"] = food_id
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
[docs]
def get_v3(
self,
food_id: int,
include_sub_categories: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.get (v3). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food.get.v3"}
params["food_id"] = food_id
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
[docs]
def get_v4(
self,
food_id: int,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.get (v4). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food.get.v4"}
params["food_id"] = food_id
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
[docs]
def get_v5(
self,
food_id: int,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> Optional[Food]:
"""food.get (v5). Premier-only."""
params: dict[str, Any] = {"method": "food.get.v5"}
params["food_id"] = food_id
self._client._set_optional(
params,
[
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food")
if raw is None:
return None
return Food.model_validate(raw)
[docs]
def search_v1(
self,
search_expression: Optional[str] = None,
page_number: Optional[int] = None,
max_results: Optional[int] = None,
generic_description: Optional[str] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> list[Food]:
"""foods.search (v1). Premier-only."""
params: dict[str, Any] = {"method": "foods.search"}
self._client._set_optional(
params,
[
("search_expression", search_expression),
("page_number", page_number),
("max_results", max_results),
("generic_description", generic_description),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "foods", list_key="food")
return [Food.model_validate(r) for r in raw]
[docs]
def search_v2(
self,
search_expression: Optional[str] = None,
page_number: Optional[int] = None,
max_results: Optional[int] = None,
include_sub_categories: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> list[Food]:
"""foods.search (v2). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "foods.search.v2"}
self._client._set_optional(
params,
[
("search_expression", search_expression),
("page_number", page_number),
("max_results", max_results),
("include_sub_categories", include_sub_categories),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "foods_search", "results", list_key="food")
return [Food.model_validate(r) for r in raw]
[docs]
def search_v3(
self,
search_expression: Optional[str] = None,
page_number: Optional[int] = None,
max_results: Optional[int] = None,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> list[Food]:
"""foods.search (v3). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "foods.search.v3"}
self._client._set_optional(
params,
[
("search_expression", search_expression),
("page_number", page_number),
("max_results", max_results),
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "foods_search", "results", list_key="food")
return [Food.model_validate(r) for r in raw]
[docs]
def search_v4(
self,
search_expression: Optional[str] = None,
page_number: Optional[int] = None,
max_results: Optional[int] = None,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> list[Food]:
"""foods.search (v4). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "foods.search.v4"}
self._client._set_optional(
params,
[
("search_expression", search_expression),
("page_number", page_number),
("max_results", max_results),
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "foods_search", "results", list_key="food")
return [Food.model_validate(r) for r in raw]
[docs]
def search_v5(
self,
search_expression: Optional[str] = None,
page_number: Optional[int] = None,
max_results: Optional[int] = None,
include_sub_categories: Optional[bool] = None,
include_food_images: Optional[bool] = None,
include_food_attributes: Optional[bool] = None,
flag_default_serving: Optional[bool] = None,
food_type: Optional[str] = None,
region: Optional[str] = None,
language: Optional[str] = None,
) -> list[Food]:
"""foods.search (v5). Premier-only."""
params: dict[str, Any] = {"method": "foods.search.v5"}
self._client._set_optional(
params,
[
("search_expression", search_expression),
("page_number", page_number),
("max_results", max_results),
("include_sub_categories", include_sub_categories),
("include_food_images", include_food_images),
("include_food_attributes", include_food_attributes),
("flag_default_serving", flag_default_serving),
("food_type", food_type),
("region", region),
("language", language),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "foods_search", "results", list_key="food")
return [Food.model_validate(r) for r in raw]
__all__ = ["FoodsResource"]