##// END OF EJS Templates
fixed test env creator
fixed test env creator

File last commit:

r1065:5d676b6a beta
r1099:bc3dafd0 beta
Show More
meta.py
70 lines | 1.8 KiB | text/x-python | PythonLexer
renamed project to rhodecode
r547 """SQLAlchemy Metadata and Session object"""
from sqlalchemy.ext.declarative import declarative_base
Moved BaseModel into base class for declarative base. Added some handy methods into...
r1065 from sqlalchemy.orm import scoped_session, sessionmaker, class_mapper
from beaker import cache
renamed project to rhodecode
r547 from rhodecode.model import caching_query
Moved BaseModel into base class for declarative base. Added some handy methods into...
r1065
renamed project to rhodecode
r547
# Beaker CacheManager. A home base for cache configurations.
cache_manager = cache.CacheManager()
__all__ = ['Base', 'Session']
#
# SQLAlchemy session manager. Updated by model.init_model()
#
Session = scoped_session(
sessionmaker(
query_cls=caching_query.query_callable(cache_manager)
)
)
Moved BaseModel into base class for declarative base. Added some handy methods into...
r1065 class BaseModel(object):
"""Base Model for all classess
"""
@classmethod
def _get_keys(cls):
"""return column names for this model """
return class_mapper(cls).c.keys()
def get_dict(self):
"""return dict with keys and values corresponding
to this model data """
d = {}
for k in self._get_keys():
d[k] = getattr(self, k)
return d
def get_appstruct(self):
"""return list with keys and values tupples corresponding
to this model data """
l = []
for k in self._get_keys():
l.append((k, getattr(self, k),))
return l
def populate_obj(self, populate_dict):
"""populate model with data from given populate_dict"""
for k in self._get_keys():
if k in populate_dict:
setattr(self, k, populate_dict[k])
@classmethod
def query(cls):
return Session.query(cls)
@classmethod
def get(cls, id_):
return Session.query(cls).get(id_)
renamed project to rhodecode
r547 # The declarative Base
Moved BaseModel into base class for declarative base. Added some handy methods into...
r1065 Base = declarative_base(cls=BaseModel)
renamed project to rhodecode
r547
#to use cache use this in query
#.options(FromCache("sqlalchemy_cache_type", "cachekey"))