Metadata-Version: 2.4
Name: bwyd
Version: 0.4.0
Summary: A domain specific language (DSL) to assist in taking notes about culinary work which is intended to be repeated.
License-Expression: MIT
License-File: LICENSE
Keywords: cooking,dsl,knowledge graph,nlp,publishing,recipes,validation
Author: Paco Nathan
Author-email: paco@derwen.ai
Maintainer: derwen.ai
Maintainer-email: info@derwen.ai
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Indexing
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Requires-Dist: icecream (>=2.1.4,<3.0)
Requires-Dist: inflect (>=7.5.0,<8.0)
Requires-Dist: ipykernel (>=7.2.0,<8.0)
Requires-Dist: jinja2 (>=3.1.6,<4.0)
Requires-Dist: minify-html (>=0.18,<1.0)
Requires-Dist: pillow (>=12.1,<13.0)
Requires-Dist: pydantic (>=2.12.5,<3.0)
Requires-Dist: pyinstrument (>=5.0.2,<6.0)
Requires-Dist: rdflib (>=7.1.4,<8.0)
Requires-Dist: requests-cache (>=1.2.1,<2.0)
Requires-Dist: spdx-license-list (>=3.26.0,<4.0)
Requires-Dist: spdx-tools (>=0.8.3,<1.0)
Requires-Dist: textx (>=4.1.0,<5.0)
Requires-Dist: universal-pathlib (>=0.3,<1.0)
Project-URL: Repository, https://github.com/DerwenAI/bwyd
Description-Content-Type: text/markdown

# Bwyd culinary DSL

A domain specific language (DSL) to assist in taking notes about
culinary work which is intended to be repeated.

This includes support for running in a Jupyter notebook, plus using
graph technologies for analytics and preparation planning.

---

## build a local environment

This project uses [`poetry`](https://python-poetry.org/docs/basic-usage/)
for dependency management, virtual environment, builds, packaging, etc.
To set up an environment locally:

```bash
git clone https://github.com/DerwenAI/bwyd.git
cd bwyd

poetry install --extras=demo
```

The source code is currently based on Python 3.11 or later.


## run the demo script to generate HTML

```bash
poetry run python3 cli.py
```

Then load the `examples/index.html` in a browser.


## eval a specific Bwyd file

```bash
poetry run python3 eval_rig.py <slug>
```


## prep for Jupyter notebooks

```bash
poetry run python3 -m pip install -e .
poetry run python3 -m bwyd.install
```

```bash
poetry run jupyter-lab
```


## development

To set up the `test` environment:

```bash
poetry install --extras=test
```

To run unit tests, type checking, and linting:

```bash
./lint.sh
```

To validate the generated HTML:
<https://validator.w3.org/nu/#file>


## files

  - `bwyd/__main__.py`: Jypter kernel CLI
  - `bwyd/install.py`: Jupyter kernel installer
  - `bwyd/kernel.py`: Jupyter wrapper kernel

  - `config.toml`: sample configuration settings

  - `examples/*.bwyd`: example recipes as Bwyd scripts
  - `examples/*.ipynb`: example recipes in Bwyd as Jupyter notebooks
  - `examples/*.json`: example recipes data model in JSON files


######################################################################
TBD:

## uninstall

```bash
./venv/bin/jupyter kernelspec uninstall bwyd
python3 -m pip uninstall bwyd
```

