Skip to main content

Automatically generates pretty repr of a SQLAlchemy model.

Project description

https://travis-ci.org/manicmaniac/sqlalchemy-repr.svg?branch=master

Automatically generates pretty repr of a SQLAlchemy model.

Install

pip install sqlalchemy-repr

Usage

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy_repr import RepresentableBase

Base = declarative_base(cls=RepresentableBase)

Example

sqlalchemy_repr.RepresentableBase is mixin to add simple representation of columns.

>>> from datetime import datetime

>>> from sqlalchemy import Column, DateTime, Integer, Unicode, create_engine
>>> from sqlalchemy.ext.declarative import declarative_base
>>> from sqlalchemy.orm import sessionmaker
>>> from sqlalchemy_repr import RepresentableBase

>>> Base = declarative_base(cls=RepresentableBase)

>>> class User(Base):
...    __tablename__ = 'users'
...    id = Column(Integer, primary_key=True)
...    name = Column(Unicode(255), nullable=False, unique=True)
...    created = Column(DateTime, nullable=False)

>>> engine = create_engine('sqlite://')
>>> Base.metadata.create_all(engine)

>>> Session = sessionmaker(bind=engine)
>>> session = Session()

>>> user = User(name='spam', created=datetime(2016, 6, 1))
>>> session.add(user)
>>> session.commit()

>>> print(user)
<User id=1, name='spam', created='2016-06-01T00:00:00'>

sqlalchemy_repr.PrettyRepresentableBase brings pretty, indented multi-line representation.

>>> from sqlalchemy_repr import PrettyRepresentableBase
>>> Base = declarative_base(cls=PrettyRepresentableBase)

>>> class User(Base):
...    __tablename__ = 'users'
...    id = Column(Integer, primary_key=True)
...    first_name = Column(Unicode(255), nullable=False, unique=True)
...    last_name = Column(Unicode(255), nullable=False, unique=True)
...    email = Column(Unicode(255), nullable=False)
...    created = Column(DateTime, nullable=False)
...    modified = Column(DateTime, nullable=False)

>>> engine = create_engine('sqlite://')
>>> Base.metadata.create_all(engine)

>>> Session = sessionmaker(bind=engine)
>>> session = Session()

>>> user = User(first_name='spam', last_name='ham',  email='spam@example.com', created=datetime(2016, 6, 1), modified=datetime(2016, 6, 1))
>>> session.add(user)
>>> session.commit()

>>> print(user)
<User
    id=1,
    first_name='spam',
    last_name='ham',
    email='spam@example.com',
    created='2016-06-01T00:00:00',
    modified='2016-06-01T00:00:00'>

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

sqlalchemy-repr-0.1.0.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file sqlalchemy-repr-0.1.0.tar.gz.

File metadata

  • Download URL: sqlalchemy-repr-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for sqlalchemy-repr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eaf46d28479bd7416d33a184affa851aba9231e0de38123218fa6dfb59f1f2e8
MD5 c9230545e77655a1d2e7737795bf6dbb
BLAKE2b-256 b3afcb5be4b8a221653eaf385ae0d1634db9774e78413ade5982dd1c0784c2a2

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