Skip to content

Commit 9dc3839

Browse files
committed
Fix various mypy issues around mapped attributes
1 parent 003bbdb commit 9dc3839

File tree

6 files changed

+37
-31
lines changed

6 files changed

+37
-31
lines changed

lib/galaxy/celery/tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def set_metadata(
199199
try:
200200
if overwrite:
201201
hda_manager.overwrite_metadata(dataset_instance)
202-
dataset_instance.datatype.set_meta(dataset_instance) # type:ignore [arg-type]
202+
dataset_instance.datatype.set_meta(dataset_instance)
203203
dataset_instance.set_peek()
204204
# Reset SETTING_METADATA state so the dataset instance getter picks the dataset state
205205
dataset_instance.set_metadata_success_state()

lib/galaxy/datatypes/protocols.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@
22
Location of protocols used in datatypes
33
"""
44

5-
from typing import Any
5+
from typing import (
6+
Any,
7+
TYPE_CHECKING,
8+
)
69

710
from typing_extensions import Protocol
811

12+
if TYPE_CHECKING:
13+
from sqlalchemy.orm import Mapped
14+
915

1016
class HasClearAssociatedFiles(Protocol):
1117
def clear_associated_files(self, metadata_safe: bool = False, purge: bool = False) -> None: ...
@@ -17,7 +23,7 @@ def creating_job(self): ...
1723

1824

1925
class HasDeleted(Protocol):
20-
deleted: bool
26+
deleted: "Mapped[bool]"
2127

2228

2329
class HasExt(Protocol):
@@ -39,7 +45,7 @@ class HasHid(Protocol):
3945

4046

4147
class HasId(Protocol):
42-
id: int
48+
id: "Mapped[int]"
4349

4450

4551
class HasInfo(Protocol):

lib/galaxy/managers/hdas.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ def get_discarded_summary(self, user: model.User) -> CleanableItemsSummary:
371371
.where(
372372
and_(
373373
HistoryDatasetAssociation.deleted == true(),
374-
HistoryDatasetAssociation.purged == false(), # type:ignore[arg-type]
374+
HistoryDatasetAssociation.purged == false(),
375375
model.History.user_id == user.id,
376376
)
377377
)
@@ -401,7 +401,7 @@ def get_discarded(
401401
.where(
402402
and_(
403403
HistoryDatasetAssociation.deleted == true(),
404-
HistoryDatasetAssociation.purged == false(), # type:ignore[arg-type]
404+
HistoryDatasetAssociation.purged == false(),
405405
model.History.user_id == user.id,
406406
)
407407
)

lib/galaxy/managers/jobs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -623,14 +623,14 @@ def _build_stmt_for_hda(self, stmt: S, data_conditions, used_ids, k, v, identifi
623623
c = aliased(model.HistoryDatasetAssociation)
624624
d = aliased(model.JobParameter)
625625
e = aliased(model.HistoryDatasetAssociationHistory)
626-
stmt = stmt.add_columns(a.dataset_id)
626+
stmt = cast(S, stmt.add_columns(a.dataset_id))
627627
used_ids.append(a.dataset_id)
628628
stmt = stmt.join(a, a.job_id == model.Job.id)
629629
hda_stmt = select(model.HistoryDatasetAssociation.id).where(
630630
model.HistoryDatasetAssociation.id == e.history_dataset_association_id
631631
)
632632
# b is the HDA used for the job
633-
stmt = stmt.join(b, a.dataset_id == b.id) # type:ignore[attr-defined]
633+
stmt = stmt.join(b, a.dataset_id == b.id)
634634
stmt = has_same_source(stmt, b, c)
635635
name_condition = []
636636
if identifier:
@@ -729,7 +729,7 @@ def _build_stmt_for_dce(self, stmt, data_conditions, used_ids, k, v):
729729
),
730730
)
731731
.outerjoin(d, d.id == c.hda_id)
732-
.outerjoin(e, e.dataset_id == d.dataset_id) # type:ignore[attr-defined]
732+
.outerjoin(e, e.dataset_id == d.dataset_id)
733733
)
734734
data_conditions.append(
735735
and_(
@@ -739,7 +739,7 @@ def _build_stmt_for_dce(self, stmt, data_conditions, used_ids, k, v):
739739
and_(
740740
c.hda_id == b.hda_id,
741741
d.id == c.hda_id,
742-
e.dataset_id == d.dataset_id, # type:ignore[attr-defined]
742+
e.dataset_id == d.dataset_id,
743743
),
744744
),
745745
c.id == v,

lib/galaxy/model/__init__.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3152,8 +3152,8 @@ class History(Base, HasTags, Dictifiable, UsesAnnotations, HasName, Serializable
31523152
active_datasets: Mapped[List["HistoryDatasetAssociation"]] = relationship(
31533153
primaryjoin=(
31543154
lambda: and_(
3155-
HistoryDatasetAssociation.history_id == History.id, # type: ignore[arg-type]
3156-
not_(HistoryDatasetAssociation.deleted), # type: ignore[has-type]
3155+
HistoryDatasetAssociation.history_id == History.id,
3156+
not_(HistoryDatasetAssociation.deleted),
31573157
)
31583158
),
31593159
order_by=lambda: asc(HistoryDatasetAssociation.hid), # type: ignore[has-type]
@@ -3165,7 +3165,7 @@ class History(Base, HasTags, Dictifiable, UsesAnnotations, HasName, Serializable
31653165
lambda: (
31663166
and_(
31673167
HistoryDatasetCollectionAssociation.history_id == History.id,
3168-
not_(HistoryDatasetCollectionAssociation.deleted), # type: ignore[arg-type]
3168+
not_(HistoryDatasetCollectionAssociation.deleted),
31693169
)
31703170
)
31713171
),
@@ -3175,8 +3175,8 @@ class History(Base, HasTags, Dictifiable, UsesAnnotations, HasName, Serializable
31753175
visible_datasets: Mapped[List["HistoryDatasetAssociation"]] = relationship(
31763176
primaryjoin=(
31773177
lambda: and_(
3178-
HistoryDatasetAssociation.history_id == History.id, # type: ignore[arg-type]
3179-
not_(HistoryDatasetAssociation.deleted), # type: ignore[has-type]
3178+
HistoryDatasetAssociation.history_id == History.id,
3179+
not_(HistoryDatasetAssociation.deleted),
31803180
HistoryDatasetAssociation.visible, # type: ignore[has-type]
31813181
)
31823182
),
@@ -3187,7 +3187,7 @@ class History(Base, HasTags, Dictifiable, UsesAnnotations, HasName, Serializable
31873187
primaryjoin=(
31883188
lambda: and_(
31893189
HistoryDatasetCollectionAssociation.history_id == History.id,
3190-
not_(HistoryDatasetCollectionAssociation.deleted), # type: ignore[arg-type]
3190+
not_(HistoryDatasetCollectionAssociation.deleted),
31913191
HistoryDatasetCollectionAssociation.visible, # type: ignore[arg-type]
31923192
)
31933193
),
@@ -4110,27 +4110,27 @@ class Dataset(Base, StorableObject, Serializable):
41104110
active_history_associations: Mapped[List["HistoryDatasetAssociation"]] = relationship(
41114111
primaryjoin=(
41124112
lambda: and_(
4113-
Dataset.id == HistoryDatasetAssociation.dataset_id, # type: ignore[attr-defined]
4114-
HistoryDatasetAssociation.deleted == false(), # type: ignore[has-type]
4115-
HistoryDatasetAssociation.purged == false(), # type: ignore[arg-type]
4113+
Dataset.id == HistoryDatasetAssociation.dataset_id,
4114+
HistoryDatasetAssociation.deleted == false(),
4115+
HistoryDatasetAssociation.purged == false(),
41164116
)
41174117
),
41184118
viewonly=True,
41194119
)
41204120
purged_history_associations: Mapped[List["HistoryDatasetAssociation"]] = relationship(
41214121
primaryjoin=(
41224122
lambda: and_(
4123-
Dataset.id == HistoryDatasetAssociation.dataset_id, # type: ignore[attr-defined]
4124-
HistoryDatasetAssociation.purged == true(), # type: ignore[arg-type]
4123+
Dataset.id == HistoryDatasetAssociation.dataset_id,
4124+
HistoryDatasetAssociation.purged == true(),
41254125
)
41264126
),
41274127
viewonly=True,
41284128
)
41294129
active_library_associations: Mapped[List["LibraryDatasetDatasetAssociation"]] = relationship(
41304130
primaryjoin=(
41314131
lambda: and_(
4132-
Dataset.id == LibraryDatasetDatasetAssociation.dataset_id, # type: ignore[attr-defined]
4133-
LibraryDatasetDatasetAssociation.deleted == false(), # type: ignore[has-type]
4132+
Dataset.id == LibraryDatasetDatasetAssociation.dataset_id,
4133+
LibraryDatasetDatasetAssociation.deleted == false(),
41344134
)
41354135
),
41364136
viewonly=True,
@@ -4596,11 +4596,13 @@ def datatype_for_extension(extension, datatypes_registry=None) -> "Data":
45964596
class DatasetInstance(RepresentById, UsesCreateAndUpdateTime, _HasTable):
45974597
"""A base class for all 'dataset instances', HDAs, LDDAs, etc"""
45984598

4599+
purged: Mapped[Optional[bool]]
4600+
deleted: Mapped[bool]
4601+
dataset_id: Mapped[Optional[int]]
4602+
_state: Mapped[Optional[str]]
45994603
states = Dataset.states
4600-
_state: Optional[str]
46014604
conversion_messages = Dataset.conversion_messages
46024605
permitted_actions = Dataset.permitted_actions
4603-
purged: bool
46044606
creating_job_associations: List[Union[JobToOutputDatasetCollectionAssociation, JobToOutputDatasetAssociation]]
46054607
copied_from_history_dataset_association: Optional["HistoryDatasetAssociation"]
46064608
copied_from_library_dataset_dataset_association: Optional["LibraryDatasetDatasetAssociation"]
@@ -5055,9 +5057,7 @@ def find_conversion_destination(
50555057
self, accepted_formats: List[str], **kwd
50565058
) -> Tuple[bool, Optional[str], Optional["DatasetInstance"]]:
50575059
"""Returns ( target_ext, existing converted dataset )"""
5058-
return self.datatype.find_conversion_destination(
5059-
self, accepted_formats, _get_datatypes_registry(), **kwd # type:ignore[arg-type]
5060-
)
5060+
return self.datatype.find_conversion_destination(self, accepted_formats, _get_datatypes_registry(), **kwd)
50615061

50625062
def add_validation_error(self, validation_error):
50635063
self.validation_errors.append(validation_error)
@@ -5260,7 +5260,7 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot
52605260
Resource class that creates a relation between a dataset and a user history.
52615261
"""
52625262

5263-
history_id: Optional[int]
5263+
history_id: Mapped[Optional[int]]
52645264

52655265
def __init__(
52665266
self,
@@ -6947,7 +6947,7 @@ class HistoryDatasetCollectionAssociation(
69476947
name: Mapped[Optional[str]] = mapped_column(TrimmedString(255))
69486948
hid: Mapped[Optional[int]]
69496949
visible: Mapped[Optional[bool]]
6950-
deleted: Mapped[Optional[bool]] = mapped_column(default=False)
6950+
deleted: Mapped[bool] = mapped_column(default=False)
69516951
copied_from_history_dataset_collection_association_id: Mapped[Optional[int]] = mapped_column(
69526952
ForeignKey("history_dataset_collection_association.id")
69536953
)

lib/galaxy/model/store/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ def handle_dataset_object_edit(dataset_instance, dataset_attrs):
718718
# Try to set metadata directly. @mvdbeek thinks we should only record the datasets
719719
try:
720720
if dataset_instance.has_metadata_files:
721-
dataset_instance.datatype.set_meta(dataset_instance) # type:ignore[arg-type]
721+
dataset_instance.datatype.set_meta(dataset_instance)
722722
except Exception:
723723
log.debug(f"Metadata setting failed on {dataset_instance}", exc_info=True)
724724
dataset_instance.state = dataset_instance.dataset.states.FAILED_METADATA

0 commit comments

Comments
 (0)