Source code for galaxy.schema.tasks

from typing import (
    List,
    Optional,
)
from uuid import UUID

from pydantic import (
    BaseModel,
    Field,
)

from galaxy.util.hash_util import HashFunctionNameEnum
from . import PdfDocumentType
from .schema import (
    BcoGenerationParametersMixin,
    DatasetSourceType,
    HistoryContentType,
    ModelStoreFormat,
    ShortTermStoreExportPayload,
    WriteStoreToPayload,
)


[docs]class SetupHistoryExportJob(BaseModel): history_id: int job_id: int store_directory: str include_files: bool include_hidden: bool include_deleted: bool
[docs]class PrepareDatasetCollectionDownload(BaseModel): short_term_storage_request_id: UUID history_dataset_collection_association_id: int
[docs]class GeneratePdfDownload(BaseModel): short_term_storage_request_id: UUID # basic markdown - Galaxy directives need to be processed before handing off to this task basic_markdown: str document_type: PdfDocumentType
# serialize user info for tasks
[docs]class RequestUser(BaseModel): user_id: int
# TODO: allow make the above optional and allow a session_id for anonymous users... # session_id: Optional[str]
[docs]class GenerateHistoryDownload(ShortTermStoreExportPayload): history_id: int user: RequestUser export_association_id: Optional[int]
[docs]class GenerateHistoryContentDownload(ShortTermStoreExportPayload): content_type: HistoryContentType content_id: int user: RequestUser
[docs]class BcoGenerationTaskParametersMixin(BcoGenerationParametersMixin): galaxy_url: str
[docs]class GenerateInvocationDownload(ShortTermStoreExportPayload, BcoGenerationTaskParametersMixin): invocation_id: int user: RequestUser
[docs]class WriteInvocationTo(WriteStoreToPayload, BcoGenerationTaskParametersMixin): invocation_id: int user: RequestUser
[docs]class WriteHistoryContentTo(WriteStoreToPayload): content_type: HistoryContentType content_id: int user: RequestUser
[docs]class WriteHistoryTo(WriteStoreToPayload): history_id: int user: RequestUser export_association_id: Optional[int]
[docs]class ImportModelStoreTaskRequest(BaseModel): user: RequestUser history_id: Optional[int] source_uri: str for_library: bool model_store_format: Optional[ModelStoreFormat]
[docs]class MaterializeDatasetInstanceTaskRequest(BaseModel): history_id: int user: RequestUser source: DatasetSourceType = Field( title="Source", description="The source of the content. Can be other history element to be copied or library elements.", ) content: int = Field( title="Content", description=( "Depending on the `source` it can be:\n" "- The encoded id of the source library dataset\n" "- The encoded id of the HDA\n" ), )
[docs]class ComputeDatasetHashTaskRequest(BaseModel): dataset_id: int extra_files_path: Optional[str] hash_function: HashFunctionNameEnum user: Optional[RequestUser] # access checks should be done pre-celery so this is optional
[docs]class PurgeDatasetsTaskRequest(BaseModel): dataset_ids: List[int]