def order_by_insertion_length(q: Queryable):
    """
    Text Length.
    """
    return apply(
        [order_by(lambda x: sum(len(diff[1]) for diff in x.inserted_diffs))],
        q)
def fmt_el_content(content: str):
    return apply([
        remove_references,
        wrap,
        "\n".join,
        html.unescape
    ], content)
示例#3
0
def get_bottom_category(q: Queryable) -> Queryable:
    return apply([
        group_by_category,
        order_grouping_by(a_('duration'), Order.Asc),
        fst,
        as_category
    ], q)
示例#4
0
def order_topics_by_insertions(q: Queryable):
    """
    Number of insertions.
    """
    return apply(
        [where(a_('is_topic')),
         order_by(a_('inserted_diffs').count())], q)
示例#5
0
def order_topics_by_insertion_length(q: Queryable):
    """
    Text Length.
    """
    return apply([
        where(a_('is_topic')),
        order_by(query(a_('inserted_diffs')).sum(lambda x: len(x[1])))
    ])
示例#6
0
def order_topics_by_deletion_length(q: Queryable):
    """
    Text length.
    """
    return apply(
        [
            # where(a_('is_topic')),
            order_by(lambda x: len(diff[1] for diff in x.deleted_diffs))
        ],
        q)
示例#7
0
def order_topics_by_deletions(q: Queryable):
    """
    Number of deletions.
    """
    return apply(
        [
            # where(a_('is_topic')),
            order_by(lambda x: len(x.deleted_diffs))
        ],
        q)
示例#8
0
    def get_sm_events(self,
                      start: dt.datetime,
                      end: dt.datetime,
                      filters: List[Callable],
                      limit: int = -1) -> Queryable:

        endpoint = f"buckets/{SM_BUCKET_NAME}/events"
        params: Dict[str, str] = dict()

        if limit is not None:
            params["limit"] = str(limit)
        if start is not None:
            params["start"] = start.isoformat()
        if end is not None:
            params["end"] = end.isoformat()
        aw_events = self._get(endpoint, params=params).json()
        sm_events = [SMEvent(**event) for event in aw_events]
        return apply(filters, query(sm_events))
def where_inserted_contains(q: Queryable, strings: List[str]):
    return apply([where(m_('inserted_contains', strings))], q)
def order_by_insertions(q: Queryable):
    """
    Number of insertions.
    """
    return apply([order_by(lambda x: len(x.inserted_diffs))], q)
示例#11
0
def order_categories_by_time(q: Queryable) -> Queryable:
    return apply([
        group_by_category,
        order_grouping_by(a_('duration'), Order.Desc),
        select(lambda x: Category(name=x.key, time=x.sum(a_('duration'))))
    ], q)
示例#12
0
def get_top_collection(q: Queryable) -> Queryable:
    return apply([
        group_by_collection,
        order_grouping_by(a_('duration'), Order.Desc), fst, as_collection
    ], q)
示例#13
0
def get_collection_times(q: Queryable) -> Queryable:
    return apply([
        group_by_collection,
        order_grouping_by(a_('duration'), Order.Desc),
        select(lambda x: as_collection(x))
    ], q)
def order_by_deletions(q: Queryable):
    """
    Number of deletions.
    """
    return apply([order_by(lambda x: len(x.deleted_diffs))], q)
示例#15
0
def items_edited_during_standard(q: Queryable):
    return apply([
        where(And(a_('is_item'), a_('edited'), a_('during_standard'))),
    ], q)
def where_unchanged_contains(q: Queryable, string: str):
    return apply([where(m_('unchanged_contains', string))], q)
def order_by_child_delta(q: Queryable):
    return apply([order_by(a_('data.children_delta'))], q)
def where_deleted_contains(q: Queryable, string: str):
    return apply([where(m_('deleted_contains', string))], q)