Easy storage handler


License
Other
Install
pip install ezstorages==0.0.12

Documentation

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