Skip to content

Installation

How to install bloomery into a project, what it brings with it, and what it deliberately does not need.

Requirements

  • Python 3.12, 3.13, or 3.14 (>=3.12,<3.15).
  • Nothing else: no database, no orchestrator, no cloud credentials. bloomery is a pure library — it emits artifacts and plans; executing them is another tool's job.

Install from source

bloomery is pre-0.1 and not yet published to PyPI — install it from the Git repository.

With uv:

uv add git+https://github.com/morzecrew/bloomery

With pip:

pip install git+https://github.com/morzecrew/bloomery

To pin a specific commit, append @<sha> to the URL. The API is not stable before 0.1, so pinning is the sensible default.

For contributors

Clone the repository and let uv build the environment from the lockfile:

git clone https://github.com/morzecrew/bloomery
cd bloomery
uv sync

just quality -s runs the full quality gate and just test the default test tiers — see CONTRIBUTING.md for the workflow.

What comes with it

The install brings the compilation toolchain as ordinary dependencies: SQLGlot (SQL as AST), Pydantic (spec validation), PyYAML, Jinja2 (artifact envelopes), and a pinned MetricFlow that powers the request-time planner — embedded and render-only, never connected to a database. The emitted artifacts are consumed by SQLMesh, dbt, or Cube; none of those need to be installed alongside bloomery, only wherever the artifacts run.

Verify

python -c "import bloomery; print(sorted(bloomery.__all__))"

You should see the public API surface, load_project through compile_project to MetricFlowPlanner. Continue to the Quickstart to compile your first project.