mychef
Minimal, libre recipe recommendation app.
The goal is simple: enter in ingredients you have and get back tasty recipes.
Features
- JSON API for adding recipes with an authenticated user.
- Offer CLI for managing users and app state.
- Expose configuration options through environment variables.
Roadmap
- Web interface for managing recipes.
- Filtering of recipes based on ingredient input.
- Sample web scraper for uploading recipes.
Quickstart
Install package:
pip install mychef
Initialize application:
mychef init
Add a user:
mychef users add
Launch application server:
mychef run
Configuration
You can configure parts of the application in the shell environment. Here's an example .env:
# Logging
LOG_LEVEL="info"
# Database
DB_PATH="/./mychef.db"
# Security
SECRET_ALGORITHM="HS256"
SECRET_KEY="<generated-when-initializing-app>"
SECRET_KEY_N_BYTES=32
Development
The easiest way to develop locally with mychef is to use hatch. With hatch, you will have access to important helper scripts for running locally, linting, type-checks, testing, etc.
Testing
Lint and check types with:
hatch run types:check
Run test suite:
hatch run test
Database Management
To upgrade the local database to latest schema, run:
hatch run db:upgrade
Now that the tables are created, you can add fixtures:
hatch run db:fixtures
If you add or update a table, you can generate a migration script by running:
hatch run db:migration
If the migration script wasn't generated, check to see if you imported the model to env.py.
Local Server
Run the application server locally with:
hatch run dev
The server should reload on changes to the source code.
License
mychef is distributed under the terms of the AGPLv3 license.
Metadata
Release files for mychef 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mychef-0.1.1.tar.gz | 28.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mychef-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.0 kB
Release files / mychef-0.1.1.tar.gz
| Download URL | mychef-0.1.1.tar.gz |
|---|---|
| Size | 28.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6adffe73379e12ddccc7b094ca2c98ce80ba268fae21479f16d08cf68a3b49aa
|
|
BLAKE2b-256 checksum How to use checksums |
7f0f97b4fff74c656bb8d6d7b232ed1c508127af60043144a1df2eaf37bcb1ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.26.0
|
Release files / mychef-0.1.1-py3-none-any.whl
| Download URL | mychef-0.1.1-py3-none-any.whl |
|---|---|
| Size | 31.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8bfaf938cc8952a3661b179853b16b74595cae26d75a3f1d020d16d65afe022
|
|
BLAKE2b-256 checksum How to use checksums |
f5f23d08f2687861ec2d45ec7df26df13718152b1e191f6e6cea6605c882e3a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.26.0
|