Skip to main content

Simple SQL ORM with support for several DB providers

Project description

pythrel

Abstract relational ORM system

WARNING: This is a small project I built mainly to learn how to interface with a few different kinds of SQL database. If you would like to use this in production, no you don't!

Documentation:

Installation:

python3 -m pip install pythrel

Basic Usage:

from pythrel import SqliteDatabase, Pythrel, Record
import secrets
import random

# Create database adapter
db = SqliteDatabase(path="test.db")
db.create_table("customers", {"id": "INTEGER", "customerName": "TEXT", "favorite_number": "REAL"})
db.commit()

# Generate some data
CUSTOMERS = {}
for c in range(500):
    CUSTOMERS[c] = {
        "id": c,
        "customerName": secrets.token_urlsafe(8),
        "favorite_number": random.randint(0, 10000)
    }

# Insert data
db.query().insert("customers", list(CUSTOMERS.values())).execute()
db.commit()

# Connect DB instance to ORM
orm = Pythrel(db)

# Use database table rows as objects
print(orm.load_columns(Customer, "customers", "*")[0].dict())
orm.create(Customer, "customers", id=-10, customerName="John", favorite_number=-69)
john = orm.load_columns(Customer, "customers", "*", where="id < 0")[0]
print(john)
john.favorite_number = 1000
orm.save(john, key="id")
print(orm.load_query(Customer, orm.query().select("customers", "*").where("id < 0"))[0])

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

pythrel-0.1.1.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

pythrel-0.1.1-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file pythrel-0.1.1.tar.gz.

File metadata

  • Download URL: pythrel-0.1.1.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/6.2.0-1011-azure

File hashes

Hashes for pythrel-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d8d9ed3d0ad62815564c18c1f318ce7d4be358a9b79ea1c37c256299f4dae81f
MD5 c1fef49b188d884addeca94ad90c06c9
BLAKE2b-256 953db399296be55c0f59da1b0423130ed7aae61622e68d6937a6f167a9571bef

See more details on using hashes here.

File details

Details for the file pythrel-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pythrel-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/6.2.0-1011-azure

File hashes

Hashes for pythrel-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ee08990ee3a6dfa812412f31d65ec3e27c21175b79a6839b358ead3185a7982
MD5 94dc4023dd32cf5f4441672710951b47
BLAKE2b-256 23a1ccd68126892d5df8b9ef98a9d3ee04ac6fb9ee0bfd416b9df6cfeb52cde0

See more details on using hashes here.

Supported by

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