Skip to main content

saucier

Structured procedure extraction from culinary sources.

Reads a cookbook and returns a catalogue. Each preparation carries its names, the language of each name, the parent it derives from, and the source line the claim came from. No model runs. Every output is traceable to the text.

Try it

No GPU, no API key, no database, no network. The source text is committed.

$ git clone https://github.com/Alberto-Codes/saucier
$ cd saucier && uv sync
$ uv run saucier parse
source      escoffier-1907
mothers     bechamel, espagnole, hollandaise, tomato, veloute
sauces      124
derived     50 linked to a stated parent
unresolved  74 state no base in their prose

The five mothers were not supplied. Escoffier names them in his own text, and the parser reads them out of it.

$ uv run saucier tree espagnole
BROWN SAUCE OR ESPAGNOLE  [espagnole]
├── LENTEN ESPAGNOLE  (fr)
│   └── GENEVOISE SAUCE  (en)
├── ORDINARY POIVRADE SAUCE  (en)
│   └── REFORM SAUCE  (en)
└── POIVRADE SAUCE FOR VENISON  (en)

A parent may be any catalogued preparation, not only a mother. Marrow Sauce resolves to Bordelaise, and Bordelaise itself states no base. A derivation tree can therefore root in an unresolved sauce.

The interesting number is 74

74 of 124 preparations never state what they are built on. Escoffier wrote for a reader who already knew, so he did not write it down. That gap is the point: it is the measured bar that anything cleverer has to beat. See why there is no model in this yet.

The catalogue holds 124 entries, not every sauce in the book. An entry gets in when its own heading says "sauce", or when it names a mother inside a chapter Escoffier titles as sauces. Both tests read the source. Neither guesses.

Documentation

The rendered site is https://alberto-codes.github.io/saucier/. Its API reference is generated from the docstrings, so it cannot drift from the code.

  • Tutorial — clone it and print a family tree
  • How-to — point it at a different book
  • Reference — commands and data model
  • Explanation — why a parser comes first
  • Decisions — the eight records, and what each one accepted

Licence

MIT for the code. corpus/escoffier-1907.txt is Project Gutenberg ebook #71395, public domain, redistributed with its licence wrapper intact. No third-party corpus is shipped in the published package.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

saucier-0.2.0.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

saucier-0.2.0-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

File details

Details for the file saucier-0.2.0.tar.gz.

File metadata

  • Download URL: saucier-0.2.0.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for saucier-0.2.0.tar.gz
Algorithm Hash digest
SHA256 31133c3c0d298cf0e383abd5de0d9d001ff899683358326c7a295c25a912789b
MD5 87f36a5eb65e3d2029a721032f5cbe97
BLAKE2b-256 ba48e00ddc65fa6a47dee49aa652733bfbb38da2e17796f752da00823db3bb9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for saucier-0.2.0.tar.gz:

Publisher: publish.yml on Alberto-Codes/saucier

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file saucier-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: saucier-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for saucier-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a54d8d916f9c4513e4703f077990c5c5b4008ee516fd567e26bdda60f45b9084
MD5 536acd9a888854ad2d9ed77e9e53a70a
BLAKE2b-256 085dd4c572742adb256e83a9cea122a0d78b20cdc08bdc29b5cb3110f1e52a4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for saucier-0.2.0-py3-none-any.whl:

Publisher: publish.yml on Alberto-Codes/saucier

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

0.0.1

2 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