Skip to main content

Opinionated utilities for working with SQLAlchemy

Project description

sqla-utils

Opinionated utilities for working with SQLAlchemy

MIT License PyPI - Python Version GitHub pypi GitHub Workflow Status

Contents

Transaction Wrapper

FIXME

DBObjectBase

DBObjectBase is a base class for mapped classes.

Example:

from datetime import datetime
from sqlalchemy import Column, DateTime, Integer, String
from sqla_utils import DBObjectBase, Transaction

class DBAppointment(DBObjectBase):
    __tablename__ = "appointments"

    id = Column(Integer, primary_key=True)
    date = Column(DateTime, nullable=False)
    description = Column(String(1000), nullable=False, default="")

Appointment items can then be queried like this:

from sqla_utils import begin_transaction

with begin_transaction() as t:
    app123 = DBAppointment.fetch_by_id(t, 123)
    great_apps = DBAppointment.fetch_all(t, DBAppointment.description.like("%great%"))

It is recommended to add custom query, creation, and update methods:

class DBAppointment(DBObjectBase):
    ...

    @classmethod
    def create(cls, t: Transaction, date: datetime, description: str) -> DBAppointment:
        o = cls()
        o.date = date
        o.description = description
        t.add(o)
        return o

    @classmethod
    def fetch_all_after(cls, t: Transaction, date: datetime) -> List[DBAppointment]:
        return cls.fetch_all(t, cls.start >= dates.start)

    def update_description(self, t: Transaction, new_description: str) -> None:
        self.description = new_description
        t.changed(self)

Database Builder

FIXME

pytest Utilities

The sqla_utils.test module contains a few utilities for working with pytest and SQLAlchemy.

FIXME

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

sqla_utils-0.5.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

sqla_utils-0.5.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file sqla_utils-0.5.0.tar.gz.

File metadata

  • Download URL: sqla_utils-0.5.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.9.2 Linux/5.10.0-20-amd64

File hashes

Hashes for sqla_utils-0.5.0.tar.gz
Algorithm Hash digest
SHA256 7c52222d3ae0198ccfc31ca2abd549bb22b0bc51f90ba268b7cc4112232b9255
MD5 1f0db984002c747ee469cb69cd99e32c
BLAKE2b-256 ca8f938443b89b323a484114cf98d957962e26af3ff0fc4e5ed19ae70993f429

See more details on using hashes here.

File details

Details for the file sqla_utils-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: sqla_utils-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.9.2 Linux/5.10.0-20-amd64

File hashes

Hashes for sqla_utils-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 231a0756c43cc21314887071838b5b43a950d31337104b3a873b7316a52bc196
MD5 0078c2245f9f8dd0a14d92899d4ca07a
BLAKE2b-256 2a7c332bb6972a21af25e9168d9df25a25040d43c3ad5400efc10302326b8a28

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