dv-flow-mgr 0.0.2.14163613545a1__tar.gz → 0.0.2.14180123344a1__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 (117) hide show
  1. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/PKG-INFO +1 -1
  2. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/pyproject.toml +1 -1
  3. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/__main__.py +3 -0
  4. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/cmds/cmd_run.py +6 -0
  5. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_def.py +20 -2
  6. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_compound.py +14 -4
  7. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/PKG-INFO +1 -1
  8. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/.github/workflows/ci.yml +0 -0
  9. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/.gitignore +0 -0
  10. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/.vscode/settings.json +0 -0
  11. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/LICENSE +0 -0
  12. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/README.md +0 -0
  13. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/ChangeLog.md +0 -0
  14. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/KeyArchitecture.md +0 -0
  15. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Makefile +0 -0
  16. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Notes.md +0 -0
  17. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Roadmap.md +0 -0
  18. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/RundirLayout.md +0 -0
  19. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Stages.md +0 -0
  20. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Steps.md +0 -0
  21. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Tasks.md +0 -0
  22. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/TypesAndDefs.md +0 -0
  23. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/Usecases.md +0 -0
  24. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/cmdref.rst +0 -0
  25. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/conf.py +0 -0
  26. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/index.rst +0 -0
  27. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/pytask_api.rst +0 -0
  28. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/docs/quickstart.rst +0 -0
  29. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/fwperiph_dma.pss +0 -0
  30. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/ivpm.yaml +0 -0
  31. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/setup.cfg +0 -0
  32. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/__init__.py +0 -0
  33. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/cmds/cmd_graph.py +0 -0
  34. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/cmds/cmd_show.py +0 -0
  35. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/eval_jq.py +0 -0
  36. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/expr_eval.py +0 -0
  37. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/expr_parser.py +0 -0
  38. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/fileset.py +0 -0
  39. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/fragment_def.py +0 -0
  40. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/listener_list.py +0 -0
  41. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/out +0 -0
  42. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/package.py +0 -0
  43. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/package_def.py +0 -0
  44. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/package_import_spec.py +0 -0
  45. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/param.py +0 -0
  46. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/param_def.py +0 -0
  47. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/param_ref_eval.py +0 -0
  48. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/parsetab.py +0 -0
  49. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/pkg_rgy.py +0 -0
  50. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/share/flow.json +0 -0
  51. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/create_file.py +0 -0
  52. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/exec.py +0 -0
  53. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/fileset.py +0 -0
  54. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/flow.dv +0 -0
  55. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/message.py +0 -0
  56. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/std/task_null.py +0 -0
  57. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_data.py +0 -0
  58. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_graph_builder.py +0 -0
  59. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_graph_dot_writer.py +0 -0
  60. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_listener_log.py +0 -0
  61. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node.py +0 -0
  62. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_compound.py +0 -0
  63. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor.py +0 -0
  64. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_compound_proxy.py +0 -0
  65. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_def_base.py +0 -0
  66. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_proxy.py +0 -0
  67. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_task.py +0 -0
  68. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_ctor_wrapper.py +0 -0
  69. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_node_leaf.py +0 -0
  70. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_output.py +0 -0
  71. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_params_ctor.py +0 -0
  72. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_run_ctxt.py +0 -0
  73. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/task_runner.py +0 -0
  74. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/type.py +0 -0
  75. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/type_def.py +0 -0
  76. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/util/__init__.py +0 -0
  77. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/util/__main__.py +0 -0
  78. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/util/cmds/__init__.py +0 -0
  79. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/util/cmds/cmd_schema.py +0 -0
  80. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow/mgr/util/util.py +0 -0
  81. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/SOURCES.txt +0 -0
  82. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/dependency_links.txt +0 -0
  83. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/entry_points.txt +0 -0
  84. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/requires.txt +0 -0
  85. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/src/dv_flow_mgr.egg-info/top_level.txt +0 -0
  86. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/examples/example1/example1.flow +0 -0
  87. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/system/test_depends.py +0 -0
  88. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/system/test_pkg_discovery.py +0 -0
  89. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/system/test_stdlib.py +0 -0
  90. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/__init__.py +0 -0
  91. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1/files1/file1_1.sv +0 -0
  92. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1/files1/file1_2.sv +0 -0
  93. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1/files2/file2_1.sv +0 -0
  94. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1/files2/file2_2.sv +0 -0
  95. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1/flow.dv +0 -0
  96. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1 copy/files1/file1_1.sv +0 -0
  97. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1 copy/files1/file1_2.sv +0 -0
  98. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1 copy/files2/file2_1.sv +0 -0
  99. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1 copy/files2/file2_2.sv +0 -0
  100. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/fileset/test1 copy/test1.dfs +0 -0
  101. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/proj1/proj1.dfs +0 -0
  102. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/proj2/proj2.dfs +0 -0
  103. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/data/proj3/proj3.dfs +0 -0
  104. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_compound_task.py +0 -0
  105. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_data_merge.py +0 -0
  106. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_dataflow.py +0 -0
  107. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_expr_eval.py +0 -0
  108. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_expr_parser.py +0 -0
  109. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_fileset.py +0 -0
  110. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_imports.py +0 -0
  111. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_markers.py +0 -0
  112. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_parse.py +0 -0
  113. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_pyclass.py +0 -0
  114. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_pytask_smoke.py +0 -0
  115. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_smoke copy.sav +0 -0
  116. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_smoke.py +0 -0
  117. {dv_flow_mgr-0.0.2.14163613545a1 → dv_flow_mgr-0.0.2.14180123344a1}/tests/unit/test_stdlib.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.2.14163613545a1
