diff --git a/ABOUT.rst b/ABOUT.rst index 0b925d0d5..f32bd7431 100644 --- a/ABOUT.rst +++ b/ABOUT.rst @@ -4,7 +4,7 @@ interacting with `Galaxy`_ and `CloudMan`_ APIs. BioBlend is supported and tested on: - Python 3.7, 3.8, 3.9 and 3.10 -- Galaxy release_17.09 and later. +- Galaxy release 17.09 and later. BioBlend's goal is to make it easier to script and automate the running of Galaxy analyses, administering of a Galaxy server, and cloud infrastructure diff --git a/CHANGELOG.md b/CHANGELOG.md index de6c9daad..8e5c10423 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,63 @@ -### BioBlend v - unreleased +### BioBlend v0.17.0 - 2022-05-09 * Dropped support for Python 3.6. Added support for Python 3.10. Added support for Galaxy release 21.09 and 22.01. +* Removed deprecated ``run_workflow()`` method of ``WorkflowClient``. + +* Using the deprecated ``history_id`` parameter of the + ``HistoryClient.get_histories()`` method now raises a ``ValueError`` + exception. + +* Made ``tool_inputs_update`` parameter of ``JobsClient.rerun_job()`` more + flexible. + +* Added ``whoami()`` method to ``ConfigClient`` (thanks to + [cat-bro](https://github.com/cat-bro)). + * Added ``get_extra_files()`` method to ``HistoryClient``. +* Added ``build()`` and ``reload()`` methods to ``ToolClient`` (thanks to + [Jayadev Joshi](https://github.com/jaidevjoshi83) and + [cat-bro](https://github.com/cat-bro) respectively). + +* Added ``get_repositories()`` method to ``ToolShedCategoryClient`` (thanks to + [cat-bro](https://github.com/cat-bro)). + +* Added ``update_repository_metadata()`` method to ``ToolShedRepositoryClient``. + +* Added ``order_by`` parameter to ``JobsClient.get_jobs()`` method. + +* BioBlend.objects: Removed deprecated ``run()`` method of ``Workflow``. + * BioBlend.objects: Fail if multiple libraries/histories/workflows match when deleting by name, instead of deleting them all. -* Improvements to type annotations, tests and documentation +* BioBlend.objects: in ``HistoryDatasetAssociation.get_stream()``, wait for + the dataset to be ready. + +* BioBlend.objects: in ``Workflow.invoke()``, check that the workflow is mapped + and runnable before invoking, allow the ``inputs`` parameter to be an instance + of a ``Dataset`` subclass, and allow the ``history`` parameter to be the name + of a new history. + +* BioBlend.objects: Added new ``datasets`` and ``dataset_collections`` + attributes to ``GalaxyInstance`` objects, which are instances of the new + ``ObjDatasetClient`` and ``ObjDatasetCollectionClient`` respectively. + +* BioBlend.objects: Added ``refresh()``, ``get_outputs()`` and + ``get_output_collections()`` methods to ``InvocationStep``. + +* Fixed [error](https://github.com/galaxyproject/bioblend/issues/398) when + instantiating ``GalaxyInstance`` with ``email`` and ``password`` (reported by + [Peter Briggs](https://github.com/pjbriggs)). + +* Fixed parameter validation errors for POST requests with attached files on + upcoming Galaxy 22.05. + +* Code cleanups (thanks to [Martmists](https://github.com/Martmists-GH)). + +* Improvements to type annotations, tests and documentation. ### BioBlend v0.16.0 - 2021-06-13 @@ -280,7 +329,7 @@ * BioBlend.objects: added ``update()`` method to ``LibraryDataset`` (thanks to [Anthony Bretaudeau](https://github.com/abretaud)). -* Run tests with pytest instead of nose +* Run tests with pytest instead of nose. ### BioBlend v0.11.0 - 2018-04-18 @@ -413,7 +462,7 @@ * Added ``install_resolver_dependencies`` parameter to ``ToolShedClient.install_repository_revision()``, applicable for Galaxy - release_16.07 and later (thanks to + release 16.07 and later (thanks to [Marius van den Beek](https://github.com/mvdbeek)). * Improve ``DatasetClient.download_dataset()`` by downloading the dataset in @@ -529,7 +578,7 @@ * Project source moved to new URL - https://github.com/galaxyproject/bioblend * Huge improvements to automated testing, tests now run against Galaxy - release_14.02 and all later versions to ensure backward compatibility + release 14.02 and all later versions to ensure backward compatibility (see `.travis.yml` for details). * Many documentation improvements (thanks to @@ -553,7 +602,7 @@ deployments. * Made ``LibraryClient._get_root_folder_id()`` method safer and faster for - Galaxy release_13.06 and later. + Galaxy release 13.06 and later. * Deprecate and ignore invalid ``deleted`` parameter to ``WorkflowClient.get_workflows()``. diff --git a/README.rst b/README.rst index fd76fbc3a..1ac04f36d 100644 --- a/README.rst +++ b/README.rst @@ -17,7 +17,7 @@ APIs. BioBlend is supported and tested on: - Python 3.7, 3.8, 3.9 and 3.10 -- Galaxy release_17.09 and later. +- Galaxy release 17.09 and later. Full docs are available at https://bioblend.readthedocs.io/ with a quick library overview also available in `ABOUT.rst <./ABOUT.rst>`_. diff --git a/bioblend/__init__.py b/bioblend/__init__.py index 0b16efdf6..cf6147807 100644 --- a/bioblend/__init__.py +++ b/bioblend/__init__.py @@ -8,7 +8,7 @@ ) # Current version of the library -__version__ = '0.16.0' +__version__ = '0.17.0' # default chunk size (in bytes) for reading remote data try: diff --git a/bioblend/galaxy/config/__init__.py b/bioblend/galaxy/config/__init__.py index 6c8a91bc4..92dde44c0 100644 --- a/bioblend/galaxy/config/__init__.py +++ b/bioblend/galaxy/config/__init__.py @@ -56,6 +56,7 @@ def whoami(self): :rtype: dict :return: Information about current authenticated user For example:: + {'active': True, 'deleted': False, 'email': 'user@example.org', diff --git a/bioblend/galaxy/dataset_collections/__init__.py b/bioblend/galaxy/dataset_collections/__init__.py index 28535b6ae..5909ae2e3 100644 --- a/bioblend/galaxy/dataset_collections/__init__.py +++ b/bioblend/galaxy/dataset_collections/__init__.py @@ -128,7 +128,7 @@ def download_dataset_collection(self, dataset_collection_id: str, file_path: str .. note:: This method downloads a ``zip`` archive for Galaxy 21.01 and later. For earlier versions of Galaxy this method downloads a ``tgz`` archive. - This method is only supported by Galaxy 18.01 or later. + This method works only on Galaxy 18.01 or later. """ url = self._make_url(module_id=dataset_collection_id) + '/download' r = self.gi.make_get_request(url, stream=True) diff --git a/bioblend/galaxy/datasets/__init__.py b/bioblend/galaxy/datasets/__init__.py index b40cd9fae..82480fbfb 100644 --- a/bioblend/galaxy/datasets/__init__.py +++ b/bioblend/galaxy/datasets/__init__.py @@ -320,7 +320,7 @@ def publish_dataset(self, dataset_id: str, published: bool = False): :return: Current roles for all available permission types. .. note:: - This method can only be used with Galaxy ``release_19.05`` or later. + This method works only on Galaxy 19.05 or later. """ payload: Dict[str, Any] = { 'action': 'remove_restrictions' if published else 'make_private' @@ -349,7 +349,7 @@ def update_permissions(self, dataset_id: str, access_ids: Optional[list] = None, :return: Current roles for all available permission types. .. note:: - This method can only be used with Galaxy ``release_19.05`` or later. + This method works only on Galaxy 19.05 or later. """ payload: Dict[str, Any] = { 'action': 'set_permissions' diff --git a/bioblend/galaxy/histories/__init__.py b/bioblend/galaxy/histories/__init__.py index e51cd5440..0ff1d7b82 100644 --- a/bioblend/galaxy/histories/__init__.py +++ b/bioblend/galaxy/histories/__init__.py @@ -5,7 +5,6 @@ import re import sys import time -import warnings import webbrowser from typing import List from urllib.parse import urljoin @@ -56,12 +55,10 @@ def import_history(self, file_path=None, url=None): return self._post(payload=payload, files_attached=file_path is not None) - def _get_histories(self, history_id=None, name=None, deleted=False, filter_user_published=None, get_all_published=False, slug=None): + def _get_histories(self, name=None, deleted=False, filter_user_published=None, get_all_published=False, slug=None): """ Hidden method to be used by both get_histories() and get_published_histories() """ - if history_id is not None and name is not None: - raise ValueError('Provide only one argument between name or history_id, but not both') assert not (filter_user_published is not None and get_all_published) params = {} @@ -78,10 +75,7 @@ def _get_histories(self, history_id=None, name=None, deleted=False, filter_user_ url = '/'.join((self._make_url(), 'published')) if get_all_published else None histories = self._get(url=url, params=params) - if history_id is not None: - history = next((_ for _ in histories if _['id'] == history_id), None) - histories = [history] if history is not None else [] - elif name is not None: + if name is not None: histories = [_ for _ in histories if _['name'] == name] return histories @@ -90,13 +84,6 @@ def get_histories(self, history_id=None, name=None, deleted=False, published=Non Get all histories, or select a subset by specifying optional arguments for filtering (e.g. a history name). - :type history_id: str - :param history_id: Encoded history ID to filter on - - .. deprecated:: 0.15.0 - To get details of a history for which you know the ID, use the much - more efficient :meth:`show_history` instead. - :type name: str :param name: History name to filter on. @@ -116,13 +103,16 @@ def get_histories(self, history_id=None, name=None, deleted=False, published=Non :rtype: list :return: List of history dicts. + + .. versionchanged:: 0.17.0 + Using the deprecated ``history_id`` parameter now raises a + ``ValueError`` exception. """ if history_id is not None: - warnings.warn( - 'The history_id parameter is deprecated, use the show_history() method to view details of a history for which you know the ID.', - category=FutureWarning + raise ValueError( + 'The history_id parameter has been removed, use the show_history() method to view details of a history for which you know the ID.', ) - return self._get_histories(history_id=history_id, name=name, deleted=deleted, filter_user_published=published, get_all_published=False, slug=slug) + return self._get_histories(name=name, deleted=deleted, filter_user_published=published, get_all_published=False, slug=slug) def get_published_histories(self, name=None, deleted=False, slug=None): """ @@ -217,9 +207,9 @@ def delete_dataset(self, history_id, dataset_id, purge=False): :return: None .. note:: - For the purge option to work, the Galaxy instance must have the - ``allow_user_dataset_purge`` option set to ``true`` in the - ``config/galaxy.yml`` configuration file. + The ``purge`` option works only if the Galaxy instance has the + ``allow_user_dataset_purge`` option set to ``true`` in the + ``config/galaxy.yml`` configuration file. """ url = '/'.join((self._make_url(history_id, contents=True), dataset_id)) payload = {} @@ -542,7 +532,7 @@ def delete_history(self, history_id, purge=False): purged). .. note:: - For the purge option to work, the Galaxy instance must have the + The ``purge`` option works only if the Galaxy instance has the ``allow_user_dataset_purge`` option set to ``true`` in the ``config/galaxy.yml`` configuration file. """ @@ -773,7 +763,7 @@ def get_extra_files(self, history_id: str, dataset_id: str) -> List[dict]: :return: List of extra files .. note:: - This method is only supported by Galaxy 19.01 or later. + This method works only on Galaxy 19.01 or later. """ url = '/'.join((self._make_url(history_id, contents=True), dataset_id, 'extra_files')) return self._get(url=url) diff --git a/bioblend/galaxy/invocations/__init__.py b/bioblend/galaxy/invocations/__init__.py index b02e13c9e..62ccd6e4e 100644 --- a/bioblend/galaxy/invocations/__init__.py +++ b/bioblend/galaxy/invocations/__init__.py @@ -194,7 +194,7 @@ def rerun_invocation(self, invocation_id: str, inputs_update: Optional[dict] = N :return: A dict describing the new workflow invocation. .. note:: - This method can only be used with Galaxy ``release_21.01`` or later. + This method works only on Galaxy 21.01 or later. """ invocation_details = self.show_invocation(invocation_id) workflow_id = invocation_details['workflow_id'] diff --git a/bioblend/galaxy/jobs/__init__.py b/bioblend/galaxy/jobs/__init__.py index 1da72bbfd..da2e7aaeb 100644 --- a/bioblend/galaxy/jobs/__init__.py +++ b/bioblend/galaxy/jobs/__init__.py @@ -97,8 +97,8 @@ def get_jobs(self, state=None, history_id=None, invocation_id=None, tool_id=None 'update_time': '2014-03-01T16:05:39.558458'}] .. note:: - The following filtering options can only be used with Galaxy ``release_21.05`` or later: - user_id, limit, offset, workflow_id, invocation_id + The following options work only on Galaxy 21.05 or later: ``user_id``, + ``limit``, ``offset``, ``workflow_id``, ``invocation_id``. """ params = { 'limit': limit, @@ -204,7 +204,7 @@ def rerun_job(self, job_id, remap=False, tool_inputs_update=None, history_id=Non :return: Information about outputs and the rerun job .. note:: - This method can only be used with Galaxy ``release_21.01`` or later. + This method works only on Galaxy 21.01 or later. """ job_rerun_params = self._build_for_rerun(job_id) job_inputs = job_rerun_params['state_inputs'] @@ -277,7 +277,7 @@ def search_jobs(self, tool_id: str, inputs: dict, state: Optional[str] = None) - ``inputs`` and ``state``. .. note:: - This method is only supported by Galaxy 18.01 or later. + This method works only on Galaxy 18.01 or later. """ job_info = { 'tool_id': tool_id, @@ -342,7 +342,7 @@ def report_error(self, job_id: str, dataset_id: str, message: str, email: str = :return: dict containing job error reply .. note:: - This method is only supported by Galaxy 20.01 or later. + This method works only on Galaxy 20.01 or later. """ payload = { "message": message, @@ -366,7 +366,7 @@ def get_common_problems(self, job_id: str) -> dict: :return: dict containing potential problems .. note:: - This method is only supported by Galaxy 19.05 or later. + This method works only on Galaxy 19.05 or later. """ url = self._make_url(module_id=job_id) + '/common_problems' return self._get(url=url) @@ -408,7 +408,7 @@ def resume_job(self, job_id: str) -> dict: :return: dict containing output dataset associations .. note:: - This method is only supported by Galaxy 18.09 or later. + This method works only on Galaxy 18.09 or later. """ url = self._make_url(module_id=job_id) + '/resume' return self._put(url=url) @@ -425,8 +425,8 @@ def get_destination_params(self, job_id: str) -> dict: :return: Destination parameters for the given job .. note:: - This method is only supported by Galaxy 20.05 or later and requires - the user to be an admin. + This method works only on Galaxy 20.05 or later and if the user is a + Galaxy admin. """ url = self._make_url(module_id=job_id) + '/destination_params' return self._get(url=url) @@ -440,8 +440,8 @@ def show_job_lock(self) -> bool: :return: Status of the job lock .. note:: - This method is only supported by Galaxy 20.05 or later and requires - the user to be an admin. + This method works only on Galaxy 20.05 or later and if the user is a + Galaxy admin. """ url = self.gi.url + '/job_lock' response = self._get(url=url) @@ -457,8 +457,8 @@ def update_job_lock(self, active=False) -> bool: :return: Updated status of the job lock .. note:: - This method is only supported by Galaxy 20.05 or later and requires - the user to be an admin. + This method works only on Galaxy 20.05 or later and if the user is a + Galaxy admin. """ payload = { 'active': active, diff --git a/bioblend/galaxy/libraries/__init__.py b/bioblend/galaxy/libraries/__init__.py index 6690fa61c..8664e9e52 100644 --- a/bioblend/galaxy/libraries/__init__.py +++ b/bioblend/galaxy/libraries/__init__.py @@ -492,11 +492,6 @@ def upload_file_from_server(self, library_id, server_dir, folder_id=None, Upload all files in the specified subdirectory of the Galaxy library import directory to a library. - .. note:: - For this method to work, the Galaxy instance must have the - ``library_import_dir`` option configured in the ``config/galaxy.yml`` - configuration file. - :type library_id: str :param library_id: id of the library where to place the uploaded file @@ -539,6 +534,11 @@ def upload_file_from_server(self, library_id, server_dir, folder_id=None, :rtype: list :return: List with a single dictionary containing information about the LDDA + + .. note:: + This method works only if the Galaxy instance has the + ``library_import_dir`` option configured in the ``config/galaxy.yml`` + configuration file. """ return self._do_upload(library_id, server_dir=server_dir, folder_id=folder_id, file_type=file_type, @@ -555,11 +555,6 @@ def upload_from_galaxy_filesystem(self, library_id, filesystem_paths, folder_id= Upload a set of files already present on the filesystem of the Galaxy server to a library. - .. note:: - For this method to work, the Galaxy instance must have the - ``allow_path_paste`` option set to ``true`` in the - ``config/galaxy.yml`` configuration file. - :type library_id: str :param library_id: id of the library where to place the uploaded file @@ -600,6 +595,11 @@ def upload_from_galaxy_filesystem(self, library_id, filesystem_paths, folder_id= :rtype: list :return: List with a single dictionary containing information about the LDDA + + .. note:: + This method works only if the Galaxy instance has the + ``allow_path_paste`` option set to ``true`` in the + ``config/galaxy.yml`` configuration file. """ return self._do_upload(library_id, filesystem_paths=filesystem_paths, folder_id=folder_id, file_type=file_type, diff --git a/bioblend/galaxy/objects/client.py b/bioblend/galaxy/objects/client.py index 71ffca1ea..ad07a1f7c 100644 --- a/bioblend/galaxy/objects/client.py +++ b/bioblend/galaxy/objects/client.py @@ -227,7 +227,7 @@ def delete(self, id_=None, name=None, purge=False): :param purge: if ``True``, also purge (permanently delete) the history .. note:: - For the purge option to work, the Galaxy instance must have the + The ``purge`` option works only if the Galaxy instance has the ``allow_user_dataset_purge`` option set to ``true`` in the ``config/galaxy.yml`` configuration file. """ diff --git a/bioblend/galaxy/objects/wrappers.py b/bioblend/galaxy/objects/wrappers.py index 9dcbd6273..c6f6f8938 100644 --- a/bioblend/galaxy/objects/wrappers.py +++ b/bioblend/galaxy/objects/wrappers.py @@ -913,9 +913,9 @@ def delete(self, purge=False): :param purge: if ``True``, also purge (permanently delete) the dataset .. note:: - For the purge option to work, the Galaxy instance must have the - ``allow_user_dataset_purge`` option set to ``true`` in the - ``config/galaxy.yml`` configuration file. + The ``purge`` option works only if the Galaxy instance has the + ``allow_user_dataset_purge`` option set to ``true`` in the + ``config/galaxy.yml`` configuration file. """ self.gi.gi.histories.delete_dataset(self.container.id, self.id, purge=purge) self.container.refresh() @@ -1134,7 +1134,6 @@ def get_datasets(self, name=None): container .. note:: - when filtering library datasets by name, specify their full paths starting from the library's root folder, e.g., ``/seqdata/reads.fastq``. Full paths are available through @@ -1197,7 +1196,7 @@ def delete(self, purge=False): :param purge: if ``True``, also purge (permanently delete) the history .. note:: - For the purge option to work, the Galaxy instance must have the + The ``purge`` option works only if the Galaxy instance has the ``allow_user_dataset_purge`` option set to ``true`` in the ``config/galaxy.yml`` configuration file. """ @@ -1417,11 +1416,6 @@ def upload_from_galaxy_fs(self, paths, folder=None, link_data_only=None, **kwarg """ Upload data to this library from filesystem paths on the server. - .. note:: - For this method to work, the Galaxy instance must have the - ``allow_path_paste`` option set to ``true`` in the - ``config/galaxy.yml`` configuration file. - :type paths: str or :class:`~collections.abc.Iterable` of str :param paths: server-side file paths from which data should be read @@ -1434,6 +1428,11 @@ def upload_from_galaxy_fs(self, paths, folder=None, link_data_only=None, **kwarg :return: the dataset objects that represent the uploaded content See :meth:`.upload_data` for info on other params. + + .. note:: + This method works only if the Galaxy instance has the + ``allow_path_paste`` option set to ``true`` in the + ``config/galaxy.yml`` configuration file. """ fid = self._pre_upload(folder) if isinstance(paths, str): diff --git a/bioblend/galaxy/tool_dependencies/__init__.py b/bioblend/galaxy/tool_dependencies/__init__.py index d33a10013..773db2f3d 100644 --- a/bioblend/galaxy/tool_dependencies/__init__.py +++ b/bioblend/galaxy/tool_dependencies/__init__.py @@ -62,9 +62,9 @@ def summarize_toolbox(self, index=None, tool_ids=None, resolver_type=None, inclu 'tool_ids': ['vcf_to_maf_customtrack1']}] .. note:: - This method can only be used with Galaxy ``release_20.01`` or later and requires - the user to be an admin. It relies on an experimental API particularly tied to - the GUI and therefore is subject to breaking changes. + This method works only on Galaxy 20.01 or later and if the user is a + Galaxy admin. It relies on an experimental API particularly tied to + the GUI and therefore is subject to breaking changes. """ assert index_by in ['tools', 'requirements'], "index_by must be one of 'tools' or 'requirements'." params = { diff --git a/bioblend/galaxy/tools/__init__.py b/bioblend/galaxy/tools/__init__.py index cac8ad2ee..a38aa00e1 100644 --- a/bioblend/galaxy/tools/__init__.py +++ b/bioblend/galaxy/tools/__init__.py @@ -75,7 +75,6 @@ def _raw_get_tool(self, in_panel=None, trackster=None): def requirements(self, tool_id): """ Return the resolver status for a specific tool. - This functionality is available only to Galaxy admins. :type tool_id: str :param tool_id: id of the requested tool @@ -101,15 +100,19 @@ def requirements(self, tool_id): 'model_class': 'MergedCondaDependency', 'name': 'blast', 'version': '2.10.1'}] + + .. note:: + This method works only if the user is a Galaxy admin. """ url = self._make_url(tool_id) + '/requirements' return self._get(url=url) def reload(self, tool_id: str) -> dict: """ - Reload the specified tool in the toolbox. Any changes that have been made to the wrapper - since the tool was last reloaded will take effect. - This functionality is available only to Galaxy admins. + Reload the specified tool in the toolbox. + + Any changes that have been made to the wrapper since the tool was last + reloaded will take effect. :type tool_id: str :param tool_id: id of the requested tool @@ -118,9 +121,12 @@ def reload(self, tool_id: str) -> dict: :param: dict containing the id, name, and version of the reloaded tool. For example:: - {'message': {'name': 'Cutadapt', - 'id': 'toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.4+galaxy1', - 'version': '3.4+galaxy1'}} + {'message': {'id': 'toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.4+galaxy1', + 'name': 'Cutadapt', + 'version': '3.4+galaxy1'}} + + .. note:: + This method works only if the user is a Galaxy admin. """ url = self._make_url(tool_id) + '/reload' return self._put(url=url) @@ -142,13 +148,15 @@ def install_dependencies(self, tool_id): """ Install dependencies for a given tool via a resolver. This works only for Conda currently. - This functionality is available only to Galaxy admins. :type tool_id: str :param tool_id: id of the requested tool :rtype: dict :return: Tool requirement status + + .. note:: + This method works only if the user is a Galaxy admin. """ url = self._make_url(tool_id) + '/install_dependencies' return self._post(url=url) @@ -157,13 +165,15 @@ def uninstall_dependencies(self, tool_id: str) -> dict: """ Uninstall dependencies for a given tool via a resolver. This works only for Conda currently. - This functionality is available only to Galaxy admins. :type tool_id: str :param tool_id: id of the requested tool :rtype: dict :return: Tool requirement status + + .. note:: + This method works only if the user is a Galaxy admin. """ url = self._make_url(tool_id) + '/dependencies' return self._delete(url=url) diff --git a/bioblend/galaxy/users/__init__.py b/bioblend/galaxy/users/__init__.py index 6e3548990..36e27e395 100644 --- a/bioblend/galaxy/users/__init__.py +++ b/bioblend/galaxy/users/__init__.py @@ -77,7 +77,7 @@ def create_remote_user(self, user_email): Create a new Galaxy remote user. .. note:: - For this method to work, the Galaxy instance must have the + This method works only if the Galaxy instance has the ``allow_user_creation`` and ``use_remote_user`` options set to ``true`` in the ``config/galaxy.yml`` configuration file. Also note that setting ``use_remote_user`` will require an upstream @@ -99,7 +99,7 @@ def create_local_user(self, username, user_email, password): Create a new Galaxy local user. .. note:: - For this method to work, the Galaxy instance must have the + This method works only if the Galaxy instance has the ``allow_user_creation`` option set to ``true`` and ``use_remote_user`` option set to ``false`` in the ``config/galaxy.yml`` configuration file. @@ -153,7 +153,7 @@ def delete_user(self, user_id, purge=False): Delete a user. .. note:: - For this method to work, the Galaxy instance must have the + This method works only if the Galaxy instance has the ``allow_user_deletion`` option set to ``true`` in the ``config/galaxy.yml`` configuration file. diff --git a/docs/api_docs/galaxy/docs.rst b/docs/api_docs/galaxy/docs.rst index b3d48e8ed..46af76828 100644 --- a/docs/api_docs/galaxy/docs.rst +++ b/docs/api_docs/galaxy/docs.rst @@ -281,8 +281,8 @@ Instead of using dictionaries directly, workflows can be exported to or imported .. Note:: If we export a workflow from one Galaxy instance and import it into another, Galaxy will only run it without modification if it has the same versions of the tool wrappers installed. This is to ensure reproducibility. Otherwise, we will need to manually update the workflow to use the new tool versions. -Invoke a Workflow -~~~~~~~~~~~~~~ +Invoke a workflow +~~~~~~~~~~~~~~~~~ To invoke a workflow, we need to tell Galaxy which datasets to use for which workflow inputs. We can use datasets from histories or data libraries.