💧 Mayim

The NOT ORM Python hydrator

Learn more →

Bring Your Own Query

Hydrate your raw SQL queries into Python objects

Fully typed

Leverage the power of type annotations to drive your code development

Async Enabled

Build your application with your favorite async framework

# 💧 Hydrate your SQL into Python objects

Given this structure:

./queries
├── queries
│   └── select_all_cities.sql
└── basic.py
Copied!

And, with these files:

-- ./queries/select_all_cities.sql
SELECT *
FROM city
LIMIT $limit OFFSET $offset;
Copied!

Your query is now complete 😎

[City(id=1, name='Kabul', countrycode='AFG', district='Kabol', population=1780000), City(id=2, name='Qandahar', countrycode='AFG', district='Qandahar', population=237500), City(id=3, name='Herat', countrycode='AFG', district='Herat', population=186800), City(id=4, name='Mazar-e-Sharif', countrycode='AFG', district='Balkh', population=127800)]
Copied!