Skip to main content

Ingredient Parser (Zestful Client)

PyPI CircleCI License

Overview

Parse recipe ingredient strings into structured data.

Examples

Parse a single ingredient

import json
import parse_ingredient

ingredient = parse_ingredient.parse('2 1/2 tablespoons finely chopped parsley')
print(json.dumps(ingredient.as_dict()))
{
  "quantity": 2.5,
  "unit": "tablespoon",
  "product": "parsley",
  "productSizeModifier": null,
  "preparationNotes": "finely chopped",
  "usdaInfo": {
      "category": "Vegetables and Vegetable Products",
      "description": "Parsley, fresh",
      "fdcId": "170416",
      "matchMethod": "exact"
  },
  "confidence": 0.9858154,
}

Parse multiple ingredients

import json
import parse_ingredient

ingredients = parse_ingredient.parse_multiple([
  '½ tsp brown sugar',
  '3 large Granny Smith apples'
  )
print(json.dumps(ingredients.as_dict()))
[
  {
    "ingredientRaw": "½ tsp brown sugar",
    "ingredientParsed": {
        "preparationNotes": "finely chopped",
        "product": "brown sugar",
        "productSizeModifier": null,
        "quantity": 0.5,
        "unit": "teaspoon",
        "usdaInfo": {
            "category": "Sweets",
            "description": "Sugars, brown",
            "fdcId": "168833",
            "matchMethod": "exact"
        },
        "confidence": 0.9857134,
    },
    "error": null,
  },
  {
      "ingredientRaw": "3 large Granny Smith apples",
      "ingredientParsed": {
          "preparationNotes": null,
          "product": "Granny Smith apples",
          "productSizeModifier": "large",
          "quantity": 3.0,
          "unit": null,
          "usdaInfo": {
              "category": "Fruits and Fruit Juices",
              "description": "Apples, raw, granny smith, with skin (Includes foods for USDA's Food Distribution Program)",
              "fdcId": "168203",
              "matchMethod": "exact"
          },
          "confidence": 0.9741028,
      },
      "error": null,
  }
]

Parse ingredients using RapidAPI

If you have a RapidAPI subscription to Zestful, you can use your API key as follows:

import json
import parse_ingredient

# Replace this with your key from RapidAPI
# https://rapidapi.com/zestfuldata/api/recipe-and-ingredient-analysis
RAPID_API_KEY = 'your-rapid-api-key'

client = parse_ingredient.client(rapid_api_key=RAPID_API_KEY)

ingredient = client.parse_ingredient('2 1/2 tablespoons finely chopped parsley')
print(json.dumps(ingredient.as_dict()))

Use private Zestful server

If you have a private Zestful ingredient parsing server as part of an Enterprise plan, you can use the library as follows:

import json
import parse_ingredient

ENDPOINT_URL = 'https://zestful.yourdomain.com'

client = parse_ingredient.client(endpoint_url=ENDPOINT_URL)

ingredient = client.parse_ingredient('2 1/2 tablespoons finely chopped parsley')
print(json.dumps(ingredient.as_dict()))

Installation

From pip

pip install zestful-parse-ingredient

From source

git clone https://github.com/mtlynch/zestful-client.git
cd zestful-client
pip install .

How does it work?

The library sends ingredient parsing requests to a remote Zestful ingredient parsing server. By default, the library uses the demo instance of Zestful. For production usage, you should set a RapidAPI key or private Zestful server instance address.

Limitations

Without a subscription, you can only parse 30 ingredients per day. To parse an unlimited number of ingredients, purchase a subscription from Zestful.

Full documentation

For full documentation of each result field, see the official Zestful API documentation.

Metadata

Release files for zestful-parse-ingredient 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zestful-parse-ingredient 0.0.7
File Size Uploaded
zestful-parse-ingredient-0.0.7.tar.gz 4.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zestful-parse-ingredient 0.0.7
File Interpreter ABI Platform
zestful_parse_ingredient-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 11.0 kB

Release files / zestful-parse-ingredient-0.0.7.tar.gz

Download URL zestful-parse-ingredient-0.0.7.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
96ae183c49e5909bb53be7ccbafcee5a51dd49892823c976fc6e3c616dec549b
BLAKE2b-256 checksum
How to use checksums
815f64efc0dc5c1bee2370c34abb2a09d3afee3308ca8708b74cd832a0308f10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3

Release files / zestful_parse_ingredient-0.0.7-py3-none-any.whl

Download URL zestful_parse_ingredient-0.0.7-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d902832f72fae2b95b5f9d5bec80945b6711c6ea1c2f8ceb53c7c93def00fac3
BLAKE2b-256 checksum
How to use checksums
8cd5260f58b8eb7557c9d704007d4141f49e8ae23e5c268d23d84e6b4c0a7883
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page