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)
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.11.tar.gz
(9.9 kB
view hashes)
Built Distribution
Close
Hashes for ezstorages-0.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | decd240a2c7c09cc187d4e441eb9f9c4463d0c988b76389c03b9b2c68d45578f |
|
MD5 | 5e78192992c88b444d7f4d0e66b95885 |
|
BLAKE2b-256 | 79659f309fe06e331969688db0a06ee6e75eb757a29138d5bbd0ef5b4c4c3eb7 |