def run(self, aq: AqSession, models: List[Sample], new_node_callback=None): with aq.with_cache(timeout=60) as sess: page_size = 1000 with Progress() as progress: task0 = progress.add_task("getting items...", total=page_size*2) with infinite_task_context(progress, task_id=task0) as callback: items = sess.Item.where({"sample_id": [m.id for m in models]}, page_size=page_size, page_callback=callback) sess.browser.get(items, {'object_type'}) return list(sess.browser.models)
def run( self, aq: AqSession, models: List[Sample], *, new_node_callback: Optional[NewNodeCallback] = None ) -> List[ModelBase]: with aq.with_cache(timeout=60) as sess: sess: AqSession # non_browser_sess = aq(using_cache=False) page_size = 1000 browser: Browser = sess.browser with Progress() as progress: task0 = progress.add_task("collecting samples", total=page_size * 2) with infinite_task_context(progress, task0) as callback: query = { '__model__': 'FieldValue', '__query__': { 'parent_class': 'Operation', 'child_sample_id': [m.id for m in models], '__return__': { 'operation': { 'plan_associations': {}, 'job_associations': {}, 'operation_type': 'field_types', 'field_values': {'sample', 'item'} }, 'field_type': {} } } } results = sess.query(query, use_cache=True, page_size=page_size, page_callback=callback) browser.update_cache(results) return list(browser.models)
def _create_network( cls, aq: AqSession, models: List[ModelBase], new_node_callback: NewNodeCallback = None, new_edge_callback: NewEdgeCallback = None, ) -> nx.DiGraph: with aq.with_cache(timeout=120) as sess: browser: Browser = sess.browser browser.clear() browser.update_cache(models) g = relationship_network( sess.browser, models, reverse=True, get_models=cls.get_models, cache_func=cls.cache_func, key_func=cls.key_func, strict_cache=False, new_node_callback=new_node_callback, new_edge_callback=new_edge_callback, ) return g