3
+ Version: 0.0.2.14180123344a1
4
4
  Summary: DV Flow Manager is a build system for silicon design
5
5
  Author-email: Matthew Ballance <matt.ballance@gmail.com>
6
6
  License: Apache License
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "dv-flow-mgr"
8
- version = "0.0.2.14163613545a1"
8
+ version = "0.0.2.14180123344a1"
9
9
  dependencies = [
10
10
  'jq',
11
11
  'pydantic',
@@ -55,6 +55,9 @@ def get_parser():
55
55
  run_parser.add_argument("-j",
56
56
  help="Specifies degree of parallelism. Uses all cores by default",
57
57
  type=int, default=-1)
58
+ run_parser.add_argument("-c", "--clean",
59
+ action="store_true",
60
+ help="Cleans the rundir before running")
58
61
  run_parser.set_defaults(func=CmdRun())
59
62
 
60
63
  show_parser = subparsers.add_parser('show',
@@ -77,6 +77,12 @@ class CmdRun(object):
77
77
  # TODO: allow user to specify run root -- maybe relative to some fixed directory?
78
78
  rundir = os.path.join(pkg._basedir, "rundir")
79
79
 
80
+ if args.clean:
81
+ print("Note: Cleaning rundir %s" % rundir)
82
+ if os.path.exists(rundir):
83
+ os.rmdir(rundir)
84
+ os.makedirs(rundir)
85
+
80
86
  builder = TaskGraphBuilder(root_pkg=pkg, rundir=rundir)
81
87
  runner = TaskSetRunner(rundir)
82
88
 
@@ -49,13 +49,31 @@ class PassthroughE(enum.Enum):
49
49
  All = "all"
50
50
  Unused = "unused"
51
51
 
52
-
53
52
  class StrategyDef(BaseModel):
54
53
  chain: Union[bool, None] = dc.Field(default=None)
55
54
  matrix : Union[Dict[str,List[Any]],None] = dc.Field(
56
55
  default=None,
57
56
  description="Matrix of parameter values to explore")
58
57
 
58
+ class TaskExecDef(BaseModel):
59
+ pytask : Union[str, None] = dc.Field(
60
+ default=None,
61
+ description="Python method to execute to implement this task")
62
+ pydep : Union[str, None] = dc.Field(
63
+ default=None,
64
+ description="Python method to check up-to-date status for this task")
65
+
66
+ class TasksBuilder(BaseModel):
67
+ # TODO: control how much data this task is provided?
68
+ pydef : Union[str, None] = dc.Field(
69
+ default=None,
70
+ description="Python method to build the subgraph")
71
+
72
+ class Tasks(BaseModel):
73
+ tasks: Union[List['TaskDef'], TasksBuilder] = dc.Field(
74
+ default_factory=list,
75
+ description="Sub-tasks")
76
+
59
77
  class TaskDef(BaseModel):
60
78
  """Holds definition information (ie the YAML view) for a task"""
61
79
  name : str = dc.Field(
@@ -73,7 +91,7 @@ class TaskDef(BaseModel):
73
91
  description="Python method to execute to implement this task")
74
92
  strategy : StrategyDef = dc.Field(
75
93
  default=None)
76
- tasks: List['TaskDef'] = dc.Field(
94
+ tasks: Union[List['TaskDef'], TasksBuilder] = dc.Field(
77
95
  default_factory=list,
78
96
  description="Sub-tasks")
79
97
  desc : str = dc.Field(
@@ -73,13 +73,23 @@ class TaskNodeCtorCompound(TaskNodeCtor):
73
73
  # Need to get the parent name
74
74
  needs = []
75
75
  for n in t.needs:
76
- need_name = "%s.%s" % (builder.package().name, n)
77
- task = builder.findTask(n)
78
- if task is None:
76
+ # 'n' is the dependency as specified by the user
77
+ # Need to perform a search
78
+ # - Look locally inside the compound task (pkg.compound.name)
79
+ # - Look for the fully-qualified task name
80
+ # - Look for the task name in the package
81
+
82
+ names = []
83
+ for pref in (builder.get_name_prefix((), "", builder.package().name)):
84
+ need_name = n if pref == "" else ("%s.%s" % (pref, n))
85
+ names.append(need_name)
79
86
  task = builder.findTask(need_name)
80
87
 
88
+ if task is not None:
89
+ break
90
+
81
91
  if task is None:
82
- raise Exception("Failed to find task %s (%s)" % (n, need_name))
92
+ raise Exception("Failed to find task %s (searched %s)" % (n, str(names)))
83
93
  self._log.debug("Add %s as dependency of %s" % (
84
94
  task.name, t.name
85
95
  ))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.2.14163613545a1
3
+ Version: 0.0.2.14180123344a1
4
4
  Summary: DV Flow Manager is a build system for silicon design
5
5
  Author-email: Matthew Ballance <matt.ballance@gmail.com>
6
6
  License: Apache License