easylink 0.1.5__tar.gz → 0.1.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. {easylink-0.1.5 → easylink-0.1.6}/CHANGELOG.rst +4 -0
  2. {easylink-0.1.5 → easylink-0.1.6}/PKG-INFO +1 -1
  3. easylink-0.1.6/src/easylink/_version.py +1 -0
  4. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline_schema_constants/__init__.py +2 -2
  5. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/step.py +3 -4
  6. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/PKG-INFO +1 -1
  7. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/SOURCES.txt +27 -0
  8. easylink-0.1.6/tests/specifications/unit/environment_minimum.yaml +2 -0
  9. easylink-0.1.6/tests/specifications/unit/environment_spark_slurm.yaml +15 -0
  10. easylink-0.1.6/tests/specifications/unit/pipeline.yaml +15 -0
  11. easylink-0.1.6/tests/specifications/unit/pipeline_bad_combined_implementations.yaml +14 -0
  12. easylink-0.1.6/tests/specifications/unit/pipeline_bad_implementation.yaml +15 -0
  13. easylink-0.1.6/tests/specifications/unit/pipeline_bad_loop_formatting.yaml +15 -0
  14. easylink-0.1.6/tests/specifications/unit/pipeline_bad_step.yaml +18 -0
  15. easylink-0.1.6/tests/specifications/unit/pipeline_bad_type_key.yaml +15 -0
  16. easylink-0.1.6/tests/specifications/unit/pipeline_combine_bad_implementation_names.yaml +18 -0
  17. easylink-0.1.6/tests/specifications/unit/pipeline_combine_bad_topology.yaml +18 -0
  18. easylink-0.1.6/tests/specifications/unit/pipeline_combine_two_steps.yaml +16 -0
  19. easylink-0.1.6/tests/specifications/unit/pipeline_combine_with_extra_node.yaml +15 -0
  20. easylink-0.1.6/tests/specifications/unit/pipeline_combine_with_iteration.yaml +19 -0
  21. easylink-0.1.6/tests/specifications/unit/pipeline_combine_with_iteration_cycle.yaml +19 -0
  22. easylink-0.1.6/tests/specifications/unit/pipeline_combine_with_missing_node.yaml +17 -0
  23. easylink-0.1.6/tests/specifications/unit/pipeline_combine_with_parallel.yaml +24 -0
  24. easylink-0.1.6/tests/specifications/unit/pipeline_missing_implementation_name.yaml +15 -0
  25. easylink-0.1.6/tests/specifications/unit/pipeline_missing_implementations.yaml +14 -0
  26. easylink-0.1.6/tests/specifications/unit/pipeline_missing_loop_nodes.yaml +14 -0
  27. easylink-0.1.6/tests/specifications/unit/pipeline_missing_step.yaml +4 -0
  28. easylink-0.1.6/tests/specifications/unit/pipeline_missing_substeps.yaml +17 -0
  29. easylink-0.1.6/tests/specifications/unit/pipeline_missing_type_key.yaml +15 -0
  30. easylink-0.1.6/tests/specifications/unit/pipeline_nested_templated_steps.yaml +21 -0
  31. easylink-0.1.6/tests/specifications/unit/pipeline_out_of_order.yaml +15 -0
  32. easylink-0.1.6/tests/specifications/unit/pipeline_spark.yaml +7 -0
  33. easylink-0.1.6/tests/specifications/unit/pipeline_type_config_mismatch.yaml +18 -0
  34. easylink-0.1.6/tests/specifications/unit/pipeline_wrong_parallel_split_keys.yaml +19 -0
  35. easylink-0.1.6/tests/unit/conftest.py +157 -0
  36. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_pipeline_graph.py +38 -16
  37. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_runner.py +5 -5
  38. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_validations.py +22 -9
  39. easylink-0.1.5/src/easylink/_version.py +0 -1
  40. easylink-0.1.5/tests/unit/conftest.py +0 -863
  41. {easylink-0.1.5 → easylink-0.1.6}/.bandit +0 -0
  42. {easylink-0.1.5 → easylink-0.1.6}/.flake8 +0 -0
  43. {easylink-0.1.5 → easylink-0.1.6}/.github/CODEOWNERS +0 -0
  44. {easylink-0.1.5 → easylink-0.1.6}/.github/pull_request_template.md +0 -0
  45. {easylink-0.1.5 → easylink-0.1.6}/.github/workflows/build.yml +0 -0
  46. {easylink-0.1.5 → easylink-0.1.6}/.github/workflows/deploy.yml +0 -0
  47. {easylink-0.1.5 → easylink-0.1.6}/.github/workflows/update_readme.yml +0 -0
  48. {easylink-0.1.5 → easylink-0.1.6}/.gitignore +0 -0
  49. {easylink-0.1.5 → easylink-0.1.6}/.readthedocs.yml +0 -0
  50. {easylink-0.1.5 → easylink-0.1.6}/Jenkinsfile +0 -0
  51. {easylink-0.1.5 → easylink-0.1.6}/Makefile +0 -0
  52. {easylink-0.1.5 → easylink-0.1.6}/README.rst +0 -0
  53. {easylink-0.1.5 → easylink-0.1.6}/docs/Makefile +0 -0
  54. {easylink-0.1.5 → easylink-0.1.6}/docs/nitpick-exceptions +0 -0
  55. {easylink-0.1.5 → easylink-0.1.6}/docs/source/_static/style.css +0 -0
  56. {easylink-0.1.5 → easylink-0.1.6}/docs/source/_templates/layout.html +0 -0
  57. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/configuration.rst +0 -0
  58. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/graph_components.rst +0 -0
  59. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/implementation.rst +0 -0
  60. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/index.rst +0 -0
  61. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline.rst +0 -0
  62. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline_graph.rst +0 -0
  63. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline_schema.rst +0 -0
  64. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline_schema_constants/development.rst +0 -0
  65. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline_schema_constants/index.rst +0 -0
  66. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/pipeline_schema_constants/testing.rst +0 -0
  67. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/rule.rst +0 -0
  68. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/runner.rst +0 -0
  69. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/step.rst +0 -0
  70. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/utilities/data_utils.rst +0 -0
  71. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/utilities/general_utils.rst +0 -0
  72. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/utilities/index.rst +0 -0
  73. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/utilities/paths.rst +0 -0
  74. {easylink-0.1.5 → easylink-0.1.6}/docs/source/api_reference/utilities/validation_utils.rst +0 -0
  75. {easylink-0.1.5 → easylink-0.1.6}/docs/source/concepts/index.rst +0 -0
  76. {easylink-0.1.5 → easylink-0.1.6}/docs/source/conf.py +0 -0
  77. {easylink-0.1.5 → easylink-0.1.6}/docs/source/glossary.rst +0 -0
  78. {easylink-0.1.5 → easylink-0.1.6}/docs/source/index.rst +0 -0
  79. {easylink-0.1.5 → easylink-0.1.6}/docs/source/user_guide/cli.rst +0 -0
  80. {easylink-0.1.5 → easylink-0.1.6}/docs/source/user_guide/index.rst +0 -0
  81. {easylink-0.1.5 → easylink-0.1.6}/docs/source/user_guide/tutorials/getting_started.rst +0 -0
  82. {easylink-0.1.5 → easylink-0.1.6}/docs/source/user_guide/tutorials/index.rst +0 -0
  83. {easylink-0.1.5 → easylink-0.1.6}/pyproject.toml +0 -0
  84. {easylink-0.1.5 → easylink-0.1.6}/python_versions.json +0 -0
  85. {easylink-0.1.5 → easylink-0.1.6}/pytype.cfg +0 -0
  86. {easylink-0.1.5 → easylink-0.1.6}/setup.cfg +0 -0
  87. {easylink-0.1.5 → easylink-0.1.6}/setup.py +0 -0
  88. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/__about__.py +0 -0
  89. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/__init__.py +0 -0
  90. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/cli.py +0 -0
  91. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/configuration.py +0 -0
  92. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/graph_components.py +0 -0
  93. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/images/spark_cluster/Dockerfile +0 -0
  94. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/images/spark_cluster/README.md +0 -0
  95. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/implementation.py +0 -0
  96. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/implementation_metadata.yaml +0 -0
  97. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline.py +0 -0
  98. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline_graph.py +0 -0
  99. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline_schema.py +0 -0
  100. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline_schema_constants/development.py +0 -0
  101. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/pipeline_schema_constants/testing.py +0 -0
  102. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/rule.py +0 -0
  103. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/runner.py +0 -0
  104. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/README.md +0 -0
  105. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/build-containers-local.sh +0 -0
  106. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/build-containers-remote.sh +0 -0
  107. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/input_data/create_input_files.ipynb +0 -0
  108. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/input_data/input_file_1.csv +0 -0
  109. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/input_data/input_file_1.parquet +0 -0
  110. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/input_data/input_file_2.csv +0 -0
  111. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/input_data/input_file_2.parquet +0 -0
  112. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pandas/README.md +0 -0
  113. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pandas/dummy_step.py +0 -0
  114. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pandas/python_pandas.def +0 -0
  115. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pyspark/README.md +0 -0
  116. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pyspark/dummy_step.py +0 -0
  117. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/python_pyspark/python_pyspark.def +0 -0
  118. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/r/README.md +0 -0
  119. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/r/dummy_step.R +0 -0
  120. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/r/r-image.def +0 -0
  121. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/steps/dev/test.py +0 -0
  122. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/__init__.py +0 -0
  123. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/data_utils.py +0 -0
  124. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/general_utils.py +0 -0
  125. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/paths.py +0 -0
  126. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/spark.smk +0 -0
  127. {easylink-0.1.5 → easylink-0.1.6}/src/easylink/utilities/validation_utils.py +0 -0
  128. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/dependency_links.txt +0 -0
  129. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/entry_points.txt +0 -0
  130. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/not-zip-safe +0 -0
  131. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/requires.txt +0 -0
  132. {easylink-0.1.5 → easylink-0.1.6}/src/easylink.egg-info/top_level.txt +0 -0
  133. {easylink-0.1.5 → easylink-0.1.6}/tests/__init__.py +0 -0
  134. {easylink-0.1.5 → easylink-0.1.6}/tests/conftest.py +0 -0
  135. {easylink-0.1.5 → easylink-0.1.6}/tests/e2e/test_easylink_run.py +0 -0
  136. {easylink-0.1.5 → easylink-0.1.6}/tests/e2e/test_step_types.py +0 -0
  137. {easylink-0.1.5 → easylink-0.1.6}/tests/integration/test_snakemake.py +0 -0
  138. {easylink-0.1.5 → easylink-0.1.6}/tests/integration/test_snakemake_slurm.py +0 -0
  139. {easylink-0.1.5 → easylink-0.1.6}/tests/integration/test_snakemake_spark.py +0 -0
  140. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/common/environment_local.yaml +0 -0
  141. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/common/input_data.yaml +0 -0
  142. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/common/pipeline.yaml +0 -0
  143. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/e2e/environment_slurm.yaml +0 -0
  144. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/e2e/pipeline.yaml +0 -0
  145. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/e2e/pipeline_expanded.yaml +0 -0
  146. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/integration/environment_spark_slurm.yaml +0 -0
  147. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/integration/pipeline.yaml +0 -0
  148. {easylink-0.1.5 → easylink-0.1.6}/tests/specifications/integration/pipeline_spark.yaml +0 -0
  149. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/__init__.py +0 -0
  150. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/implemented_rule_local.txt +0 -0
  151. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/implemented_rule_slurm.txt +0 -0
  152. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/pipeline_local.txt +0 -0
  153. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/pipeline_slurm.txt +0 -0
  154. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/target_rule.txt +0 -0
  155. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/rule_strings/validation_rule.txt +0 -0
  156. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_cli.py +0 -0
  157. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_config.py +0 -0
  158. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_data_utils.py +0 -0
  159. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_general_utils.py +0 -0
  160. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_graph_components.py +0 -0
  161. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_implementation.py +0 -0
  162. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_pipeline.py +0 -0
  163. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_pipeline_schema.py +0 -0
  164. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_rule.py +0 -0
  165. {easylink-0.1.5 → easylink-0.1.6}/tests/unit/test_step.py +0 -0
  166. {easylink-0.1.5 → easylink-0.1.6}/update_readme.py +0 -0
