Metadata-Version: 2.1
Name: p3orm
Version: 0.1.0
Summary: Python PyPika Postgres ORM
Home-page: https://github.com/rafalstapinski/porm
License: MIT
Keywords: postgres,async,orm
Author: Rafal Stapinski
Author-email: stapinskirafal@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Requires-Dist: PyPika (>=0.48.8,<0.49.0)
Requires-Dist: asyncpg (>=0.24.0,<0.25.0)
Requires-Dist: pydantic (>=1.8.2,<2.0.0)
Project-URL: Repository, https://github.com/rafalstapinski/porm
Description-Content-Type: text/markdown

# porm

Minimal PostgreSQL Python ORM, backed by [asyncpg](https://github.com/MagicStack/asyncpg), [Pydantic](https://github.com/samuelcolvin/pydantic), and [PyPika](https://github.com/kayak/pypika). 

## Philosophy

90% of the time we talk to a database is with a CRUD operation. porm provides helpers

The remaining 10% is a bit more complicated. porm doesn't attempt to hide SQL queries behind any magic, instead it empowers you to write direct, explicit, and legible SQL queries with [PyPika](https://github.com/kayak/pypika).

Object created or fetched by porm are **dead**, they're just (currently) Pydantic models. If you want to manipulate the database, you do so explicitly.


## Roadmap

- [ ] Annotation type definition
- [ ] Relationships
- [ ] Tests
- [ ] Look into [attrs](https://github.com/python-attrs/attrs) over pydantic (does this actually need type *validation*)

