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)
def get_bottom_category(q: Queryable) -> Queryable: return apply([ group_by_category, order_grouping_by(a_('duration'), Order.Asc), fst, as_category ], q)
def order_topics_by_insertions(q: Queryable): """ Number of insertions. """ return apply( [where(a_('is_topic')), order_by(a_('inserted_diffs').count())], q)
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]))) ])
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)
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)
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)
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)
def get_top_collection(q: Queryable) -> Queryable: return apply([ group_by_collection, order_grouping_by(a_('duration'), Order.Desc), fst, as_collection ], q)
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)
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)