@@ -1,3 +1,7 @@
1
+ **0.1.6 - 2/21/25**
2
+
3
+ - Move test dictionaries to yaml files
4
+
1
5
  **0.1.5 - 2/20/25**
2
6
 
3
7
  - Fix handling of templated steps when no looping or parallelism is requested
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: easylink
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: Research repository for the EasyLink ER ecosystem project.
5
5
  Home-page: https://github.com/ihmeuw/easylink
6
6
  Author: The EasyLink developers
@@ -0,0 +1 @@
1
+ __version__ = "0.1.6"
@@ -6,7 +6,7 @@ ALLOWED_SCHEMA_PARAMS = {
6
6
 
7
7
  TESTING_SCHEMA_PARAMS = {
8
8
  "integration": testing.SINGLE_STEP_SCHEMA_PARAMS,
9
- "combined_bad_topology": testing.BAD_COMBINED_TOPOLOGY_SCHEMA_PARAMS,
10
- "combined_bad_implementation_names": testing.BAD_COMBINED_TOPOLOGY_SCHEMA_PARAMS,
9
+ "combine_bad_topology": testing.BAD_COMBINED_TOPOLOGY_SCHEMA_PARAMS,
10
+ "combine_bad_implementation_names": testing.BAD_COMBINED_TOPOLOGY_SCHEMA_PARAMS,
11
11
  "nested_templated_steps": testing.NESTED_TEMPLATED_STEPS_SCHEMA_PARAMS,
12
12
  }
@@ -822,7 +822,7 @@ class TemplatedStep(Step, ABC):
822
822
 
823
823
  Notes
824
824
  -----
825
- A ``TemplatedStep`` is always assigned a :class:`NonLeafConfigurationState`
825
+ A ``TemplatedStep`` is *always* assigned a :class:`NonLeafConfigurationState`
826
826
  even if it has no multiplicity since (despite having no copies to make) we
827
827
  still need to traverse the sub-``Steps`` to get to the one with a single
828
828
  :class:`~easylink.implementation.Implementation`, i.e. the one with a
@@ -851,9 +851,8 @@ class TemplatedStep(Step, ABC):
851
851
  self.slot_mappings = self._update_slot_mappings(num_repeats)
852
852
  # Manually set the configuration state to non-leaf instead of relying
853
853
  # on super().get_configuration_state() because that method will erroneously
854
- # set to leaf state when we have no multiplicity (because in that case the
855
- # user didn't actually include the config_key in the pipeline specification
856
- # file, hence num_repeats == 1)
854
+ # set to leaf state in the event the user didn't include the config_key
855
+ # in the pipeline specification.
857
856
  self._configuration_state = NonLeafConfigurationState(
858
857
  self, expanded_config, combined_implementations, input_data_config
859
858
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: easylink
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: Research repository for the EasyLink ER ecosystem project.
5
5
  Home-page: https://github.com/ihmeuw/easylink
6
6
  Author: The EasyLink developers
@@ -112,6 +112,33 @@ tests/specifications/e2e/pipeline_expanded.yaml
112
112
  tests/specifications/integration/environment_spark_slurm.yaml
113
113
  tests/specifications/integration/pipeline.yaml
114
114
  tests/specifications/integration/pipeline_spark.yaml
115
+ tests/specifications/unit/environment_minimum.yaml
116
+ tests/specifications/unit/environment_spark_slurm.yaml
117
+ tests/specifications/unit/pipeline.yaml
118
+ tests/specifications/unit/pipeline_bad_combined_implementations.yaml
119
+ tests/specifications/unit/pipeline_bad_implementation.yaml
120
+ tests/specifications/unit/pipeline_bad_loop_formatting.yaml
121
+ tests/specifications/unit/pipeline_bad_step.yaml
122
+ tests/specifications/unit/pipeline_bad_type_key.yaml
123
+ tests/specifications/unit/pipeline_combine_bad_implementation_names.yaml
124
+ tests/specifications/unit/pipeline_combine_bad_topology.yaml
125
+ tests/specifications/unit/pipeline_combine_two_steps.yaml
126
+ tests/specifications/unit/pipeline_combine_with_extra_node.yaml
127
+ tests/specifications/unit/pipeline_combine_with_iteration.yaml
128
+ tests/specifications/unit/pipeline_combine_with_iteration_cycle.yaml
129
+ tests/specifications/unit/pipeline_combine_with_missing_node.yaml
130
+ tests/specifications/unit/pipeline_combine_with_parallel.yaml
131
+ tests/specifications/unit/pipeline_missing_implementation_name.yaml
132
+ tests/specifications/unit/pipeline_missing_implementations.yaml
133
+ tests/specifications/unit/pipeline_missing_loop_nodes.yaml
134
+ tests/specifications/unit/pipeline_missing_step.yaml
135
+ tests/specifications/unit/pipeline_missing_substeps.yaml
136
+ tests/specifications/unit/pipeline_missing_type_key.yaml
137
+ tests/specifications/unit/pipeline_nested_templated_steps.yaml
138
+ tests/specifications/unit/pipeline_out_of_order.yaml
139
+ tests/specifications/unit/pipeline_spark.yaml
140
+ tests/specifications/unit/pipeline_type_config_mismatch.yaml
141
+ tests/specifications/unit/pipeline_wrong_parallel_split_keys.yaml
115
142
  tests/unit/__init__.py
116
143
  tests/unit/conftest.py
117
144
  tests/unit/test_cli.py
@@ -0,0 +1,2 @@
1
+ computing_environment: local
2
+ container_engine: undefined
@@ -0,0 +1,15 @@
1
+ computing_environment: slurm
2
+ container_engine: singularity
3
+ slurm:
4
+ account: some-account
5
+ partition: some-partition
6
+ implementation_resources:
7
+ memory: 42
8
+ cpus: 42
9
+ time_limit: 42
10
+ spark:
11
+ workers:
12
+ num_workers: 42
13
+ cpus_per_node: 42
14
+ mem_per_node: 42
15
+ time_limit: 42
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,14 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ combined_implementation_key: foo
10
+ choice_section:
11
+ type: simple
12
+ step_4:
13
+ implementation:
14
+ name: step_4_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: foo # not a valid/supported implementation
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ iterate:
10
+ implementation: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,18 @@
1
+ steps:
2
+ foo:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_1:
6
+ implementation:
7
+ name: step_1_python_pandas
8
+ step_2:
9
+ implementation:
10
+ name: step_2_python_pandas
11
+ step_3:
12
+ implementation:
13
+ name: step_3_python_pandas
14
+ choice_section:
15
+ type: simple
16
+ step_4:
17
+ implementation:
18
+ name: step_4_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: foo # not a supported type
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,18 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ combined_implementation_key: step_3_4 # incorrect key
9
+ step_3:
10
+ implementation:
11
+ name: step_3_python_pandas
12
+ choice_section:
13
+ type: simple
14
+ step_4:
15
+ combined_implementation_key: step_3_4
16
+ combined_implementations:
17
+ step_3_4:
18
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,18 @@
1
+ steps:
2
+ step_1:
3
+ iterate:
4
+ - substeps:
5
+ step_1a:
6
+ implementation:
7
+ name: step_1a_python_pandas
8
+ step_1b:
9
+ combined_implementation_key: step_1a_1b
10
+ - substeps:
11
+ step_1a:
12
+ combined_implementation_key: step_1a_1b
13
+ step_1b:
14
+ implementation:
15
+ name: step_1b_python_pandas
16
+ combined_implementations:
17
+ step_1a_1b:
18
+ name: step_1a_and_step_1b_combined_python_pandas
@@ -0,0 +1,16 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ combined_implementation_key: step_3_4
10
+ choice_section:
11
+ type: simple
12
+ step_4:
13
+ combined_implementation_key: step_3_4
14
+ combined_implementations:
15
+ step_3_4:
16
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ combined_implementation_key: step_3_4
7
+ step_3:
8
+ combined_implementation_key: step_3_4
9
+ choice_section:
10
+ type: simple
11
+ step_4:
12
+ combined_implementation_key: step_3_4
13
+ combined_implementations:
14
+ step_3_4:
15
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,19 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ iterate:
10
+ - implementation:
11
+ name: step_3_python_pandas
12
+ - combined_implementation_key: step_3_4
13
+ choice_section:
14
+ type: simple
15
+ step_4:
16
+ combined_implementation_key: step_3_4
17
+ combined_implementations:
18
+ step_3_4:
19
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,19 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ iterate:
10
+ - combined_implementation_key: step_3_4
11
+ - implementation:
12
+ name: step_3_python_pandas
13
+ choice_section:
14
+ type: simple
15
+ step_4:
16
+ combined_implementation_key: step_3_4
17
+ combined_implementations:
18
+ step_3_4:
19
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,17 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ combined_implementation_key: step_3_4
15
+ combined_implementations:
16
+ step_3_4:
17
+ name: step_3_and_step_4_combined_python_pandas
@@ -0,0 +1,24 @@
1
+ steps:
2
+ step_1:
3
+ parallel:
4
+ - input_data_file: file1
5
+ implementation:
6
+ name: step_1_python_pandas
7
+ - input_data_file: file2
8
+ implementation:
9
+ name: step_1_python_pandas
10
+ - input_data_file: file2
11
+ combined_implementation_key: steps_1_and_2_combined
12
+ step_2:
13
+ combined_implementation_key: steps_1_and_2_combined
14
+ step_3:
15
+ implementation:
16
+ name: step_3_python_pandas
17
+ choice_section:
18
+ type: simple
19
+ step_4:
20
+ implementation:
21
+ name: step_4_python_pandas
22
+ combined_implementations:
23
+ steps_1_and_2_combined:
24
+ name: step_1_and_step_2_combined_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ foo: bar # missing name key
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,14 @@
1
+ steps:
2
+ step_1:
3
+ foo: bar # missing implementation key
4
+ step_2:
5
+ implementation:
6
+ name: step_2_python_pandas
7
+ step_3:
8
+ implementation:
9
+ name: step_3_python_pandas
10
+ choice_section:
11
+ type: simple
12
+ step_4:
13
+ implementation:
14
+ name: step_4_python_pandas
@@ -0,0 +1,14 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ iterate: []
10
+ choice_section:
11
+ type: simple
12
+ step_4:
13
+ implementation:
14
+ name: step_4_python_pandas
@@ -0,0 +1,4 @@
1
+ steps:
2
+ step_2:
3
+ implementation:
4
+ name: step_2_python_pandas
@@ -0,0 +1,17 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ substeps:
15
+ step_4a:
16
+ implementation: foo # missing name key
17
+ # missing step_4b
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ # missing 'type' key
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,21 @@
1
+ steps:
2
+ step_1:
3
+ iterate:
4
+ - parallel: # loop 1: parallel with multiplicity
5
+ - implementation:
6
+ name: step_1_python_pandas
7
+ input_data_file: file1
8
+ - implementation:
9
+ name: step_1_python_pandas
10
+ input_data_file: file2
11
+ - parallel: # loop 2: parallel with no multiplicity
12
+ - implementation:
13
+ name: step_1_python_pandas
14
+ input_data_file: file1
15
+ - substeps: # loop 3: missing 'parallel' key, uses hierarchical step
16
+ step_1a:
17
+ implementation:
18
+ name: step_1a_python_pandas
19
+ step_1b:
20
+ implementation:
21
+ name: step_1b_python_pandas
@@ -0,0 +1,15 @@
1
+ steps:
2
+ step_2:
3
+ implementation:
4
+ name: step_2_python_pandas
5
+ step_1:
6
+ implementation:
7
+ name: step_1_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_4:
14
+ implementation:
15
+ name: step_4_python_pandas
@@ -0,0 +1,7 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pyspark
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pyspark
@@ -0,0 +1,18 @@
1
+ steps:
2
+ step_1:
3
+ implementation:
4
+ name: step_1_python_pandas
5
+ step_2:
6
+ implementation:
7
+ name: step_2_python_pandas
8
+ step_3:
9
+ implementation:
10
+ name: step_3_python_pandas
11
+ choice_section:
12
+ type: simple
13
+ step_5:
14
+ implementation:
15
+ name: step_5_python_pandas
16
+ step_6:
17
+ implementation:
18
+ name: step_6_python_pandas
@@ -0,0 +1,19 @@
1
+ steps:
2
+ step_1:
3
+ parallel:
4
+ - implementation:
5
+ name: step_1_python_pandas
6
+ input_data_file: foo
7
+ implementation:
8
+ name: step_1_python_pandas
9
+ step_2:
10
+ implementation:
11
+ name: step_2_python_pandas
12
+ step_3:
13
+ implementation:
14
+ name: step_3_python_pandas
15
+ choice_section:
16
+ type: simple
17
+ step_4:
18
+ implementation:
19
+ name: step_4_python_pandas