Mercurial > repos > gga > chado_feature_get_features
diff chado.py @ 12:df8527b4f2b8 draft
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/chado commit 1640878827bdc3870b6f34eded3a3f7571a1849f"
author | gga |
---|---|
date | Wed, 21 Aug 2019 05:12:35 -0400 |
parents | d3ffd510c98a |
children |
line wrap: on
line diff
--- a/chado.py Thu Jul 11 08:38:44 2019 -0400 +++ b/chado.py Wed Aug 21 05:12:35 2019 -0400 @@ -389,7 +389,8 @@ os.environ['GALAXY_CHADO_DBPASS'], os.environ['GALAXY_CHADO_DBSCHEMA'], os.environ['GALAXY_CHADO_DBPORT'], - no_reflect=True + no_reflect=True, + pool_connections=False ) @@ -474,3 +475,43 @@ for an in ci.analysis.get_analyses(): ans_data.append((an['name'], str(an['analysis_id']), False)) return ans_data + + +def list_dbs(*args, **kwargs): + + ci = _get_instance() + + # Key for cached data + cacheKey = 'dbs' + # We don't want to trust "if key in cache" because between asking and fetch + # it might through key error. + if cacheKey not in cache: + # However if it ISN'T there, we know we're safe to fetch + put in + # there.<?xml version="1.0"?> + + data = _list_dbs(ci, *args, **kwargs) + cache[cacheKey] = data + ci.session.close() + return data + try: + # The cache key may or may not be in the cache at this point, it + # /likely/ is. However we take no chances that it wasn't evicted between + # when we checked above and now, so we reference the object from the + # cache in preparation to return. + data = cache[cacheKey] + ci.session.close() + return data + except KeyError: + # If access fails due to eviction, we will fail over and can ensure that + # data is inserted. + data = _list_dbs(ci, *args, **kwargs) + cache[cacheKey] = data + ci.session.close() + return data + + +def _list_dbs(ci, *args, **kwargs): + dbs_data = [] + for db in ci.load._get_dbs(): + dbs_data.append((db['name'], str(db['db_id']), False)) + return dbs_data