Skip to main content

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


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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezstorages-0.0.12-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file ezstorages-0.0.12.tar.gz.

File metadata

  • Download URL: ezstorages-0.0.12.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for ezstorages-0.0.12.tar.gz
Algorithm Hash digest
SHA256 10812b603a3fcb887223057f594973bbce0b0e92b591ab71c5ad497b675a5432
MD5 cd396915f7fe5156c33687865b8665db
BLAKE2b-256 b5dce1bf2697e963caf1f45bf54a3f60526e9cc3869d413e611b65f4ab96d8b8

See more details on using hashes here.

File details

Details for the file ezstorages-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: ezstorages-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for ezstorages-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 6364e74573356da961aa0bf65fd8b2e7b88781cbd553331da12baf7b9d4dbe60
MD5 74d4ab6edb2b1adaa76b915b7aa9bdcc
BLAKE2b-256 1271d1cd3e03cd67199cbff6cf09fa3c9f3ea9f761e9d2a80ed5f60da6ef731a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page