kitchen¶
“Okay, I lost my mind, it’s somewhere out there stranded
I think you stand under me if you don’t understand me
Had my heart broken by this woman named Tammy”
—weezy
This submodule defines a model of a kitchen for cooking en masse. The goal of this is to create an idiom for distributing cooking tasks.
It contains both a protocol of a pierogis
kitchen and an implementation.
The protocol is based on Server
, Kitchen
, and Chef
classes working together to
allow any mode of distributed computing, like multiprocessing, lambda, http, etc.
The implementation here uses multiprocessing
.
The protocol defines an OrderTaker
(implemented with Server
) for handling a request for
media to be cooked. The OrderTaker
should transform this into an Order
filled
with Ticket
objects to describe each frame. The Server
passes this off to
a Kitchen
which decides how to cook the Order
. Ultimately, a
Cooker
(implemented with Chef
) cooks the Ticket
and a cooked Pierogi
is produced.
Ticket
- Describes in a json-friendly format the input media, Ingredient objects, and instructions for a RecipeOrder
- A collection of many tickets and a desciption for handling theCourse
output as a wholeServer
- Interfaces with instructions provided in a parsable format, creating anOrder
for aKitchen
to process and checking its statusChef
- Cooks a ticket and saves it to a specified locationKitchen
- Cooks anOrder
using aChef
, possibly distributing the work (multiprocessing, etc.)