本文整理匯總了Python中tvb.core.entities.storage.SA_SESSIONMAKER.close方法的典型用法代碼示例。如果您正苦於以下問題:Python SA_SESSIONMAKER.close方法的具體用法?Python SA_SESSIONMAKER.close怎麽用?Python SA_SESSIONMAKER.close使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類tvb.core.entities.storage.SA_SESSIONMAKER
的用法示例。
在下文中一共展示了SA_SESSIONMAKER.close方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: upgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def upgrade(migrate_engine):
"""
Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata.
"""
meta.bind = migrate_engine
table = meta.tables['USERS']
drop_column(COLUMN_N1, table)
table = meta.tables['BURST_CONFIGURATIONS']
drop_column(COLUMN_N2, table)
table = meta.tables['OPERATIONS']
alter_column(COLUMN_N3_OLD, table=table, name=COLUMN_N3_NEW.name)
try:
meta.bind = migrate_engine
session = SA_SESSIONMAKER()
session.execute(text("""UPDATE "DATA_TYPES" SET module='tvb.datatypes.region_mapping' WHERE "type" = 'RegionMapping' """))
session.execute(text("""UPDATE "DATA_TYPES" SET module='tvb.datatypes.local_connectivity' WHERE "type" = 'LocalConnectivity' """))
session.execute(text("""UPDATE "DATA_TYPES" SET module='tvb.datatypes.cortex' WHERE "type" = 'Cortex' """))
session.commit()
session.close()
except Exception:
LOGGER.exception("Cold not update datatypes")
raise
示例2: reset_database
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def reset_database():
"""
Remove all tables in DB.
"""
LOGGER.warning("Your Database tables will be deleted.")
try:
session = SA_SESSIONMAKER()
LOGGER.debug("Delete connection initiated.")
inspector = reflection.Inspector.from_engine(session.connection())
for table in inspector.get_table_names():
try:
LOGGER.debug("Removing:" + table)
session.execute(text("DROP TABLE \"%s\" CASCADE" % table))
except Exception:
try:
session.execute(text("DROP TABLE %s" % table))
except Exception as excep1:
LOGGER.error("Could no drop table %s", table)
LOGGER.exception(excep1)
session.commit()
LOGGER.info("Database was cleanup!")
except Exception as excep:
LOGGER.warning(excep)
finally:
session.close()
示例3: test_db_mapping
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def test_db_mapping(self):
""" Test DB storage/retrieval of a simple traited attribute"""
session = SA_SESSIONMAKER()
model.Base.metadata.create_all(bind=session.connection())
session.commit()
session.close()
# test data
dikt = {'a': 6}
tup = ('5', 9.348)
dtype = numpy.dtype(float)
json = {'a': 'asdf', 'b': {'23': '687568'}}
test_inst = MappedTestClass()
test_inst.dikt = copy.deepcopy(dikt)
test_inst.tup = copy.deepcopy(tup)
test_inst.dtype = copy.deepcopy(dtype)
test_inst.json = copy.deepcopy(json)
test_inst.set_operation_id(self.operation.id)
test_inst = dao.store_entity(test_inst)
test_inst = dao.get_generic_entity(MappedTestClass, test_inst.gid, 'gid')[0]
self.assertEqual(test_inst.dikt, dikt)
self.assertEqual(test_inst.tup, tup)
self.assertEqual(test_inst.dtype, dtype)
self.assertEqual(test_inst.json, json)
示例4: _transfer_projection_matrices
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def _transfer_projection_matrices():
"""
Previous ProjectionRegionM/EEG objects should be Removed,
and ProjectionSurfaceM/EEG should be transported into the new DB tables.
"""
session = SA_SESSIONMAKER()
LOGGER.info("Transferring Projections Surface ...")
try:
# Ony after SqlAlchemy finished initialization the new table MAPPED_PROJECTION_DATA exists
session.execute(text("""INSERT into "MAPPED_PROJECTION_DATA" (id, _sources, _sensors, _projection_type)
SELECT PS.id, PM._sources, PM._sensors, 'projEEG'
FROM "MAPPED_PROJECTION_SURFACE_EEG_DATA" PS, "MAPPED_PROJECTION_MATRIX_DATA" PM
WHERE PM.id=PS.id;"""))
session.execute(text("""INSERT into "MAPPED_PROJECTION_DATA" (id, _sources, _sensors, _projection_type)
SELECT PS.id, PM._sources, PM._sensors, 'projMEG'
FROM "MAPPED_PROJECTION_SURFACE_MEG_DATA" PS, "MAPPED_PROJECTION_MATRIX_DATA" PM
WHERE PM.id=PS.id;"""))
session.execute(text("""DROP TABLE "MAPPED_PROJECTION_SURFACE_EEG_DATA";"""))
session.execute(text("""DROP TABLE "MAPPED_PROJECTION_SURFACE_MEG_DATA";"""))
session.execute(text("""DROP TABLE "MAPPED_PROJECTION_MATRIX_DATA";"""))
LOGGER.info("Removing Projections Region ...")
session.execute(text("""DELETE from "DATA_TYPES"
WHERE type in ('ProjectionRegionEEG', 'ProjectionRegionMEG');"""))
session.commit()
except Exception:
LOGGER.exception("Could not update Projection references")
finally:
session.close()
示例5: initialize_startup
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def initialize_startup():
""" Force DB tables create, in case no data is already found."""
is_db_empty = False
session = SA_SESSIONMAKER()
inspector = reflection.Inspector.from_engine(session.connection())
if len(inspector.get_table_names()) < 1:
LOGGER.debug("Database access exception, maybe DB is empty")
is_db_empty = True
session.close()
if is_db_empty:
LOGGER.info("Initializing Database")
if os.path.exists(cfg.DB_VERSIONING_REPO):
shutil.rmtree(cfg.DB_VERSIONING_REPO)
migratesqlapi.create(cfg.DB_VERSIONING_REPO, os.path.split(cfg.DB_VERSIONING_REPO)[1])
_update_sql_scripts()
migratesqlapi.version_control(cfg.DB_URL, cfg.DB_VERSIONING_REPO, version=cfg.DB_CURRENT_VERSION)
session = SA_SESSIONMAKER()
model.Base.metadata.create_all(bind=session.connection())
session.commit()
session.close()
LOGGER.info("Database Default Tables created successfully!")
else:
_update_sql_scripts()
migratesqlapi.upgrade(cfg.DB_URL, cfg.DB_VERSIONING_REPO, version=cfg.DB_CURRENT_VERSION)
LOGGER.info("Database already has some data, will not be re-created!")
return is_db_empty
示例6: upgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def upgrade(migrate_engine):
"""
Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata.
"""
try:
meta.bind = migrate_engine
table1 = meta.tables['MAPPED_SURFACE_DATA']
create_column(COL_1, table1)
create_column(COL_2, table1)
create_column(COL_3, table1)
try:
session = SA_SESSIONMAKER()
session.execute(text("UPDATE \"DATA_TYPES\" SET invalid=1 WHERE exists "
"(SELECT * FROM \"MAPPED_SURFACE_DATA\" WHERE _number_of_split_slices > 1 "
"and \"DATA_TYPES\".id = \"MAPPED_SURFACE_DATA\".id)"))
session.commit()
session.close()
except ProgrammingError:
# PostgreSQL
session = SA_SESSIONMAKER()
session.execute(text("UPDATE \"DATA_TYPES\" SET invalid=TRUE WHERE exists "
"(SELECT * FROM \"MAPPED_SURFACE_DATA\" WHERE _number_of_split_slices > 1 "
"and \"DATA_TYPES\".id = \"MAPPED_SURFACE_DATA\".id)"))
session.commit()
session.close()
except Exception:
logger = get_logger(__name__)
logger.exception("Cold not create new column required by the update")
raise
示例7: remove_visualizer_references
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def remove_visualizer_references():
"""
As we removed an algorithm, remove left-overs.
"""
LOGGER.info("Starting to remove references towards old viewer ....")
session = SA_SESSIONMAKER()
try:
session.execute(text(
"""DELETE FROM "OPERATIONS" WHERE fk_from_algo IN
(SELECT A.id FROM "ALGORITHMS" A, "ALGORITHM_GROUPS" AG
WHERE A.fk_algo_group = AG.id AND module = 'tvb.adapters.visualizers.cross_correlation'
AND classname = 'PearsonCorrelationCoefficientVisualizer');"""))
session.execute(text(
"""DELETE FROM "WORKFLOW_VIEW_STEPS" WHERE fk_algorithm IN
(SELECT A.id FROM "ALGORITHMS" A, "ALGORITHM_GROUPS" AG
WHERE A.fk_algo_group = AG.id AND module = 'tvb.adapters.visualizers.cross_correlation'
AND classname = 'PearsonCorrelationCoefficientVisualizer');"""))
session.commit()
except Exception as excep:
LOGGER.exception(excep)
finally:
session.close()
LOGGER.info("References removed.")
示例8: upgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def upgrade(migrate_engine):
"""
Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata.
"""
meta.bind = migrate_engine
table = meta.tables['DATA_TYPES_GROUPS']
create_column(COL_RANGES_1, table)
create_column(COL_RANGES_2, table)
try:
## Iterate DataTypeGroups from previous code-versions and try to update value for the new column.
previous_groups = dao.get_generic_entity(model.DataTypeGroup, "0", "no_of_ranges")
for group in previous_groups:
operation_group = dao.get_operationgroup_by_id(group.fk_operation_group)
#group.only_numeric_ranges = operation_group.has_only_numeric_ranges
if operation_group.range3 is not None:
group.no_of_ranges = 3
elif operation_group.range2 is not None:
group.no_of_ranges = 2
elif operation_group.range1 is not None:
group.no_of_ranges = 1
else:
group.no_of_ranges = 0
dao.store_entity(group)
except Exception as excep:
## we can live with a column only having default value. We will not stop the startup.
logger = get_logger(__name__)
logger.exception(excep)
session = SA_SESSIONMAKER()
session.execute(text("""UPDATE "OPERATIONS"
SET status =
CASE
WHEN status = 'FINISHED' THEN '4-FINISHED'
WHEN status = 'STARTED' THEN '3-STARTED'
WHEN status = 'CANCELED' THEN '2-CANCELED'
ELSE '1-ERROR'
END
WHERE status IN ('FINISHED', 'CANCELED', 'STARTED', 'ERROR');"""))
session.commit()
session.close()
try:
session = SA_SESSIONMAKER()
for sim_state in session.query(SimulationState).filter(SimulationState.fk_datatype_group is not None).all():
session.delete(sim_state)
session.commit()
session.close()
except Exception as excep:
## It might happen that SimulationState table is not yet created, e.g. if user has version 1.0.2
logger = get_logger(__name__)
logger.exception(excep)
示例9: upgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def upgrade(_migrate_engine):
"""
Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata.
"""
session = SA_SESSIONMAKER()
session.execute(text("DROP TABLE \"MAPPED_STRUCTURAL_MRI_DATA\""))
session.commit()
session.close()
示例10: introspect
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def introspect(self, do_create):
"""
Introspect a given module to:
- create tables for custom DataType;
- populate adapter algorithms references.
"""
self.logger.debug("Introspection into module:" + self.module_name)
module = __import__(self.module_name, globals(), locals(), ["__init__"])
try:
path_adapters = module.ADAPTERS
self.path_types = module.DATATYPES_PATH
self.removers_path = module.REMOVERS_PATH
self.path_portlets = getattr(module, 'PORTLETS_PATH', [])
except Exception as excep:
self.logger.warning("Module " + self.module_name + " is not fully introspect compatible!")
self.logger.warning(excep.message)
return
if do_create:
self.logger.debug("Found Datatypes_Path=" + str(self.path_types))
# DataTypes only need to be imported for adding to DB tables
for path in self.path_types:
self.__get_datatypes(path)
session = SA_SESSIONMAKER()
model.Base.metadata.create_all(bind=session.connection())
session.commit()
session.close()
self.logger.debug("Found Adapters_Dict=" + str(path_adapters))
for category_name in path_adapters:
category_details = path_adapters[category_name]
launchable = bool(category_details.get(LAUNCHABLE))
rawinput = bool(category_details.get(RAWINPUT))
display = bool(category_details.get(DISPLAYER))
order_nr = category_details.get(ORDER, 999)
category_instance = dao.filter_category(category_name, rawinput, display, launchable, order_nr)
if category_instance is not None:
category_instance.last_introspection_check = datetime.datetime.now()
category_instance.removed = False
else:
category_state = category_details.get(STATE, '')
category_instance = model.AlgorithmCategory(category_name, launchable, rawinput, display,
category_state, order_nr, datetime.datetime.now())
category_instance = dao.store_entity(category_instance)
for actual_module in path_adapters[category_name]['modules']:
self.__read_adapters(category_instance.id, actual_module)
for path in self.path_portlets:
self.__get_portlets(path)
### Register Remover instances for current introspected module
removers.update_dictionary(self.get_removers_dict())
示例11: _adapt_epileptor_simulations
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def _adapt_epileptor_simulations():
"""
Previous Simulations on EpileptorWithPermitivity model, should be converted to use the Epileptor model.
As the parameters from the two models are having different ranges and defaults, we do not translate parameters,
we only set the Epileptor as model instead of EpileptorPermittivityCoupling, and leave the model params to defaults.
"""
session = SA_SESSIONMAKER()
epileptor_old = "EpileptorPermittivityCoupling"
epileptor_new = "Epileptor"
param_model = "model"
try:
all_ep_ops = session.query(model.Operation).filter(
model.Operation.parameters.ilike('%"' + epileptor_old + '"%')).all()
files_helper = FilesHelper()
all_bursts = dict()
for ep_op in all_ep_ops:
try:
op_params = parse_json_parameters(ep_op.parameters)
if op_params[param_model] != epileptor_old:
LOGGER.debug("Skipping op " + str(op_params[param_model]) + " -- " + str(ep_op))
continue
LOGGER.debug("Updating " + str(op_params))
op_params[param_model] = epileptor_new
ep_op.parameters = json.dumps(op_params, cls=MapAsJson.MapAsJsonEncoder)
LOGGER.debug("New params:" + ep_op.parameters)
files_helper.write_operation_metadata(ep_op)
burst = dao.get_burst_for_operation_id(ep_op.id)
if burst is not None:
LOGGER.debug("Updating burst:" + str(burst))
burst.prepare_after_load()
burst.simulator_configuration[param_model] = {'value': epileptor_new}
burst._simulator_configuration = json.dumps(burst.simulator_configuration,
cls=MapAsJson.MapAsJsonEncoder)
if not all_bursts.has_key(burst.id):
all_bursts[burst.id] = burst
except Exception:
LOGGER.exception("Could not process " + str(ep_op))
session.add_all(all_ep_ops)
session.add_all(all_bursts.values())
session.commit()
except Exception:
LOGGER.exception("Could not update Simulation Epileptor Params")
finally:
session.close()
示例12: downgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def downgrade(migrate_engine):
"""Operations to reverse the above upgrade go here."""
meta.bind = migrate_engine
table1 = meta.tables['MAPPED_CONNECTIVITY_DATA']
create_column(COL_OLD, table1)
session = SA_SESSIONMAKER()
session.execute(text("UPDATE \"MAPPED_CONNECTIVITY_DATA\" set _unidirectional=_undirected"))
session.commit()
session.close()
drop_column(COL_NEW, table1)
create_column(COL_NOSE_CORRECTION, table1)
示例13: downgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def downgrade(migrate_engine):
"""Operations to reverse the above upgrade go here."""
meta.bind = migrate_engine
table = meta.tables['MAPPED_SURFACE_DATA']
drop_column(COLUMN_N1, table)
drop_column(COLUMN_N2, table)
drop_column(COLUMN_N3, table)
session = SA_SESSIONMAKER()
session.execute(text("""UPDATE "OPERATIONS" SET status='4-FINISHED' WHERE status = '5-FINISHED' """))
session.execute(text("""UPDATE "OPERATIONS" SET status='3-STARTED' WHERE status = '4-PENDING' """))
session.commit()
session.close()
示例14: change_algorithm
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def change_algorithm(module, classname, new_module, new_class):
"""
Change module and classname fields in ALGORITHM_GROUPS table.
"""
session = SA_SESSIONMAKER()
try:
session.execute(text(
"""UPDATE "ALGORITHM_GROUPS"
SET module = '""" + new_module + """', classname = '""" + new_class + """'
WHERE module = '""" + module + """' AND classname = '""" + classname + """';"""))
session.commit()
except Exception as excep:
LOGGER.exception(excep)
finally:
session.close()
示例15: downgrade
# 需要導入模塊: from tvb.core.entities.storage import SA_SESSIONMAKER [as 別名]
# 或者: from tvb.core.entities.storage.SA_SESSIONMAKER import close [as 別名]
def downgrade(_migrate_engine):
"""Operations to reverse the above upgrade go here."""
try:
session = SA_SESSIONMAKER()
session.execute(text("""UPDATE "BURST_CONFIGURATIONS" SET _simulator_configuration =
REPLACE(REPLACE(_simulator_configuration, "range_1", "first_range"),
"range_2", "second_range");"""))
session.execute(text("""UPDATE "OPERATIONS" SET parameters =
REPLACE(REPLACE(parameters, "range_1", "first_range"), "range_2", "second_range");"""))
session.commit()
session.close()
except Exception as excep:
## This update is not critical. We can run even in case of error at update
logger = get_logger(__name__)
logger.exception(excep)