def combine_pools(pools, **pool_kwargs): """Combine pools into a single pool Parameters ---------- pools: str, astropy.table.Table, [str|Table, ...] The pools to combine. Either a singleton is passed or and iterable can be passed. The entries themselves can be either a file path or an astropy.table.Table-like object. pool_kwargs: dict Other keyword arguments to pass to AssociationPool.read Returns ------- AssociationPool|astropy.table.Table The combined pool """ if not is_iterable(pools): pools = [pools] just_pools = [] for pool in pools: if not isinstance(pool, Table): pool = AssociationPool.read(pool, **pool_kwargs) just_pools.append(pool) if len(just_pools) > 1: mega_pool = vstack(just_pools, metadata_conflicts='silent') else: mega_pool = just_pools[0].copy(copy_data=True) # Replace OBS_NUM and ASN_CANDIDATE_ID with actual numbers, if # necessary expnum = Counter(start=0) obsnum = Counter(start=0) acid = Counter(start=999) local_env = locals() global_env = globals() for row in mega_pool: mega_pool[row.index] = [ parse_value(v, global_env=global_env, local_env=local_env) for v in row ] return mega_pool
def get_candidate_list(value): """Parse the candidate list from a item value Parameters ---------- value : str The value from the item to parse. Usually item['ASN_CANDIDATE'] Returns ------- [ACID, ...] The list of parsed candidates. """ result = [] evaled = evaluate(value) if is_iterable(evaled): result = [ACID(v) for v in evaled] return result
def get_candidate_list(value): """Parse the candidate list from a item value Parameters ---------- value : str The value from the item to parse. Usually item['ASN_CANDIDATE'] Returns ------- [ACID, ...] The list of parsed candidates. """ result = [] evaled = evaluate(value) if is_iterable(evaled): result = [ ACID(v) for v in evaled ] return result