Loading lib/galaxy/managers/model_stores.py +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ class ModelStoreManager: self._app, galaxy_user, import_options, model_store_format=request.model_store_format, ) new_history = history is None and not request.for_library if new_history: Loading lib/galaxy/model/store/__init__.py +4 −4 Original line number Diff line number Diff line Loading @@ -2241,7 +2241,7 @@ def source_to_import_store( app: StoreAppProtocol, galaxy_user: Optional[model.User], import_options: Optional[ImportOptions], model_store_format: Optional[str] = None, model_store_format: Optional[ModelStoreFormat] = None, ) -> ModelImportStore: if isinstance(source, dict): if model_store_format is not None: Loading Loading @@ -2279,8 +2279,8 @@ def source_to_import_store( target_path, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler ) else: model_store_format = model_store_format or "tgz" if model_store_format in ["tar.gz", "tgz", "tar"]: model_store_format = model_store_format or ModelStoreFormat.TGZ if ModelStoreFormat.is_compressed(model_store_format): try: temp_dir = mkdtemp() target_dir = CompressedFile(target_path).extract(temp_dir) Loading @@ -2290,7 +2290,7 @@ def source_to_import_store( model_import_store = get_import_model_store_for_directory( target_dir, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler ) elif model_store_format in ["bag.gz", "bag.tar", "bag.zip"]: elif ModelStoreFormat.is_bag(model_store_format): model_import_store = BagArchiveImportModelStore( target_path, import_options=import_options, app=app, user=galaxy_user ) Loading lib/galaxy/schema/schema.py +8 −0 Original line number Diff line number Diff line Loading @@ -1291,6 +1291,14 @@ class ModelStoreFormat(str, Enum): BAG_DOT_TAR = "bag.tar" BAG_DOT_TGZ = "bag.tgz" @classmethod def is_compressed(cls, value: "ModelStoreFormat"): return value in [cls.TAR_DOT_GZ, cls.TGZ, cls.TAR, cls.ROCRATE_ZIP] @classmethod def is_bag(cls, value: "ModelStoreFormat"): return value in [cls.BAG_DOT_TAR, cls.BAG_DOT_TGZ, cls.BAG_DOT_ZIP] class StoreContentSource(Model): store_content_uri: Optional[str] Loading lib/galaxy/schema/tasks.py +2 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ from pydantic import ( from .schema import ( DatasetSourceType, HistoryContentType, ModelStoreFormat, StoreExportPayload, WriteStoreToPayload, ) Loading Loading @@ -82,6 +83,7 @@ class ImportModelStoreTaskRequest(BaseModel): history_id: Optional[int] source_uri: str for_library: bool model_store_format: Optional[ModelStoreFormat] class MaterializeDatasetInstanceTaskRequest(BaseModel): Loading lib/galaxy/webapps/galaxy/services/histories.py +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ class HistoriesService(ServiceBase, ConsumesModelStores, ServesExportStores): user=trans.async_request_user, source_uri=source_uri, for_library=False, model_store_format=payload.model_store_format, ) result = import_model_store.delay(request=request) return async_task_summary(result) Loading Loading
lib/galaxy/managers/model_stores.py +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ class ModelStoreManager: self._app, galaxy_user, import_options, model_store_format=request.model_store_format, ) new_history = history is None and not request.for_library if new_history: Loading
lib/galaxy/model/store/__init__.py +4 −4 Original line number Diff line number Diff line Loading @@ -2241,7 +2241,7 @@ def source_to_import_store( app: StoreAppProtocol, galaxy_user: Optional[model.User], import_options: Optional[ImportOptions], model_store_format: Optional[str] = None, model_store_format: Optional[ModelStoreFormat] = None, ) -> ModelImportStore: if isinstance(source, dict): if model_store_format is not None: Loading Loading @@ -2279,8 +2279,8 @@ def source_to_import_store( target_path, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler ) else: model_store_format = model_store_format or "tgz" if model_store_format in ["tar.gz", "tgz", "tar"]: model_store_format = model_store_format or ModelStoreFormat.TGZ if ModelStoreFormat.is_compressed(model_store_format): try: temp_dir = mkdtemp() target_dir = CompressedFile(target_path).extract(temp_dir) Loading @@ -2290,7 +2290,7 @@ def source_to_import_store( model_import_store = get_import_model_store_for_directory( target_dir, import_options=import_options, app=app, user=galaxy_user, tag_handler=tag_handler ) elif model_store_format in ["bag.gz", "bag.tar", "bag.zip"]: elif ModelStoreFormat.is_bag(model_store_format): model_import_store = BagArchiveImportModelStore( target_path, import_options=import_options, app=app, user=galaxy_user ) Loading
lib/galaxy/schema/schema.py +8 −0 Original line number Diff line number Diff line Loading @@ -1291,6 +1291,14 @@ class ModelStoreFormat(str, Enum): BAG_DOT_TAR = "bag.tar" BAG_DOT_TGZ = "bag.tgz" @classmethod def is_compressed(cls, value: "ModelStoreFormat"): return value in [cls.TAR_DOT_GZ, cls.TGZ, cls.TAR, cls.ROCRATE_ZIP] @classmethod def is_bag(cls, value: "ModelStoreFormat"): return value in [cls.BAG_DOT_TAR, cls.BAG_DOT_TGZ, cls.BAG_DOT_ZIP] class StoreContentSource(Model): store_content_uri: Optional[str] Loading
lib/galaxy/schema/tasks.py +2 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ from pydantic import ( from .schema import ( DatasetSourceType, HistoryContentType, ModelStoreFormat, StoreExportPayload, WriteStoreToPayload, ) Loading Loading @@ -82,6 +83,7 @@ class ImportModelStoreTaskRequest(BaseModel): history_id: Optional[int] source_uri: str for_library: bool model_store_format: Optional[ModelStoreFormat] class MaterializeDatasetInstanceTaskRequest(BaseModel): Loading
lib/galaxy/webapps/galaxy/services/histories.py +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ class HistoriesService(ServiceBase, ConsumesModelStores, ServesExportStores): user=trans.async_request_user, source_uri=source_uri, for_library=False, model_store_format=payload.model_store_format, ) result = import_model_store.delay(request=request) return async_task_summary(result) Loading