コード例 #1
0
ファイル: caching.py プロジェクト: odtvince/APITaxi_utils
 def __iter__(self):
     """
     override __iter__ to pull results from dogpile
     if particular attributes have been configured.
     """
     if hasattr(self, '_cache_region'):
         return self.get_value(createfunc=lambda: list(BaseQuery.__iter__(self)))
     else:
         return BaseQuery.__iter__(self)
コード例 #2
0
ファイル: caching.py プロジェクト: kalkehcoisa/random_code
 def __iter__(self):
     """
     override __iter__ to pull results from dogpile
     if particular attributes have been configured.
     """
     if hasattr(self, '_cache_region'):
         return self.get_value(
             createfunc=lambda: list(BaseQuery.__iter__(self)))
     else:
         return BaseQuery.__iter__(self)
コード例 #3
0
ファイル: users.py プロジェクト: alexbelich/PromTal
def get_user_comments_in_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', current_app.config['PROFILE_COMMENTS_PER_PAGE'],
                                    type=int), current_app.config['PROFILE_COMMENTS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_comments_in_news = (
        db.session.query(News.id,
                         News.title,
                         func.count(Comment.id),
                         func.max(Comment.modify_datetime).label('last_modified'))
        .join(Comment, News.id == Comment.entity_id)
        .filter(Comment.author == user)
        .group_by(News.id)
        .order_by(desc('last_modified'))
    )
    p = BaseQuery.paginate(user_comments_in_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(zip(['news_id', 'news_title', 'comments_amount', 'last_modified_date'], map(str, x)))
            for x in p.items
        ],
    }
コード例 #4
0
ファイル: users.py プロジェクト: cpwr/PromTal
def get_user_comments_in_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(
        request.args.get('per_page',
                         current_app.config['PROFILE_COMMENTS_PER_PAGE'],
                         type=int),
        current_app.config['PROFILE_COMMENTS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_comments_in_news = (db.session.query(
        News.id, News.title, func.count(Comment.id),
        func.max(Comment.modify_datetime).label('last_modified')).join(
            Comment, News.id == Comment.entity_id).filter(
                Comment.author == user).group_by(News.id).order_by(
                    desc('last_modified')))
    p = BaseQuery.paginate(user_comments_in_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(
                zip([
                    'news_id', 'news_title', 'comments_amount',
                    'last_modified_date'
                ], map(str, x))) for x in p.items
        ],
    }
コード例 #5
0
ファイル: core.py プロジェクト: uSpike/Flask-SQLAlchemy-Cache
    def __iter__(self):
        """
        Override __iter__ to pull results from cache if particular
        attributes have been configured.

        This approach does *not* detach the loaded objects from the current
        session. If the cache backend is an in-process cache (like "memory")
        and lives beyond the scope of the current session's transaction, those
        objects may be expired.

        The method here can be modified to first expunge() each loaded item
        from the current session before returning the list of items, so that
        the items in the cache are not the same ones in the current Session.
        """
        if hasattr(self, '_cache'):
            func = lambda: list(BaseQuery.__iter__(self))
            return iter(self.get_value(createfunc=func))
        else:
            return BaseQuery.__iter__(self)
コード例 #6
0
    def __iter__(self):
        """
        Override __iter__ to pull results from cache if particular
        attributes have been configured.

        This approach does *not* detach the loaded objects from the current
        session. If the cache backend is an in-process cache (like "memory")
        and lives beyond the scope of the current session's transaction, those
        objects may be expired.

        The method here can be modified to first expunge() each loaded item
        from the current session before returning the list of items, so that
        the items in the cache are not the same ones in the current Session.
        """
        if hasattr(self, '_cache'):
            func = lambda: list(BaseQuery.__iter__(self))
            return iter(self.get_value(createfunc=func))
        else:
            return BaseQuery.__iter__(self)
コード例 #7
0
ファイル: users.py プロジェクト: alexbelich/PromTal
def get_user_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', current_app.config['PROFILE_NEWS_PER_PAGE'],
                                    type=int), current_app.config['PROFILE_NEWS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_news = (
        db.session.query(News.id, News.title, News.datetime)
        .filter(News.author == user)
        .order_by(News.datetime.desc())
    )
    p = BaseQuery.paginate(user_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [dict(zip(['news_id', 'news_title', 'created_date'], map(str, x))) for x in p.items],
    }
コード例 #8
0
ファイル: users.py プロジェクト: cpwr/PromTal
def get_user_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(
        request.args.get('per_page',
                         current_app.config['PROFILE_NEWS_PER_PAGE'],
                         type=int),
        current_app.config['PROFILE_NEWS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_news = (db.session.query(News.id, News.title, News.datetime).filter(
        News.author == user).order_by(News.datetime.desc()))
    p = BaseQuery.paginate(user_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(zip(['news_id', 'news_title', 'created_date'], map(str, x)))
            for x in p.items
        ],
    }
コード例 #9
0
ファイル: view.py プロジェクト: 7696122/popong-api
    def _query(self):
        if not self.model:
            raise NotImplementedError()

        return BaseQuery(self.model, self.model.query.session)
コード例 #10
0
 def __iter__(self):
     if hasattr(self, '_cache_region'):
         return self.get_value(createfunc=lambda: list(BaseQuery.__iter__(self)))
     else:
         return BaseQuery.__iter__(self)
コード例 #11
0
 def __init__(self, regions, *args, **kw):
     self.cache_regions = regions
     BaseQuery.__init__(self, *args, **kw)
コード例 #12
0
ファイル: caching.py プロジェクト: odtvince/APITaxi_utils
 def __init__(self, entities, *args, **kw):
     BaseQuery.__init__(self, entities=entities, *args, **kw)
コード例 #13
0
ファイル: caching.py プロジェクト: zyhndesign/cidic-artifacts
 def __iter__(self):
     if hasattr(self, '_cache_region'):
         return self.get_value(
             createfunc=lambda: list(BaseQuery.__iter__(self)))
     else:
         return BaseQuery.__iter__(self)
コード例 #14
0
ファイル: caching.py プロジェクト: zyhndesign/cidic-artifacts
 def __init__(self, regions, *args, **kw):
     self.cache_regions = regions
     BaseQuery.__init__(self, *args, **kw)