def with_clause(ud: UD) -> WithClause: d = Drawer(ud) op = d.draw(query_operations) num = d.draw(integers(min_value=0)) nav = d.draw(navigation()) trm = d.optional(term) wc = d.optional(with_clause()) return WithClause(WithClauseFilter(op, num), nav, trm, wc)
def merge_term(ud: UD) -> MergeTerm: d = Drawer(ud) pre = d.draw(term) queries = d.draw(lists(merge_query, min_size=1, max_size=1)) pst = d.optional(term) return MergeTerm(pre, queries, pst)