Warning

This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.files.sources.anvil

try:
    from anvilfs.anvilfs import AnVILFS
except ImportError:
    AnVILFS = None
from typing import (
    Optional,
    Union,
)

from galaxy.files.models import (
    BaseFileSourceConfiguration,
    BaseFileSourceTemplateConfiguration,
    FilesSourceRuntimeContext,
)
from galaxy.util.config_templates import TemplateExpansion
from ._pyfilesystem2 import PyFilesystem2FilesSource


class AnVILFileSourceTemplateConfiguration(BaseFileSourceTemplateConfiguration):
    namespace: Union[str, TemplateExpansion]
    workspace: Union[str, TemplateExpansion]
    api_url: Union[str, TemplateExpansion, None] = None
    on_anvil: Union[bool, TemplateExpansion, None] = False
    drs_url: Union[str, TemplateExpansion, None] = None


class AnVILFileSourceConfiguration(BaseFileSourceConfiguration):
    namespace: str
    workspace: str
    api_url: Optional[str] = None
    on_anvil: Optional[bool] = False
    drs_url: Optional[str] = None


[docs] class AnVILFilesSource(PyFilesystem2FilesSource[AnVILFileSourceTemplateConfiguration, AnVILFileSourceConfiguration]): plugin_type = "anvil" required_module = AnVILFS required_package = "fs.anvilfs" template_config_class = AnVILFileSourceTemplateConfiguration resolved_config_class = AnVILFileSourceConfiguration def _open_fs(self, context: FilesSourceRuntimeContext[AnVILFileSourceConfiguration]): if AnVILFS is None: raise self.required_package_exception config = context.config handle = AnVILFS( namespace=config.namespace, workspace=config.workspace, api_url=config.api_url, on_anvil=config.on_anvil, drs_url=config.drs_url, ) return handle
__all__ = ("AnVILFilesSource",)