- Reduce duplication between initializing generic modules and tool modules.
- Switch tool_id to content_id as variable names throughout the client.
- Rename get_tool_id to get_content_id on workflow modules.
- Add some minimal documentation to the workflow module about get_content_id.
Downstream in the subworkflow commit I switch the over-the-wire communication to use content_id instead of tool_id also and use content_ids to refer to workflow ids in subworkflow moduls.
Allow multiple collections to be fed to a multi data parameter in one reduction step. Fixes#750 and will really simplify certain classes of tools.
Rebased original with fixes for rerun of such reductions.
Manually tested workflow execution and everything seems fine. The workflow editor already thought this was possible, so that is another bug corrected by this enhancement.
To run the associated API test, execute the following command:
./run_tests.sh -with_framework_test_tools -api test/api/test_tools.py:ToolsTestCase.test_reduce_multiple_lists_on_multi_data
Conflicts:
static/maps/mvc/dataset/dataset-choice.js.map
static/maps/mvc/form/form-select-content.js.map
static/scripts/mvc/form/form-select-content.js
This is a slight tightening up of the ad-hoc, experimental workflow YAML definition used by the test framework (and by Kyle, but lets just admit Kyle is part of Galaxy's test framework).
This format is still defined entirely client side by transcoding the YAML or python object description into real (or format 1) Galaxy workflows - so these cannot realisticaly be declared part of Galaxy's public interface and can remain experimental and subject to change.
In addition to refactoring the code implementing these workflows for upstream modifications to explore new features, the format itself has been made slightly more stringent in two ways:
- 'steps' must now be explicit (previously converted auto-convert list to dict).
- Ensure the workflow declared a 'class' is defined and the class is 'GalaxyWorkflow'.
This will help with discovery of workflow objects with downstream tooling (planemo for workflows?) and brings the Galaxy definition slightly more inline with the CWL definition for workflows (very slightly).
Can do it by numeric index or element name, e.g. input[0] or input["forward"]. Only works for 1-D collections.
Implements #699.
Run new and most relevant existing tests with the following commands:
```
nosetests test/unit/tools/test_actions.py
./run_tests.sh -framework -id output_format_collection
./run_tests.sh -framework -id output_format
```
Line wrapped to 79 charecters, except for some doc summary lines.
Dropped the no-op, unused CachingObjectStore
Renamed `create_object_in_session()` to `_create_object_in_session()` to mark
it as private.
Instead of writing out the tools on startup (a more expensive operation than reading), just read the existing files in. Add new abstraction to the tool panel to reduce some otherwise duplicated code.
Testing:
The following two API tests should cover the modified behavior, they verify that metadata is still detectable and that history import and export still works.
```
./run_tests.sh -api test/api/test_histories.py:HistoriesApiTestCase.test_import_export
./run_tests.sh -with_framework_test_tools -api test/api/test_tools.py:ToolsTestCase.test_rdata_not_decompressed
```