def example_getter_methods(depc, tablename, root_rowids): """ example of different ways to get data """ import dtool print('\n+---') print('Running getter example') print(' * tablename=%r' % (tablename)) print(' * root_rowids=%r' % (ut.trunc_repr(tablename))) # You can get a reference to data rows using the "root" (dummy_annot) rowids # By default, if the data has not been computed, then it will be computed # for you. But if you specify ensure=False, None will be returned if the data # has not been computed yet. tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False) # NOQA print('tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False)') print('tbl_rowids = %s' % (ut.trunc_repr(tbl_rowids),)) #assert tbl_rowids[0] is None # The default is for the data to be computed though. Manaual interactions will # launch as necessary. tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=True) # NOQA print('tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=True)') print('tbl_rowids = %s' % (ut.trunc_repr(tbl_rowids),)) assert tbl_rowids[0] is not None # Now the data is cached and will not need to be computed again tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False) # NOQA assert tbl_rowids[0] is not None # Can lookup a table, which can access data directly. The rowids can be # used to lookup data values directly. By default all data in a row is # returned. table = depc[tablename] datas = table.get_row_data(tbl_rowids) # NOQA # But you can also ask for a specific column col1 = table.columns[0] col1_data = table.get_row_data(tbl_rowids, col1) # NOQA # In the case of external columns: if len(table.extern_columns) > 0: excol = table.extern_columns[0] # you can lookup the value of the external data very simply extern_data = table.get_row_data(tbl_rowids, (excol,)) # NOQA print('extern_data = table.get_row_data(tbl_rowids, (excol,))') print(ut.varinfo_str(extern_data, 'extern_data')) # you can lookup the hidden paths as follows extern_paths = table.get_row_data(tbl_rowids, (excol + dtool.depcache_table.EXTERN_SUFFIX,)) # NOQA print('extern_paths = table.get_row_data(tbl_rowids, (excol + dtool.depcache_table.EXTERN_SUFFIX,))') print(ut.varinfo_str(extern_paths, 'extern_paths')) # But you can also just the root rowids directly. This is the simplest way # to access data and really "all you need to know" if len(table.columns) > 1: col1, col2 = table.columns[0:2] datas = depc.get_property(tablename, root_rowids, (col1, col2)) # NOQA print('L__')
def test_getters(depc): # One input = one output chip = depc.get_property('chip', 1, 'chip') # NOQA print('[test] chip.sum() = %r' % (chip.sum(), )) col_tup_list = depc.get_property('chip', [1], ('size', )) print('[test] col_tup_list = %r' % (col_tup_list, )) col_list = depc.get_property('chip', [1], 'size') print('[test] col_list = %r' % (col_list, )) col = depc.get_property('chip', 1, 'size') print('[test] col = %r' % (col, )) cols = depc.get_property('chip', 1, 'size') print('[test] cols = %r' % (cols, )) if False: chip_dict = depc.get_obj('chip', 1) print('chip_dict = %r' % (chip_dict, )) for key in chip_dict.keys(): print(ut.varinfo_str(chip_dict[key], 'chip_dict["%s"]' % (key, ))) # print('chip_dict["chip"] = %s' % (ut.trunc_repr(chip_dict['chip']),)) print('chip_dict = %r' % (chip_dict, ))
def test_getters(depc): # One input = one output chip = depc.get_property('chip', 1, 'chip') # NOQA print('[test] chip.sum() = %r' % (chip.sum(),)) col_tup_list = depc.get_property('chip', [1], ('size',)) print('[test] col_tup_list = %r' % (col_tup_list,)) col_list = depc.get_property('chip', [1], 'size') print('[test] col_list = %r' % (col_list,)) col = depc.get_property('chip', 1, 'size') print('[test] col = %r' % (col,)) cols = depc.get_property('chip', 1, 'size') print('[test] cols = %r' % (cols,)) if False: chip_dict = depc.get_obj('chip', 1) print('chip_dict = %r' % (chip_dict,)) for key in chip_dict.keys(): print(ut.varinfo_str(chip_dict[key], 'chip_dict["%s"]' % (key,))) # print('chip_dict["chip"] = %s' % (ut.trunc_repr(chip_dict['chip']),)) print('chip_dict = %r' % (chip_dict,))
def example_getter_methods(depc, tablename, root_rowids): """ example of different ways to get data """ import dtool print('\n+---') print('Running getter example') print(' * tablename=%r' % (tablename)) print(' * root_rowids=%r' % (ut.trunc_repr(tablename))) # You can get a reference to data rows using the "root" (dummy_annot) rowids # By default, if the data has not been computed, then it will be computed # for you. But if you specify ensure=False, None will be returned if the data # has not been computed yet. tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False) # NOQA print('tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False)') print('tbl_rowids = %s' % (ut.trunc_repr(tbl_rowids), )) #assert tbl_rowids[0] is None # The default is for the data to be computed though. Manaual interactions will # launch as necessary. tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=True) # NOQA print('tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=True)') print('tbl_rowids = %s' % (ut.trunc_repr(tbl_rowids), )) assert tbl_rowids[0] is not None # Now the data is cached and will not need to be computed again tbl_rowids = depc.get_rowids(tablename, root_rowids, ensure=False) # NOQA assert tbl_rowids[0] is not None # Can lookup a table, which can access data directly. The rowids can be # used to lookup data values directly. By default all data in a row is # returned. table = depc[tablename] datas = table.get_row_data(tbl_rowids) # NOQA # But you can also ask for a specific column col1 = table.columns[0] col1_data = table.get_row_data(tbl_rowids, col1) # NOQA # In the case of external columns: if len(table.extern_columns) > 0: excol = table.extern_columns[0] # you can lookup the value of the external data very simply extern_data = table.get_row_data(tbl_rowids, (excol, )) # NOQA print('extern_data = table.get_row_data(tbl_rowids, (excol,))') print(ut.varinfo_str(extern_data, 'extern_data')) # you can lookup the hidden paths as follows extern_paths = table.get_row_data( tbl_rowids, (excol + dtool.depcache_table.EXTERN_SUFFIX, )) # NOQA print( 'extern_paths = table.get_row_data(tbl_rowids, (excol + dtool.depcache_table.EXTERN_SUFFIX,))' ) print(ut.varinfo_str(extern_paths, 'extern_paths')) # But you can also just the root rowids directly. This is the simplest way # to access data and really "all you need to know" if len(table.columns) > 1: col1, col2 = table.columns[0:2] datas = depc.get_property(tablename, root_rowids, (col1, col2)) # NOQA print('L__')