Easy storage handler
Project description
Ezstorge
[!CAUTION] Currently in development, not ready for use
A python ORM (Object-Relational Mapping) that allow to use a simple class syntax to interact with a database.
Why Ezstorge?
I needed to use a simple ORM to interact with a database, but I found that most of the existing ORMs are either too complex for a simple use case, and the migration tools are not always easy to setup and use.
-
Simple:
- The type of the field is defined by the type hint
- Has a simple query syntax similar to PonyORM
-
Flexible:
- Automatic table creation
- Automatic table update (add and remove fields)
- No need to use extra migration tools
-
Beautiful:
- Designed to be beautiful and easy to read.
- Fully typed, for better IDE support
[!NOTE] Inspired by PonyORM and Sqlalchemy
Example
import pandas as pd
import ezstorge as ez
db = ez.Sqlite("example.db")
@db.useTable("cars")
class Car(ez.Table):
model: str # Required string field
price: float # Required float field
miles: int = 0 # Default value if not provided
# Create, update, delete table
db.createTable(Car)
db.createTables()
db.updateTable(Car)
db.updateTables()
db.deleteTable(Car)
db.deleteTables()
car = Car(model="Tesla", price=100)
car.save() # Save the car
db.commit() # Commit the change
cars = Car.where() # Get all cars
print(cars)
# Use lambda to filter
cars = Car.where(lambda: Car.price > 20)
print(cars)
# Create a dataframe from the table
df = pd.DataFrame(users)
print(df)
Types
- int
- float
- str
- bool
- datetime
- date
- time
- timedelta
- list
- dict
- set
- tuple
- enum
- json
- bytes
- bytearray
- uuid
- Decimal
- Any
- Union
Providers
- Excel
- Sqlite
- Microsoft Access
- MySQL
- PostgreSQL
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ezstorages-0.0.12.tar.gz
(10.4 kB
view hashes)
Built Distribution
Close
Hashes for ezstorages-0.0.12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6364e74573356da961aa0bf65fd8b2e7b88781cbd553331da12baf7b9d4dbe60 |
|
MD5 | 74d4ab6edb2b1adaa76b915b7aa9bdcc |
|
BLAKE2b-256 | 1271d1cd3e03cd67199cbff6cf09fa3c9f3ea9f761e9d2a80ed5f60da6ef731a |