helper utility for repository pattern of PofEAA
Project description
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)
File details
Details for the file rebecca.repository-0.1.1.zip
.
File metadata
- Download URL: rebecca.repository-0.1.1.zip
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 730dcdafc295610f14aee89d8d1d36607312b06acc5b42af55ba8557cac27727 |
|
MD5 | 2b02783504a1bff6903bc615c322bb46 |
|
BLAKE2b-256 | 32ba8c2e86e7d625366ce72bd4279406512ff2267283219771bc8a4910f5a6cc |