Metadata-Version: 2.4
Name: pyvelm
Version: 1.4.1
Summary: PyVELM — declarative Python ERP: Odoo recordsets & modules, Laravel/Filament ergonomics, unique Tailwind admin shell.
License-Expression: LGPL-3.0-or-later
Project-URL: Homepage, https://github.com/coolsam726/pyvelm
Project-URL: Documentation, https://coolsam726.github.io/pyvelm/
Project-URL: Repository, https://github.com/coolsam726/pyvelm
Project-URL: Changelog, https://github.com/coolsam726/pyvelm/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/coolsam726/pyvelm/issues
Project-URL: Sponsor, https://github.com/sponsors/coolsam726
Keywords: erp,odoo,laravel,filament,tailwind,framework,postgresql,fastapi,htmx,orm,recordset
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: psycopg[binary]>=3.2
Requires-Dist: psycopg-pool>=3.2
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: pymysql>=1.1
Requires-Dist: python-dotenv>=1.0
Requires-Dist: fastapi>=0.115
Requires-Dist: httpx>=0.27
Requires-Dist: jinja2>=3.1
Requires-Dist: heroicons[jinja]>=2.14
Requires-Dist: python-multipart>=0.0.18
Requires-Dist: bcrypt>=4.2
Requires-Dist: uvicorn>=0.29
Requires-Dist: openpyxl>=3.1
Requires-Dist: fpdf2>=2.7
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.27; extra == "docs"
Requires-Dist: mike>=2.1; extra == "docs"
Provides-Extra: geo
Requires-Dist: pycountry>=24.6; extra == "geo"
Requires-Dist: geonamescache>=2.0; extra == "geo"
Provides-Extra: mssql
Requires-Dist: pyodbc>=5.0; extra == "mssql"
Provides-Extra: oracle
Requires-Dist: oracledb>=2.0; extra == "oracle"
Provides-Extra: test
Requires-Dist: pytest>=8.3; extra == "test"
Requires-Dist: pytest-cov>=5.0; extra == "test"
Dynamic: license-file

# PyVELM

[![CI](https://github.com/coolsam726/pyvelm/actions/workflows/ci.yml/badge.svg)](https://github.com/coolsam726/pyvelm/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/coolsam726/pyvelm/graph/badge.svg)](https://codecov.io/gh/coolsam726/pyvelm)
[![PyPI version](https://img.shields.io/pypi/v/pyvelm)](https://pypi.org/project/pyvelm/)
[![Python](https://img.shields.io/pypi/pyversions/pyvelm)](https://pypi.org/project/pyvelm/)
[![Downloads](https://img.shields.io/pepy/dt/pyvelm?label=downloads)](https://pepy.tech/project/pyvelm)
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-2563eb)](https://coolsam726.github.io/pyvelm/)
[![Changelog](https://img.shields.io/badge/changelog-CHANGELOG-64748b)](https://github.com/coolsam726/pyvelm/blob/main/CHANGELOG.md)
[![License: LGPL v3](https://img.shields.io/badge/License-LGPLv3-blue.svg)](https://github.com/coolsam726/pyvelm/blob/main/LICENSE)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/coolsam726?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/coolsam726)

**Odoo's semantics. Laravel's ergonomics. Filament's craft — in a Tailwind-native
ERP shell that exists only here.**

**PyVELM** is a declarative Python ERP on **PostgreSQL or SQLite** (SQLAlchemy Core):
recordsets and modules in the Odoo tradition, developer and admin patterns borrowed
from Laravel and Filament, and a bespoke **Tailwind v4 + HTMX** interface—its own
layout, widgets, and look & feel—not Odoo's web client or Filament's Blade stack.

**Latest: [v1.4.1](https://github.com/coolsam726/pyvelm/blob/main/CHANGELOG.md#141--2026-06-10)** —
bundled **contacts** module with `res.partner` list/form views. See the
[docs](https://coolsam726.github.io/pyvelm/) (version picker for older releases).

**Full documentation:** [coolsam726.github.io/pyvelm](https://coolsam726.github.io/pyvelm/)

The framework is **PyVELM**; the [PyPI](https://pypi.org/project/pyvelm/) package
and CLI stay `pyvelm` (lowercase).

## Install

```bash
pip install pyvelm==1.4.1
```

Greenfield app:

```bash
pipx install pyvelm
pyvelm init my_erp
```

## Hack on the repo

```bash
git clone https://github.com/coolsam726/pyvelm.git
cd pyvelm
python3 -m venv .venv && .venv/bin/pip install -e .
cp .env.example .env   # set PYVELM_DSN
.venv/bin/python examples/basic.py
```

Contributing, tests (`pip install -e ".[test]" && pytest`), local docs (`mkdocs serve`),
and releases: [CONTRIBUTING.md](CONTRIBUTING.md).
Maintainer notes: [CHANGELOG.md](CHANGELOG.md) · [CONTEXT.md](CONTEXT.md).

## Sponsor

Open-source business-app tooling maintained by [Sam Maosa](https://github.com/coolsam726).
[**Sponsor on GitHub**](https://github.com/sponsors/coolsam726) supports **all** of these
projects—not just PyVELM.

| | Project |
|---|---------|
| **This repo** | [**PyVELM**](https://github.com/coolsam726/pyvelm) — declarative Python ERP |
| 1 | [**filament-modules**](https://github.com/savannabits/filament-modules) — Filament + `nWidart/laravel-modules` |
| 2 | [**flatpickr**](https://github.com/coolsam726/flatpickr) — Flatpickr date picking for Filament |
| 3 | [**nested-comments**](https://github.com/coolsam726/nested-comments) — nested comments on Filament forms & pages |
| 4 | [**typeorm-pagination**](https://github.com/savannabits/typeorm-pagination) — pagination for Express + TypeORM |
| 5 | [**filament-signature-pad**](https://github.com/savannabits/filament-signature-pad) — signature field for Filament forms |

Same craft across stacks: admin UX that feels intentional, released in the open with
docs and tests. If any of this saves you a sprint, sponsorship keeps it sustainable.

## License

[LGPL-3.0-or-later](LICENSE) — Copyright (c) 2026 Sam Maosa.  
If you link against or modify PyVELM, see the license file for your obligations
(shared library / combined work terms).
