Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/planemo/options.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/planemo/options.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1884 +0,0 @@ -"""Click definitions for various shared options and arguments.""" - -from __future__ import absolute_import - -import functools -import os - -import click -from galaxy.tool_util.deps import docker_util - -from .config import planemo_option - - -def force_option(what="files"): - return planemo_option( - "-f", - "--force", - is_flag=True, - help="Overwrite existing %s if present." % what, - ) - - -def skip_venv_option(): - return planemo_option( - "--skip_venv", - is_flag=True, - help=("Do not create or source a virtualenv environment for Galaxy, " - "this should be used or instance to preserve an externally " - "configured virtual environment or conda environment.") - ) - - -def run_engine_option(): - return planemo_option( - "--engine", - type=click.Choice(["galaxy", "docker_galaxy", "cwltool", "toil", "external_galaxy"]), - default=None, - use_global_config=True, - help=("Select an engine to run or test artifacts such as tools " - "and workflows. Defaults to a local Galaxy, but running Galaxy within " - "a Docker container or the CWL reference implementation 'cwltool' and " - "'toil' be selected.") - ) - - -def non_strict_cwl_option(): - return planemo_option( - "--non_strict_cwl", - default=False, - is_flag=True, - help="Disable strict validation of CWL.", - ) - - -def serve_engine_option(): - return planemo_option( - "--engine", - type=click.Choice(["galaxy", "docker_galaxy", "external_galaxy"]), - default="galaxy", - use_global_config=True, - use_env_var=True, - help=("Select an engine to serve artifacts such as tools " - "and workflows. Defaults to a local Galaxy, but running Galaxy within " - "a Docker container.") - ) - - -def ignore_dependency_problems_option(): - return planemo_option( - "--ignore_dependency_problems", - is_flag=True, - default=False, - use_global_config=True, - help=("When installing shed repositories for workflows, ignore dependency issues. " - "These likely indicate a problem but in some cases may not prevent a workflow " - "from successfully executing.") - ) - - -def cwltool_no_container_option(): - return planemo_option( - "--no-container", - "--no_container", - is_flag=True, - default=False, - use_global_config=True, - help=("If cwltool engine is used, disable Docker container usage.") - ) - - -def test_data_option(): - return planemo_option( - "--test_data", - type=click.Path(exists=True, file_okay=False, resolve_path=True), - help="test-data directory to for specified tool(s).", - ) - - -def extra_tools_option(): - return planemo_option( - "--extra_tools", - type=click.Path(exists=True, - file_okay=True, - dir_okay=True, - resolve_path=True), - multiple=True, - help=("Extra tool sources to include in Galaxy's tool panel (file or " - "directory). These will not be linted/tested/etc... but they " - "will be available to workflows and for interactive use.") - ) - - -def tool_data_table_option(): - return planemo_option( - "--tool_data_table", - type=click.Path(exists=True, file_okay=True, resolve_path=True), - help="tool_data_table_conf.xml file to for specified tool(s).", - ) - - -def galaxy_email_option(): - return planemo_option( - "--galaxy_email", - type=str, - default="planemo@galaxyproject.org", - use_global_config=True, - use_env_var=True, - help="E-mail address to use when launching single-user Galaxy server.", - ) - - -def galaxy_python_version(): - return planemo_option( - '--galaxy_python_version', - use_global_config=True, - default=None, - type=click.Choice(['2', '2.7', '3', '3.5', '3.6', '3.7', '3.8']), - help="Python version to start Galaxy under", - ) - - -def galaxy_root_option(): - return planemo_option( - "--galaxy_root", - use_global_config=True, - extra_global_config_vars=["galaxy_root"], - use_env_var=True, - type=click.Path(file_okay=False, dir_okay=True, resolve_path=True), - help="Root of development galaxy directory to execute command with.", - ) - - -def galaxy_cwl_root_option(): - return planemo_option( - "--cwl_galaxy_root", - use_global_config=True, - extra_global_config_vars=["cwl_galaxy_root"], - use_env_var=True, - type=click.Path(exists=True, file_okay=False, resolve_path=True), - help=("Root of development galaxy directory to execute command with" - " (must be branch of Galaxy with CWL support, this option" - " is experimental and will be replaced with --galaxy_root when" - " and if CWL support is merged into Galaxy."), - ) - - -def galaxy_port_option(): - return planemo_option( - "--port", - type=int, - default="9090", - use_global_config=True, - help="Port to serve Galaxy on (default is 9090).", - ) - - -def galaxy_host_option(): - return planemo_option( - "--host", - type=str, - default="127.0.0.1", - use_global_config=True, - help=("Host to bind Galaxy to. Default is 127.0.0.1 that is " - "restricted to localhost connections for security reasons " - "set to 0.0.0.0 to bind Galaxy to all ports including " - "potentially publicly accessible ones."), - ) - - -def dependency_resolvers_option(): - return planemo_option( - "--dependency_resolvers_config_file", - type=click.Path( - exists=True, - file_okay=True, - dir_okay=False, - resolve_path=True - ), - use_global_config=True, - help="Dependency resolver configuration for Galaxy to target.", - ) - - -def enable_cwl_option(): - return planemo_option( - "--cwl", - is_flag=True, - help=("Configure Galaxy for use with CWL tool." - " (this option is experimental and will be replaced when" - " and if CWL support is merged into Galaxy)."), - ) - - -def build_cwl_option(): - return planemo_option( - "--cwl", - is_flag=True, - help="Build a CWL tool instead of a Galaxy tool.", - ) - - -def run_output_directory_option(): - return planemo_option( - "output_directory", - "--output_directory", - "--outdir", - type=click.Path( - file_okay=False, - dir_okay=True, - resolve_path=True, - ), - default=None, - help=("Where to store outputs of a 'run' task."), - ) - - -def run_output_json_option(): - return planemo_option( - "output_json", - "--output_json", - type=click.Path( - file_okay=True, - dir_okay=False, - resolve_path=True, - ), - default=None, - help=("Where to store JSON dictionary describing outputs of " - "a 'run' task."), - ) - - -def no_dependency_resolution(): - return planemo_option( - "--no_dependency_resolution", - is_flag=True, - help="Configure Galaxy with no dependency resolvers.", - ) - - -def brew_dependency_resolution(): - return planemo_option( - "--brew_dependency_resolution", - is_flag=True, - help="Configure Galaxy to use plain brew dependency resolution.", - ) - - -def conda_dependency_resolution(): - return planemo_option( - "--conda_dependency_resolution", - is_flag=True, - help="Configure Galaxy to use only conda for dependency resolution.", - ) - - -def shed_dependency_resolution(): - return planemo_option( - "--shed_dependency_resolution", - is_flag=True, - help=("Configure Galaxy to use brewed Tool Shed dependency" - " resolution."), - ) - - -def file_path_option(): - return planemo_option( - "--file_path", - type=click.Path( - file_okay=False, - dir_okay=True, - resolve_path=True - ), - help="Location for files created by Galaxy (e.g. database/files).", - default=None, - use_global_config=True, - ) - - -def database_connection_option(): - return planemo_option( - "--database_connection", - type=str, - help="Database connection string to use for Galaxy.", - default=None, - use_global_config=True, - ) - - -def shed_tools_conf_option(): - return planemo_option( - "--shed_tool_conf", - type=str, - help="Location of shed tools conf file for Galaxy.", - default=None, - use_global_config=True, - ) - - -def shed_tools_directory_option(): - return planemo_option( - "--shed_tool_path", - type=str, - help="Location of shed tools directory for Galaxy.", - default=None, - use_global_config=True, - ) - - -def tool_dependency_dir_option(): - return planemo_option( - "--tool_dependency_dir", - type=click.Path( - exists=True, - file_okay=False, - dir_okay=True, - resolve_path=True - ), - default=None, - use_global_config=True, - help="Tool dependency dir for Galaxy to target.", - ) - - -def job_config_option(): - return planemo_option( - "--job_config_file", - type=click.Path( - exists=True, - file_okay=True, - dir_okay=False, - resolve_path=True - ), - help="Job configuration file for Galaxy to target.", - default=None, - use_global_config=True, - ) - - -def mulled_containers_option(): - return planemo_option( - "mulled_containers", - "--mulled_containers", - "--biocontainers", - is_flag=True, - help="Test tools against mulled containers (forces --docker).", - ) - - -def install_galaxy_option(): - return planemo_option( - "--install_galaxy", - is_flag=True, - help="Download and configure a disposable copy of Galaxy from github." - ) - - -def docker_galaxy_image_option(): - return planemo_option( - "--docker_galaxy_image", - default="quay.io/bgruening/galaxy", - use_global_config=True, - help=("Docker image identifier for docker-galaxy-flavor used if " - "engine type is specified as ``docker-galaxy``. Defaults to " - "quay.io/bgruening/galaxy.") - ) - - -def docker_extra_volume_option(): - arg_type = click.Path( - exists=True, - file_okay=True, - dir_okay=True, - readable=True, - resolve_path=True, - ) - return planemo_option( - "--docker_extra_volume", - type=arg_type, - default=None, - use_global_config=True, - help=("Extra path to mount if --engine docker.") - ) - - -def galaxy_url_option(): - return planemo_option( - "--galaxy_url", - use_global_config=True, - extra_global_config_vars=["galaxy_url"], - use_env_var=True, - type=str, - help="Remote Galaxy URL to use with external Galaxy engine.", - ) - - -def galaxy_admin_key_option(): - return planemo_option( - "--galaxy_admin_key", - use_global_config=True, - extra_global_config_vars=["admin_key"], - use_env_var=True, - type=str, - help="Admin key to use with external Galaxy engine.", - ) - - -def galaxy_user_key_option(): - return planemo_option( - "--galaxy_user_key", - use_global_config=True, - extra_global_config_vars=["admin_key"], - use_env_var=True, - type=str, - help="User key to use with external Galaxy engine.", - ) - - -def no_cache_galaxy_option(): - return planemo_option( - "--no_cache_galaxy", - is_flag=True, - help=("Skip caching of Galaxy source and dependencies obtained with " - "--install_galaxy. Not caching this results in faster " - "downloads (no git) - so is better on throw away instances such " - "with TravisCI. ") - ) - - -def galaxy_branch_option(): - return planemo_option( - "--galaxy_branch", - default=None, - use_global_config=True, - use_env_var=True, - help=("Branch of Galaxy to target (defaults to master) if a Galaxy " - "root isn't specified.") - ) - - -def galaxy_source_option(): - return planemo_option( - "--galaxy_source", - default=None, - use_global_config=True, - help=("Git source of Galaxy to target (defaults to the official " - "galaxyproject github source if a Galaxy root isn't " - "specified.") - ) - - -def skip_install_option(): - return planemo_option( - "--skip_install", - is_flag=True, - help="Skip installation - only source requirements already available." - ) - - -def brew_option(): - return planemo_option( - "--brew", - use_global_config=True, - type=click.Path(exists=True, file_okay=True, dir_okay=False), - help="Homebrew 'brew' executable to use." - ) - - -def conda_prefix_option(): - return planemo_option( - "--conda_prefix", - use_global_config=True, - use_env_var=True, - type=click.Path(file_okay=False, dir_okay=True), - help="Conda prefix to use for conda dependency commands." - ) - - -def conda_exec_option(): - return planemo_option( - "--conda_exec", - use_global_config=True, - type=click.Path(exists=True, file_okay=True, dir_okay=False), - help="Location of conda executable." - ) - - -def conda_debug_option(): - return planemo_option( - "--conda_debug", - is_flag=True, - help="Enable more verbose conda logging." - ) - - -def conda_use_local_option(): - return planemo_option( - "--conda_use_local", - is_flag=True, - help="Use locally built packages while building Conda environments." - ) - - -def conda_ensure_channels_option(): - return planemo_option( - "conda_ensure_channels", - "--conda_channels", - "--conda_ensure_channels", - type=str, - use_global_config=True, - use_env_var=True, - help=("Ensure conda is configured with specified comma separated " - "list of channels."), - default="iuc,conda-forge,bioconda,defaults", - ) - - -def conda_copy_dependencies_option(): - return planemo_option( - "--conda_copy_dependencies", - is_flag=True, - help=("Conda dependency resolution for Galaxy will copy dependencies " - "instead of attempting to link them.") - ) - - -def conda_auto_install_option(): - return planemo_option( - "--conda_auto_install/--no_conda_auto_install", - is_flag=True, - default=True, - help=("Conda dependency resolution for Galaxy will attempt to install " - "requested but missing packages.") - ) - - -def conda_auto_init_option(): - return planemo_option( - "--conda_auto_init/--no_conda_auto_init", - is_flag=True, - default=True, - help=("Conda dependency resolution for Galaxy will auto install " - "conda itself using miniconda if not availabe on conda_prefix.") - ) - - -def conda_global_option(): - return planemo_option( - "--global", - is_flag=True, - default=False, - help=("Install Conda dependencies globally instead of in requirement specific " - "environments packaged for tools. If the Conda bin directory is on your " - "PATH, tools may still use binaries but this is more designed for " - "interactive testing and debugging.") - ) - - -def required_tool_arg(allow_uris=False): - """ Decorate click method as requiring the path to a single tool. - """ - arg_type_class = click.Path if not allow_uris else UriLike - arg_type = arg_type_class( - exists=True, - file_okay=True, - dir_okay=False, - readable=True, - resolve_path=True, - ) - if allow_uris: - name = "uri" - metavar = "TOOL_URI" - else: - name = "path" - metavar = "TOOL_PATH" - return click.argument(name, metavar=metavar, type=arg_type) - - -def paste_test_data_paths_option(): - return planemo_option( - "--paste_test_data_paths/--no_paste_test_data_paths", - is_flag=True, - default=None, - help=("By default Planemo will use or not use Galaxy's path paste option to load " - "test data into a history based on the engine type it is targeting. This can " - "override the logic to explicitly enable or disable path pasting.") - ) - - -def shed_install_option(): - return planemo_option( - "--shed_install/--no_shed_install", - is_flag=True, - default=True, - help=("By default Planemo will attempt to install repositories needed for workflow " - "testing. This may not be appropriate for production servers and so this can " - "disabled by calling planemo with --no_shed_install.") - ) - - -def single_user_mode_option(): - return planemo_option( - "galaxy_single_user", - "--galaxy_single_user/--no_galaxy_single_user", - is_flag=True, - default=True, - help=("By default Planemo will configure Galaxy to run in single-user mode where there " - "is just one user and this user is automatically logged it. Use --no_galaxy_single_user " - "to prevent Galaxy from running this way.") - ) - - -def required_workflow_arg(): - arg_type = click.Path( - exists=True, - file_okay=True, - dir_okay=False, - readable=True, - resolve_path=False, - ) - return click.argument("workflow_path", metavar="WORKFLOW_PATH", type=arg_type) - - -def required_job_arg(): - """Decorate click method as requiring the path to a single tool. - """ - arg_type = click.Path( - exists=True, - file_okay=True, - dir_okay=False, - readable=True, - resolve_path=False, - ) - return click.argument("job_path", metavar="JOB_PATH", type=arg_type) - - -def _optional_tools_default(ctx, param, value): - if param.name in ["paths", "uris"] and len(value) == 0: - return [os.path.abspath(os.getcwd())] - else: - return value - - -def optional_tools_or_packages_arg(multiple=False): - """ Decorate click method as optionally taking in the path to a tool - or directory of tools or a Conda package. If no such argument is given - the current working directory will be treated as a directory of tools. - """ - name = "paths" if multiple else "path" - nargs = -1 if multiple else 1 - return click.argument( - name, - metavar="TARGET", - nargs=nargs, - ) - - -class UriLike(click.Path): - - def convert(self, value, param, ctx): - if "://" in value: - return value - else: - return super(UriLike, self).convert(value, param, ctx) - - -def optional_tools_arg(multiple=False, allow_uris=False): - """ Decorate click method as optionally taking in the path to a tool - or directory of tools. If no such argument is given the current working - directory will be treated as a directory of tools. - """ - arg_type_class = click.Path if not allow_uris else UriLike - arg_type = arg_type_class( - exists=True, - file_okay=True, - dir_okay=True, - readable=True, - resolve_path=True, - ) - if allow_uris: - name = "uris" if multiple else "uri" - else: - name = "paths" if multiple else "path" - nargs = -1 if multiple else 1 - return click.argument( - name, - metavar="TOOL_PATH", - type=arg_type, - nargs=nargs, - callback=_optional_tools_default, - ) - - -class ProjectOrRepositry(click.Path): - - def __init__(self, **kwds): - super(ProjectOrRepositry, self).__init__(**kwds) - - def convert(self, value, param, ctx): - if value and value.startswith("git:") or value.startswith("git+"): - return value - else: - return super(ProjectOrRepositry, self).convert(value, param, ctx) - - -def shed_project_arg(multiple=True): - arg_type = ProjectOrRepositry( - exists=True, - file_okay=False, - dir_okay=True, - resolve_path=True, - ) - name = "paths" if multiple else "path" - nargs = -1 if multiple else 1 - return click.argument( - name, - metavar="PROJECT", - type=arg_type, - nargs=nargs, - callback=_optional_tools_default, - ) - - -def recipe_arg(multiple=True): - name = "paths" if multiple else "path" - nargs = -1 if multiple else 1 - return click.argument( - name, - metavar="RECIPE_DIR", - type=click.Path( - exists=True, - file_okay=True, - dir_okay=True, - resolve_path=True, - ), - nargs=nargs, - callback=_optional_tools_default, - ) - - -def optional_project_arg(exists=True, default="."): - arg_type = click.Path( - exists=exists, - file_okay=False, - dir_okay=True, - writable=True, - resolve_path=True, - ) - return click.argument( - "path", - metavar="PROJECT", - default=default, - type=arg_type - ) - - -def no_cleanup_option(): - return planemo_option( - "--no_cleanup", - is_flag=True, - help=("Do not cleanup temp files created for and by Galaxy.") - ) - - -def docker_enable_option(): - return planemo_option( - "--docker/--no_docker", - default=False, - help=("Run Galaxy tools in Docker if enabled.") - ) - - -def docker_cmd_option(): - return planemo_option( - "--docker_cmd", - default=docker_util.DEFAULT_DOCKER_COMMAND, - help="Command used to launch docker (defaults to docker)." - ) - - -def docker_sudo_option(): - return planemo_option( - "--docker_sudo/--no_docker_sudo", - is_flag=True, - help="Flag to use sudo when running docker." - ) - - -def docker_sudo_cmd_option(): - return planemo_option( - "--docker_sudo_cmd", - help="sudo command to use when --docker_sudo is enabled " + - "(defaults to sudo).", - default=docker_util.DEFAULT_SUDO_COMMAND, - use_global_config=True, - ) - - -def docker_host_option(): - return planemo_option( - "--docker_host", - help="Docker host to target when executing docker commands " + - "(defaults to localhost).", - use_global_config=True, - default=docker_util.DEFAULT_HOST, - ) - - -def docker_config_options(): - return _compose( - docker_cmd_option(), - docker_sudo_option(), - docker_host_option(), - docker_sudo_cmd_option(), - ) - - -def galaxy_docker_options(): - return _compose( - docker_enable_option(), - docker_config_options(), - ) - - -def shed_owner_option(): - return planemo_option( - "--owner", - help="Tool Shed repository owner (username)." - ) - - -def shed_name_option(): - return planemo_option( - "--name", - help="Tool Shed repository name (defaults to the inferred " - "tool directory name)." - ) - - -def validate_shed_target_callback(ctx, param, value): - if value is None: - ctx.fail("default_shed_target set to None, must specify a value for " - "--shed_target to run this command.") - return value - - -def shed_target_option(): - return planemo_option( - "-t", - "--shed_target", - help="Tool Shed to target (this can be 'toolshed', 'testtoolshed', " - "'local' (alias for http://localhost:9009/), an arbitrary url " - "or mappings defined ~/.planemo.yml.", - default=None, - use_global_config=True, - callback=validate_shed_target_callback, - ) - - -def shed_key_option(): - return planemo_option( - "--shed_key", - help=("API key for Tool Shed access. An API key is required unless " - "e-mail and password is specified. This key can be specified " - "with either --shed_key or --shed_key_from_env.") - ) - - -def shed_key_from_env_option(): - return planemo_option( - "--shed_key_from_env", - help="Environment variable to read API key for Tool Shed access from." - ) - - -def shed_email_option(): - return planemo_option( - "--shed_email", - help="E-mail for Tool Shed auth (required unless shed_key is " - "specified)." - ) - - -def shed_password_option(): - return planemo_option( - "--shed_password", - help="Password for Tool Shed auth (required unless shed_key is " - "specified)." - ) - - -def shed_skip_upload(): - return planemo_option( - "--skip_upload", - is_flag=True, - help=("Skip upload contents as part of operation, only update " - "metadata.") - ) - - -def shed_skip_metadata(): - return planemo_option( - "--skip_metadata", - is_flag=True, - help=("Skip metadata update as part of operation, only upload " - "new contents.") - ) - - -def shed_message_option(): - return planemo_option( - "-m", - "--message", - help="Commit message for tool shed upload." - ) - - -def shed_force_create_option(): - return planemo_option( - "--force_repository_creation", - help=("If a repository cannot be found for the specified user/repo " - "name pair, then automatically create the repository in the " - "toolshed."), - is_flag=True, - default=False - ) - - -def shed_check_diff_option(): - return planemo_option( - "--check_diff", - is_flag=True, - help=("Skip uploading if the shed_diff detects there would be no " - "'difference' (only attributes populated by the shed would " - "be updated.)") - ) - - -def shed_upload_options(): - return _compose( - shed_message_option(), - shed_force_create_option(), - shed_check_diff_option(), - ) - - -def shed_realization_options(): - return _compose( - shed_project_arg(multiple=True), - recursive_shed_option(), - shed_fail_fast_option(), - ) - - -def shed_repo_options(): - return _compose( - shed_owner_option(), - shed_name_option(), - ) - - -def shed_publish_options(): - """ Common options for commands that require publishing to a - a shed. - """ - return _compose( - shed_realization_options(), - shed_repo_options(), - shed_target_options(), - ) - - -def shed_read_options(): - """ Common options that require read access to mapped repositories - in a shed. - """ - return _compose( - shed_realization_options(), - shed_repo_options(), - shed_target_options(), - ) - - -def shed_target_options(): - """ Common options for commands that require read-only - interactions with a shed. - """ - return _compose( - shed_email_option(), - shed_key_option(), - shed_key_from_env_option(), - shed_password_option(), - shed_target_option(), - ) - - -def conda_target_options(include_local=True): - return _compose( - conda_prefix_option(), - conda_exec_option(), - conda_debug_option(), - conda_ensure_channels_option(), - conda_use_local_option(), - ) - - -def galaxy_run_options(): - return _compose( - galaxy_target_options(), - galaxy_port_option(), - galaxy_host_option(), - ) - - -def galaxy_config_options(): - return _compose( - test_data_option(), - tool_data_table_option(), - dependency_resolvers_option(), - brew_dependency_resolution(), - shed_dependency_resolution(), - no_dependency_resolution(), - conda_target_options(), - conda_dependency_resolution(), - conda_copy_dependencies_option(), - conda_auto_install_option(), - conda_auto_init_option(), - # Profile options... - profile_option(), - profile_database_options(), - file_path_option(), - database_connection_option(), - shed_tools_conf_option(), - shed_tools_directory_option(), - single_user_mode_option(), - ) - - -def galaxy_target_options(): - return _compose( - galaxy_root_option(), - galaxy_python_version(), - extra_tools_option(), - install_galaxy_option(), - galaxy_branch_option(), - galaxy_source_option(), - skip_venv_option(), - no_cache_galaxy_option(), - no_cleanup_option(), - galaxy_email_option(), - galaxy_docker_options(), - mulled_containers_option(), - # Profile options... - job_config_option(), - tool_dependency_dir_option(), - ) - - -def pid_file_option(): - pid_file_type = click.Path( - file_okay=True, - dir_okay=False, - resolve_path=True, - ) - return planemo_option( - "--pid_file", - type=pid_file_type, - default=None, - help="Location of pid file is executed with --daemon." - ) - - -def daemon_option(): - return planemo_option( - "--daemon", - is_flag=True, - help="Serve Galaxy process as a daemon." - ) - - -def profile_option(): - return planemo_option( - "--profile", - type=str, - default=None, - help=("Name of profile (created with the profile_create command) to use " - "with this command.") - ) - - -def galaxy_serve_options(): - return _compose( - galaxy_run_options(), - serve_engine_option(), - non_strict_cwl_option(), - docker_galaxy_image_option(), - docker_extra_volume_option(), - galaxy_config_options(), - daemon_option(), - pid_file_option(), - ignore_dependency_problems_option(), - shed_install_option() - ) - - -def training_topic_name_option(): - return planemo_option( - "--topic_name", - required=True, - help="Name (directory name) of the topic to create or in which " - "a tutorial should be created or updates" - ) - - -def training_topic_option(): - return _compose( - training_topic_name_option(), - planemo_option( - "--topic_title", - default="Title of the topic", - help="Title of the topic to create"), - planemo_option( - "--topic_summary", - default="Summary of the topic", - help="Summary of the topic"), - planemo_option( - "--topic_target", - type=click.Choice(['use', 'admin-dev', 'instructors']), - default="use", - help="Target audience for the topic") - ) - - -def training_tutorial_name_option(): - return planemo_option( - "--tutorial_name", - help="Name (directory name) of the tutorial to create or to modify" - ) - - -def training_tutorial_name_req_option(): - return planemo_option( - "--tutorial_name", - required=True, - help="Name (directory name) of the tutorial to modify" - ) - - -def training_datatype_option(): - return planemo_option( - "--datatypes", - type=click.Path(file_okay=True, resolve_path=True), - help="YAML file with the correspondance between Zenodo extension and Galaxy datatypes", - default="shared/datatypes.yaml" - ) - - -def training_zenodo_option(): - return planemo_option( - "--zenodo_link", - help="Zenodo URL with the input data") - - -def training_tutorial_worflow_option(): - return _compose( - planemo_option( - "--workflow", - type=click.Path(file_okay=True, resolve_path=True), - help="Workflow of the tutorial (locally)", - default=None), - planemo_option( - "--galaxy_url", - help="URL of a Galaxy instance with the workflow"), - planemo_option( - "--galaxy_api_key", - help="API key on the Galaxy instance with the workflow"), - planemo_option( - "--workflow_id", - help="ID of the workflow on the Galaxy instance") - ) - - -def training_tutorial_option(): - return _compose( - training_tutorial_name_option(), - planemo_option( - "--tutorial_title", - default="Title of the tutorial", - help="Title of the tutorial"), - planemo_option( - "--hands_on", - is_flag=True, - default=True, - help="Add hands-on for the new tutorial"), - planemo_option( - "--slides", - is_flag=True, - default=False, - help="Add slides for the new tutorial"), - training_tutorial_worflow_option(), - training_zenodo_option() - ) - - -def training_init_options(): - return _compose( - training_topic_option(), - training_tutorial_option(), - training_datatype_option() - ) - - -def training_fill_data_library_options(): - return _compose( - training_topic_name_option(), - training_tutorial_name_req_option(), - training_zenodo_option(), - training_datatype_option() - ) - - -def training_generate_tuto_from_wf_options(): - return _compose( - training_topic_name_option(), - training_tutorial_name_req_option(), - training_tutorial_worflow_option() - ) - - -def shed_fail_fast_option(): - return planemo_option( - "--fail_fast", - is_flag=True, - default=False, - help="If multiple repositories are specified and an error occurs " - "stop immediately instead of processing remaining repositories." - ) - - -def lint_xsd_option(): - return planemo_option( - "--xsd/--no_xsd", - is_flag=True, - default=True, - help=("Include tool XSD validation in linting process.") - ) - - -def report_level_option(): - return planemo_option( - "--report_level", - type=click.Choice(["all", "warn", "error"]), - default="all", - ) - - -def report_xunit(): - return planemo_option( - "--report_xunit", - type=click.Path(file_okay=True, resolve_path=True), - help="Output an XUnit report, useful for CI testing", - default=None, - ) - - -def skip_option(): - return planemo_option( - "-s", - "--skip", - default=None, - help=("Comma-separated list of lint tests to skip (e.g. passing " - "--skip 'citations,xml_order' would skip linting of citations " - "and best-practice XML ordering.") - ) - - -def fail_level_option(): - return planemo_option( - "--fail_level", - type=click.Choice(['warn', 'error']), - default="warn" - ) - - -def recursive_shed_option(): - return recursive_option( - "Recursively perform command for nested repository directories.", - ) - - -def recursive_option(help="Recursively perform command for subdirectories."): - return planemo_option( - "-r", - "--recursive", - is_flag=True, - help=help, - ) - - -def merge_test_json(): - target_path = click.Path( - file_okay=True, - dir_okay=False, - resolve_path=True, - ) - return click.argument( - 'input_paths', - metavar="INPUT_PATHS", - type=target_path, - nargs=-1, - ) - - -def tool_test_json(var="path"): - target_path = click.Path( - file_okay=True, - dir_okay=False, - resolve_path=True, - ) - return click.argument( - var, - metavar="FILE_PATH", - type=target_path, - default="tool_test_output.json", - ) - - -def engine_options(): - return _compose( - run_engine_option(), - non_strict_cwl_option(), - cwltool_no_container_option(), - docker_galaxy_image_option(), - docker_extra_volume_option(), - ignore_dependency_problems_option(), - shed_install_option(), - galaxy_url_option(), - galaxy_admin_key_option(), - galaxy_user_key_option(), - ) - - -def test_report_options(): - return _compose( - planemo_option( - "--test_output", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - default="tool_test_output.html", - help=("Output test report (HTML - for humans) defaults to " - "tool_test_output.html."), - ), - planemo_option( - "--test_output_text", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - help=("Output test report (Basic text - for display in CI)"), - default=None, - ), - planemo_option( - "--test_output_markdown", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - help=("Output test report (Markdown style - for humans & " - "computers)"), - default=None, - ), - planemo_option( - "--test_output_xunit", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - help=("Output test report (xunit style - for CI systems"), - default=None, - ), - planemo_option( - "--test_output_junit", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - help=("Output test report (jUnit style - for CI systems"), - default=None, - ), - ) - - -def profile_name_argument(): - return click.argument( - 'profile_name', - metavar="PROFILE_NAME", - type=str, - ) - - -def database_identifier_argument(): - return click.argument( - 'identifier', - metavar="IDENTIFIER", - type=str, - ) - - -def postgres_datatype_type_option(): - return planemo_option( - "--postgres", - "database_type", - flag_value="postgres", - help=("Use postgres database type."), - ) - - -def database_type_option(): - return planemo_option( - "--database_type", - default="auto", - type=click.Choice([ - "postgres", - "postgres_docker", - "sqlite", - "auto", - ]), - use_global_config=True, - help=("Type of database to use for profile - " - "'auto', 'sqlite', 'postgres', and 'postgres_docker' are available options. " - "Use postgres to use an existing postgres server you user can " - "access without a password via the psql command. Use postgres_docker " - "to have Planemo manage a docker container running postgres. " - "Data with postgres_docker is not yet persisted past when you restart " - "the docker container launched by Planemo so be careful with this option."), - ) - - -def database_source_options(): - """Database connection options for commands that utilize a database.""" - return _compose( - planemo_option( - "--postgres_psql_path", - default="psql", - use_global_config=True, - help=("Name or or path to postgres client binary (psql)."), - ), - planemo_option( - "--postgres_database_user", - default="postgres", - use_global_config=True, - help=("Postgres username for managed development databases."), - ), - planemo_option( - "--postgres_database_host", - default=None, - use_global_config=True, - help=("Postgres host name for managed development databases."), - ), - planemo_option( - "--postgres_database_port", - default=None, - use_global_config=True, - help=("Postgres port for managed development databases."), - ), - ) - - -def profile_database_options(): - return _compose( - postgres_datatype_type_option(), - database_type_option(), - database_source_options(), - ) - - -def test_options(): - return _compose( - planemo_option( - "--update_test_data", - is_flag=True, - help="Update test-data directory with job outputs (normally" - " written to directory --job_output_files if specified.)" - ), - paste_test_data_paths_option(), - test_report_options(), - planemo_option( - "--test_output_json", - type=click.Path(file_okay=True, resolve_path=True), - use_global_config=True, - help=("Output test report (planemo json) defaults to " - "tool_test_output.json."), - default="tool_test_output.json", - ), - planemo_option( - "--job_output_files", - type=click.Path(file_okay=False, resolve_path=True), - help="Write job outputs to specified directory.", - default=None, - ), - planemo_option( - "--summary", - type=click.Choice(["none", "minimal", "compact"]), - default="minimal", - help=("Summary style printed to planemo's standard output (see " - "output reports for more complete summary). Set to 'none' " - "to disable completely.") - ) - ) - - -def _compose(*functions): - def compose2(f, g): - return lambda x: f(g(x)) - return functools.reduce(compose2, functions) - - -def dependencies_script_options(): - return _compose( - planemo_option( - "--download_cache", - type=click.Path(file_okay=False, resolve_path=True), - use_global_config=True, - help=("Directory to cache downloaded files, default is $DOWNLOAD_CACHE"), - default=None, - ), - ) - - -def filter_exclude_option(): - return planemo_option( - "--exclude", - type=click.Path(resolve_path=False), - multiple=True, - help="Paths to exclude.", - ) - - -def filter_exclude_from_option(): - return planemo_option( - "--exclude_from", - type=click.Path(exists=True, file_okay=True, dir_okay=False, resolve_path=True), - multiple=True, - help="File of paths to exclude.", - ) - - -def filter_changed_in_commit_option(): - return planemo_option( - "--changed_in_commit_range", - help="Exclude paths unchanged in git commit range.", - ) - - -def ci_chunk_count_option(): - return planemo_option( - "--chunk_count", - type=int, - help="Split output into chunks of this many item and print --chunk such group.", - default=1, - ) - - -def ci_chunk_option(): - return planemo_option( - "--chunk", - type=int, - help=("When output is split into --chunk_count groups, output the group 0-indexed" - "by this option."), - default=0, - ) - - -def ci_output_option(): - return planemo_option( - "--output", - help="File to output to, or - for standard output.", - default="-", - ) - - -def ci_find_options(): - return _compose( - filter_exclude_option(), - filter_exclude_from_option(), - filter_changed_in_commit_option(), - ci_chunk_count_option(), - ci_chunk_option(), - ci_output_option(), - ) - - -def tool_init_id_option(prompt=True): - return planemo_option( - "-i", - "--id", - type=click.STRING, - prompt=prompt, - help="Short identifier for new tool (no whitespace)", - ) - - -def tool_init_tool_option(): - return planemo_option( - "-t", - "--tool", - default=None, - type=click.Path(exists=False, - file_okay=True, - dir_okay=False, - writable=True, - resolve_path=True), - help="Output path for new tool (default is <id>.xml)", - ) - - -def tool_init_name_option(prompt=True, help="Name for new tool (user facing)"): - return planemo_option( - "-n", - "--name", - type=click.STRING, - prompt=prompt, - help=help, - ) - - -def tool_init_version_option(): - return planemo_option( - "--version", - default="0.1.0", - type=click.STRING, - help="Tool XML version.", - ) - - -def tool_init_description_option(): - return planemo_option( - "-d", - "--description", - type=click.STRING, - default=None, - prompt=False, - help="Short description for new tool (user facing)", - ) - - -def tool_init_command_option(): - return planemo_option( - "-c", - "--command", - type=click.STRING, - default=None, - prompt=False, - help=("Command potentially including cheetah variables ()" - "(e.g. 'seqtk seq -a $input > $output')"), - ) - - -def tool_init_doi_option(): - return planemo_option( - "--doi", - type=click.STRING, - default=None, - multiple=True, - prompt=False, - help=("Supply a DOI (http://www.doi.org/) easing citation of the tool " - "for Galxy users (e.g. 10.1101/014043).") - ) - - -def tool_init_test_case_option(): - return planemo_option( - "--test_case", - is_flag=True, - default=None, - prompt=False, - help=("For use with --example_commmand, generate a tool test case from " - "the supplied example."), - ) - - -def tool_init_macros_option(): - return planemo_option( - "--macros", - is_flag=True, - default=None, - prompt=False, - help="Generate a macros.xml for reuse across many tools.", - ) - - -def tool_init_cite_url_option(): - return planemo_option( - "--cite_url", - type=click.STRING, - default=None, - multiple=True, - prompt=False, - help=("Supply a URL for citation.") - ) - - -def tool_init_input_option(): - return planemo_option( - "--input", - type=click.STRING, - default=None, - prompt=False, - multiple=True, - help="An input description (e.g. input.fasta)", - ) - - -def tool_init_output_option(): - return planemo_option( - "--output", - type=click.STRING, - multiple=True, - default=None, - prompt=False, - help=("An output location (e.g. output.bam), the Galaxy datatype is " - "inferred from the extension."), - ) - - -def tool_init_help_text_option(): - return planemo_option( - "--help_text", - type=click.STRING, - default=None, - prompt=False, - help="Help text (reStructuredText)", - ) - - -def tool_init_help_from_command_option(): - return planemo_option( - "--help_from_command", - type=click.STRING, - default=None, - prompt=False, - help="Auto populate help from supplied command.", - ) - - -def tool_init_example_input_option(): - return planemo_option( - "--example_input", - type=click.STRING, - default=None, - prompt=False, - multiple=True, - help=("For use with --example_command, replace input file (e.g. 2.fastq " - "with a data input parameter)."), - ) - - -def tool_init_example_output_option(): - return planemo_option( - "--example_output", - type=click.STRING, - default=None, - prompt=False, - multiple=True, - help=("For use with --example_command, replace input file (e.g. 2.fastq " - "with a tool output)."), - ) - - -def tool_init_named_output_option(): - return planemo_option( - "--named_output", - type=click.STRING, - multiple=True, - default=None, - prompt=False, - help=("Create a named output for use with command block for example " - "specify --named_output=output1.bam and then use '-o $output1' " - "in your command block."), - ) - - -def tool_init_version_command_option(): - return planemo_option( - "--version_command", - type=click.STRING, - default=None, - prompt=False, - help="Command to print version (e.g. 'seqtk --version')", - ) - - -REQUIREMENT_HELP = "Add a tool requirement package (e.g. 'seqtk' or 'seqtk@1.68')." - - -def tool_init_requirement_option(help=REQUIREMENT_HELP): - return planemo_option( - "--requirement", - type=click.STRING, - default=None, - multiple=True, - prompt=False, - help=help, - ) - - -def tool_init_container_option(): - return planemo_option( - "--container", - type=click.STRING, - default=None, - multiple=True, - prompt=False, - help="Add a Docker image identifier for this tool." - ) - - -EXAMPLE_COMMAND_HELP = ( - "Example to command with paths to build Cheetah template from " - "(e.g. 'seqtk seq -a 2.fastq > 2.fasta'). Option cannot be used " - "with --command, should be used --example_input and " - "--example_output." -) - - -def tool_init_example_command_option(help=EXAMPLE_COMMAND_HELP): - return planemo_option( - "--example_command", - type=click.STRING, - default=None, - prompt=False, - help=help, - ) - - -def mulled_conda_option(): - return planemo_option( - "--mulled_conda_version", - type=click.STRING, - default=None, - help=("Install a specific version of Conda before running the command, by " - "default the version that comes with the continuumio miniconda3 image " - "will be used under Linux and under Mac OS X Conda will be upgraded to " - "to work around a bug in 4.2.") - ) - - -def mulled_namespace_option(): - return planemo_option( - "--mulled_namespace", - type=click.STRING, - default="biocontainers", - help=("Build a mulled image with the specified namespace - defaults to " - "biocontainers. Galaxy currently only recognizes images with the " - "namespace biocontainers.") - ) - - -def mulled_action_option(): - return planemo_option( - "--mulled_command", - type=click.STRING, - default="build-and-test", - help=("Mulled action to perform for targets - this defaults to 'build-and-test'.") - ) - - -def mulled_options(): - return _compose( - mulled_conda_option(), - mulled_namespace_option(), - mulled_action_option(), - )