A high level ORM that strives to get rid of all N+1 issues.
Note: This package is currently in development and is not production ready yet.
- Define a clear syntax taking advantage of Python 3.10 and later's typing syntax. Status: Done
- Define models, managers and fields. Status: Done
- Add support for basic SQLite operation: SELECT, INSERT, UPDATE, DELETE. Status: Done
- Add support for Foreign Keys. Status: Done
- Add support for ManyToMany relationships using a joining table. Status: Done (Testing has to be improved)
- Add a migration system. Status: Done (Testing has to be improved)
- Add support for relation lookup using a similar method to Django's, with __ being put between field names. Status: Done
- Add support for JOIN, UNION and GROUP BY, with an interface to build them. Status: Not started (Not a priority)
- Add logic for batch fetching in loops. Status: Not started
- Add logic for select_related. By design, prefetch_related will never be part of this ORM, preferring a 'fetch in batch when needed' approach. Status: Not started
- Look into supporting up to Python 3.7 by taking into account the possible usage of Union and Optional Maybe import from future? Status: Not started
- Improve testing by adding a way to catch queries made to the database, to make sure we lower them as much as possible. Status: Not started
- Add support for postgresql. Status: Not started
- Look into the next steps for the project. Status: Not started
If the project interests you, don't hesitate to reach out!