Skip to main content

helper utility for repository pattern of PofEAA

Project description

https://travis-ci.org/rebeccaframework/rebecca.repository.png?branch=master

rebecca.repository

An implementation of repository pattern for SQLAlchemy.

Getting Started

install by pip:

$ pip install rebecca.repository

Implement your model by SQLAlchemy:

from sqlalchemy import Column, Integer, Unicode
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
DBSession = scoped_session(sessionmaker())

class Person(Base):
    __tablename__ = "person"
    id = Column(Integer, primary_key=True)
    name = Column(Unicode(255))
    age = Column(Integer, default=0)

Get repository:

from rebecca.repository.sqla import SQLARepository

person_repository = SQALRepository(Person, Person.id, DBSession())

this repository for Person model. To get person, use Person.id as key.

basic dict interface

create object for demonstration:

person1 = Person(name=u"person1")
DBSession.add(person1)
DBSession.flush() # to generate person.id

A repository has dict like interface:

person_repository[person.id]
person_repository.get(person.id)

conditional repository

repository can configure to set condition:

person_repository = SQALRepository(Person, Person.id, DBSession(), condition=Person.age>30)

Contributors

  • Atsushi Odagiri, Original Author

Changelog

0.1.1 (2013-08-24)

  • fix packaging bug

0.1 (2013-08-24)

  • first release

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

rebecca.repository-0.1.1.zip (7.9 kB view details)

Uploaded Source

File details

Details for the file rebecca.repository-0.1.1.zip.

File metadata

File hashes

Hashes for rebecca.repository-0.1.1.zip
Algorithm Hash digest
SHA256 730dcdafc295610f14aee89d8d1d36607312b06acc5b42af55ba8557cac27727
MD5 2b02783504a1bff6903bc615c322bb46
BLAKE2b-256 32ba8c2e86e7d625366ce72bd4279406512ff2267283219771bc8a4910f5a6cc

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