mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Type and bug fixes for api/extended_metadata.py.
This commit is contained in:
@@ -2,13 +2,14 @@
|
||||
API operations on annotations.
|
||||
"""
|
||||
import logging
|
||||
from typing import Generic, Optional, TypeVar
|
||||
|
||||
from galaxy import (
|
||||
managers,
|
||||
web
|
||||
model,
|
||||
web,
|
||||
)
|
||||
from galaxy.webapps.base.controller import (
|
||||
HTTPNotImplemented,
|
||||
UsesExtendedMetadataMixin,
|
||||
UsesLibraryMixinItems,
|
||||
UsesStoredWorkflowMixin
|
||||
@@ -17,10 +18,16 @@ from . import BaseGalaxyAPIController, depends
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
class BaseExtendedMetadataController(BaseGalaxyAPIController, UsesExtendedMetadataMixin, UsesLibraryMixinItems, UsesStoredWorkflowMixin):
|
||||
|
||||
@web.legacy_expose_api
|
||||
class BaseExtendedMetadataController(BaseGalaxyAPIController, UsesExtendedMetadataMixin, UsesLibraryMixinItems, UsesStoredWorkflowMixin, Generic[T]):
|
||||
exmeta_item_id: str
|
||||
|
||||
def _get_item_from_id(self, trans, idstr, check_writable=True) -> Optional[T]:
|
||||
...
|
||||
|
||||
@web.expose_api
|
||||
def index(self, trans, **kwd):
|
||||
idnum = kwd[self.exmeta_item_id]
|
||||
item = self._get_item_from_id(trans, idnum, check_writable=False)
|
||||
@@ -29,7 +36,7 @@ class BaseExtendedMetadataController(BaseGalaxyAPIController, UsesExtendedMetada
|
||||
if ex_meta is not None:
|
||||
return ex_meta.data
|
||||
|
||||
@web.legacy_expose_api
|
||||
@web.expose_api
|
||||
def create(self, trans, payload, **kwd):
|
||||
idnum = kwd[self.exmeta_item_id]
|
||||
item = self._get_item_from_id(trans, idnum, check_writable=True)
|
||||
@@ -41,26 +48,12 @@ class BaseExtendedMetadataController(BaseGalaxyAPIController, UsesExtendedMetada
|
||||
ex_obj = self.create_extended_metadata(trans, payload)
|
||||
self.set_item_extended_metadata_obj(trans, item, ex_obj)
|
||||
|
||||
@web.legacy_expose_api
|
||||
def delete(self, trans, **kwd):
|
||||
idnum = kwd[self.tagged_item_id]
|
||||
item = self._get_item_from_id(trans, idnum, check_writable=True)
|
||||
if item is not None:
|
||||
ex_obj = self.get_item_extended_metadata_obj(trans, item)
|
||||
if ex_obj is not None:
|
||||
self.unset_item_extended_metadata_obj(trans, item)
|
||||
self.delete_extended_metadata(trans, ex_obj)
|
||||
|
||||
@web.legacy_expose_api
|
||||
def undelete(self, trans, **kwd):
|
||||
raise HTTPNotImplemented()
|
||||
|
||||
|
||||
class LibraryDatasetExtendMetadataController(BaseExtendedMetadataController):
|
||||
class LibraryDatasetExtendMetadataController(BaseExtendedMetadataController[model.LibraryDatasetDatasetAssociation]):
|
||||
controller_name = "library_dataset_extended_metadata"
|
||||
exmeta_item_id = "library_content_id"
|
||||
|
||||
def _get_item_from_id(self, trans, idstr, check_writable=True):
|
||||
def _get_item_from_id(self, trans, idstr, check_writable=True) -> Optional[model.LibraryDatasetDatasetAssociation]:
|
||||
if check_writable:
|
||||
item = self.get_library_dataset_dataset_association(trans, idstr)
|
||||
if trans.app.security_agent.can_modify_library_item(trans.get_current_user_roles(), item):
|
||||
@@ -72,12 +65,12 @@ class LibraryDatasetExtendMetadataController(BaseExtendedMetadataController):
|
||||
return None
|
||||
|
||||
|
||||
class HistoryDatasetExtendMetadataController(BaseExtendedMetadataController):
|
||||
class HistoryDatasetExtendMetadataController(BaseExtendedMetadataController[model.HistoryDatasetAssociation]):
|
||||
controller_name = "history_dataset_extended_metadata"
|
||||
exmeta_item_id = "history_content_id"
|
||||
hda_manager: managers.hdas.HDAManager = depends(managers.hdas.HDAManager)
|
||||
|
||||
def _get_item_from_id(self, trans, idstr, check_writable=True):
|
||||
def _get_item_from_id(self, trans, idstr, check_writable=True) -> Optional[model.HistoryDatasetAssociation]:
|
||||
decoded_idstr = self.decode_id(idstr)
|
||||
if check_writable:
|
||||
return self.hda_manager.get_owned(decoded_idstr, trans.user, current_history=trans.history)
|
||||
|
||||
@@ -751,8 +751,6 @@ check_untyped_defs = False
|
||||
check_untyped_defs = False
|
||||
[mypy-galaxy.webapps.galaxy.api.genomes]
|
||||
check_untyped_defs = False
|
||||
[mypy-galaxy.webapps.galaxy.api.extended_metadata]
|
||||
check_untyped_defs = False
|
||||
[mypy-galaxy.webapps.galaxy.api.datasets]
|
||||
check_untyped_defs = False
|
||||
[mypy-galaxy.webapps.galaxy.api.authenticate]
|
||||
|
||||
Reference in New Issue
Block a user