A high-performance ORM for Python with support for migrations, relations, and caching.
Project description
Hermes ORM
Hermes ORM is a modern Python ORM designed for simplicity, flexibility, and performance. With support for relational mappings, migrations, and advanced querying, Hermes ORM is tailored for developers who need a powerful yet intuitive tool for managing database operations in their applications.
🚀 Key Features
- Dynamic Model Mapping: Automatically map Python classes to database tables with field validation and relational support.
- Advanced Query Builder: Intuitive querying with dynamic
SELECT,INSERT,UPDATE, andDELETEstatements. - Rich Relationships: Support for
One-to-One,One-to-Many,Many-to-Many, and polymorphicMorphrelationships. - Migrations Manager: Create, apply, and rollback migrations seamlessly.
- Asynchronous & Synchronous Database Operations: Flexible execution modes to match your application’s needs.
- Caching Mechanisms: Built-in query caching for optimized performance.
- Debugging & Logging: Configurable debug and logging options for streamlined troubleshooting.
- Open for Personal & Commercial Use: Use Hermes ORM freely in personal and commercial projects (not for resale as a standalone product).
🛠️ Getting Started
Step 1: Install Hermes ORM
Install Hermes ORM via pip:
pip install hermes-orm
Step 2: Define Your Models
Define models that represent your database structure:
from hermes.model import BaseModel
from hermes.fields import IntegerField, StringField, ForeignKeyField
class User(BaseModel):
id = IntegerField(primary_key=True)
name = StringField(max_length=255, nullable=False)
class Post(BaseModel):
id = IntegerField(primary_key=True)
user_id = ForeignKeyField("User", nullable=False)
content = StringField(nullable=False)
Step 3: Run Migrations
Use the CLI to generate and apply migrations:
hermes make_migration create_users_table create
hermes migrate
Step 4: Query the Database
Perform operations on your models:
# Create a user
user = User(name="Alice")
user.save(db_connection)
# Fetch all posts
posts = Post.all(db_connection)
# Add a post for a user
post = Post(user_id=user.id, content="Hello, Hermes!")
post.save(db_connection)
🧩 Supported Relationships
- One-to-One: Easily map one-to-one relationships with
OneToOnefields. - One-to-Many: Establish hierarchical relationships with
OneToMany. - Many-to-Many: Simplify complex mappings with
ManyToManypivot tables. - Polymorphic: Use
MorphOneandMorphManyfor flexible, type-based relations.
Each relationship is implemented with robust utilities for querying and manipulation.
📦 Latest Version
- Version: 0.1.2
- Release Date: November 28, 2024
🔍 Project Status
Hermes ORM is under active development, with new features and improvements added regularly. Contributions and feedback are welcome!
📜 License and Usage
Hermes ORM is free to use for both personal and commercial projects. However, Hermes ORM itself cannot be resold or distributed as a standalone product.
🤝 Contributors
Developed and maintained by Altxria Inc. with contributions from a growing community of developers.
❤️ Support Hermes ORM
If you find Hermes ORM useful, consider supporting its development and ongoing maintenance:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_orm-0.1.4.tar.gz.
File metadata
- Download URL: hermes_orm-0.1.4.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b334fc8bbefb4663e3ce3bd957b13444578304d775d105b672c493525f87f41a
|
|
| MD5 |
444fc047e1d6eb91173f6aab389114d5
|
|
| BLAKE2b-256 |
bbe0b67171d56d7efbebd03384b8d588c90ff232bc0eb30e470ddf5214a75839
|
File details
Details for the file hermes_orm-0.1.4-py3-none-any.whl.
File metadata
- Download URL: hermes_orm-0.1.4-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7d449af9b6b432fa25f10875625d7c0647c3f7cba541b7e25a5c92d9a079569
|
|
| MD5 |
d44ed14902da6c30f21c85579132336f
|
|
| BLAKE2b-256 |
7d88cddb6640b838148ade489c1229707a44e3d17265004a760eec1bb747e41c
|