Manager for SQLAlchemy
Project description
Manager for model, methods added in runtime to query.
Installation
$ [sudo] pip install sqlalchemy-manager
Documentation
alchmanager.ManagedQuery
Manager for Query.
Example
from sqlalchemy.orm import sessionmaker from alchmanager import ManagedQuery, ManagedSession engine = create_engine('sqlite:///:memory:') session = sessionmaker(query_cls=ManagedQuery, bind=engine)() Base = declarative_base() class MainManager: @staticmethod def is_index(query): return query.filter_by(is_index=True) @staticmethod def is_public(query): return query.filter_by(is_public=True) class Test(Base): id = Column(Integer, primary_key=True) is_public = Column(Boolean, default=False) is_index = Column(Boolean) __manager__ = MainManager session.query(Video).is_index().filter_by(id=1).is_public()
alchmanager.ManagedSession
Manager for Session. Decorator load_manager() for register methods into session.
Example
from sqlalchemy.orm import sessionmaker from alchmanager import ManagedQuery, ManagedSession engine = create_engine('sqlite:///:memory:') session = sessionmaker(class_=ManagedSession, bind=engine)() @session.load_manager() class MainSessionManager: @staticmethod def published(query): return query.filter_by(is_public=True) @staticmethod def has_index(query): return query.filter_by(is_index=True) session.query(TestModel).has_index().published().count()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.