mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-25 00:12:08 +08:00
Migrate Query.get() calls to Session.get()
Query.get() is a legacy SQLAlchemy 1.x construct that emits LegacyAPIWarning on every invocation. Session.get() is the 2.0 replacement. Also guard against None primary keys in tools/parameters/basic.py where the value can legitimately be absent (previously triggered 'SAWarning: fully NULL primary key identity cannot load any object').
This commit is contained in:
@@ -157,7 +157,7 @@ class JobIO(UsesDictVisibleKeys):
|
||||
# Drop in 24.0
|
||||
io_dict.pop("model_class", None)
|
||||
job_id = io_dict.pop("job_id")
|
||||
job = sa_session.query(Job).get(job_id)
|
||||
job = sa_session.get(Job, job_id)
|
||||
return cls(sa_session=sa_session, job=job, **io_dict)
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -230,7 +230,7 @@ class HistoryContentsManager(base.SortableManager):
|
||||
decoded_target_ids.extend(self.app.security.decode_id(h) for h in payload.target_history_ids)
|
||||
|
||||
target_histories = [
|
||||
h for h in map(trans.sa_session.query(model.History).get, decoded_target_ids) if h and h.user == user
|
||||
h for h in (trans.sa_session.get(model.History, i) for i in decoded_target_ids) if h and h.user == user
|
||||
]
|
||||
if len(target_histories) != len(decoded_target_ids):
|
||||
raise glx_exceptions.MessageException("You lack permission for one or more destination histories.")
|
||||
@@ -244,8 +244,8 @@ class HistoryContentsManager(base.SortableManager):
|
||||
else:
|
||||
raise glx_exceptions.MessageException("Unknown content type.")
|
||||
|
||||
contents = list(map(trans.sa_session.query(model.HistoryDatasetAssociation).get, decoded_ds))
|
||||
contents.extend(map(trans.sa_session.query(model.HistoryDatasetCollectionAssociation).get, decoded_dc))
|
||||
contents = [trans.sa_session.get(model.HistoryDatasetAssociation, i) for i in decoded_ds]
|
||||
contents.extend(trans.sa_session.get(model.HistoryDatasetCollectionAssociation, i) for i in decoded_dc)
|
||||
contents.sort(key=lambda c: c.hid)
|
||||
|
||||
for c in contents:
|
||||
|
||||
@@ -319,7 +319,7 @@ class InstallRepositoryManager:
|
||||
tsr_ids = [r.id for r in created_or_updated_tool_shed_repositories]
|
||||
tool_shed_repositories = []
|
||||
for tsr_id in tsr_ids:
|
||||
tsr = self.install_model.context.query(self.install_model.ToolShedRepository).get(tsr_id)
|
||||
tsr = self.install_model.context.get(self.install_model.ToolShedRepository, tsr_id)
|
||||
tool_shed_repositories.append(tsr)
|
||||
clause_list = []
|
||||
for tsr_id in tsr_ids:
|
||||
@@ -492,8 +492,8 @@ class InstallRepositoryManager:
|
||||
tsr_ids, repo_info_dicts, tool_panel_section_keys=tool_panel_section_keys
|
||||
)
|
||||
for tsr_id in ordered_tsr_ids:
|
||||
repository = self.install_model.context.query(self.install_model.ToolShedRepository).get(
|
||||
self.app.security.decode_id(tsr_id)
|
||||
repository = self.install_model.context.get(
|
||||
self.install_model.ToolShedRepository, self.app.security.decode_id(tsr_id)
|
||||
)
|
||||
if repository.status in [
|
||||
self.install_model.ToolShedRepository.installation_status.NEW,
|
||||
|
||||
@@ -947,7 +947,7 @@ class JobContext(BaseJobContext):
|
||||
return library_folder
|
||||
|
||||
def get_hdca(self, object_id):
|
||||
hdca = self.sa_session.query(HistoryDatasetCollectionAssociation).get(int(object_id))
|
||||
hdca = self.sa_session.get(HistoryDatasetCollectionAssociation, int(object_id))
|
||||
return hdca
|
||||
|
||||
def create_library_folder(self, parent_folder: "LibraryFolder", name: str, description: str):
|
||||
|
||||
@@ -2201,7 +2201,10 @@ class DataToolParameter(BaseDataToolParameter):
|
||||
# support that for integer column types.
|
||||
log.warning("Encoded ID where unencoded ID expected.")
|
||||
single_value = trans.security.decode_id(single_value)
|
||||
rval.append(trans.sa_session.query(HistoryDatasetAssociation).get(single_value))
|
||||
if single_value is None:
|
||||
rval.append(None)
|
||||
else:
|
||||
rval.append(trans.sa_session.get(HistoryDatasetAssociation, single_value))
|
||||
if len(found_srcs) > 1 and "hdca" in found_srcs:
|
||||
raise ParameterValueError(
|
||||
"if collections are supplied to multiple data input parameter, only collections may be used",
|
||||
|
||||
@@ -416,7 +416,7 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE
|
||||
def _get_dataset_for_edit(self, trans, dataset_id):
|
||||
if dataset_id is not None:
|
||||
id = self.decode_id(dataset_id)
|
||||
data = trans.sa_session.query(HistoryDatasetAssociation).get(id)
|
||||
data = trans.sa_session.get(HistoryDatasetAssociation, id)
|
||||
else:
|
||||
trans.log_event("dataset_id is None, cannot load a dataset to edit.")
|
||||
return None, self.message_exception(trans, "You must provide a dataset id to edit attributes.")
|
||||
|
||||
@@ -59,7 +59,6 @@ from tool_shed.util.metadata_util import (
|
||||
from tool_shed.webapp import model
|
||||
from tool_shed.webapp.model.db import (
|
||||
get_repository_by_name_and_owner,
|
||||
get_repository_query,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -262,10 +261,8 @@ def generate_sharable_link_for_repository_in_tool_shed(
|
||||
|
||||
def get_repository_in_tool_shed(app: "ToolShedApp", id, eagerload_columns=None):
|
||||
"""Get a repository on the tool shed side from the database via id."""
|
||||
q = get_repository_query(app.model.context)
|
||||
if eagerload_columns:
|
||||
q = q.options(joinedload(*eagerload_columns))
|
||||
return q.get(app.security.decode_id(id))
|
||||
options = [joinedload(col) for col in eagerload_columns] if eagerload_columns else []
|
||||
return app.model.context.get(model.Repository, app.security.decode_id(id), options=options)
|
||||
|
||||
|
||||
def get_repo_info_dict(trans: "ProvidesRepositoriesContext", repository_id, changeset_revision):
|
||||
|
||||
Reference in New Issue
Block a user