dv-flow-mgr 1.0.0.14457729129a1__tar.gz → 1.0.0.14473683177a1__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 (139) hide show
  1. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/PKG-INFO +1 -1
  2. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/pyproject.toml +1 -1
  3. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/__main__.py +6 -1
  4. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/cmds/cmd_graph.py +9 -1
  5. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/cmds/cmd_run.py +7 -1
  6. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_graph_builder.py +9 -6
  7. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/PKG-INFO +1 -1
  8. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_compound_task.py +57 -0
  9. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_graph.py +1 -1
  10. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/.env +0 -0
  11. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/.github/workflows/ci.yml +0 -0
  12. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/.gitignore +0 -0
  13. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/.vscode/settings.json +0 -0
  14. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/LICENSE +0 -0
  15. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/README.md +0 -0
  16. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/ChangeLog.md +0 -0
  17. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/KeyArchitecture.md +0 -0
  18. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Makefile +0 -0
  19. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Notes.md +0 -0
  20. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Roadmap.md +0 -0
  21. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/RundirLayout.md +0 -0
  22. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Stages.md +0 -0
  23. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Steps.md +0 -0
  24. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Tasks.md +0 -0
  25. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/TypesAndDefs.md +0 -0
  26. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/Usecases.md +0 -0
  27. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/cmdref.rst +0 -0
  28. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/conf.py +0 -0
  29. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/index.rst +0 -0
  30. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/pytask_api.rst +0 -0
  31. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/docs/quickstart.rst +0 -0
  32. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/fwperiph_dma.pss +0 -0
  33. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/ivpm.yaml +0 -0
  34. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/setup.cfg +0 -0
  35. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/__init__.py +0 -0
  36. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/cmds/cmd_show.py +0 -0
  37. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/cond_def.py +0 -0
  38. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/config.py +0 -0
  39. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/config_def.py +0 -0
  40. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/eval_jq.py +0 -0
  41. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/exec_callable.py +0 -0
  42. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/expr_eval.py +0 -0
  43. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/expr_parser.py +0 -0
  44. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/ext_rgy.py +0 -0
  45. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/extend_def.py +0 -0
  46. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/fileset.py +0 -0
  47. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/fragment_def.py +0 -0
  48. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/listener_list.py +0 -0
  49. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/need_def.py +0 -0
  50. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/null_callable.py +0 -0
  51. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/out +0 -0
  52. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/package.py +0 -0
  53. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/package_def.py +0 -0
  54. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/package_import_spec.py +0 -0
  55. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/package_loader.py +0 -0
  56. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/param.py +0 -0
  57. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/param_def.py +0 -0
  58. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/param_ref_eval.py +0 -0
  59. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/parser.out +0 -0
  60. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/parsetab.py +0 -0
  61. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/pytask_callable.py +0 -0
  62. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/root_package.py +0 -0
  63. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/share/flow.json +0 -0
  64. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/shell_callable.py +0 -0
  65. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/srcinfo.py +0 -0
  66. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/create_file.py +0 -0
  67. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/exec.py +0 -0
  68. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/fileset.py +0 -0
  69. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/flow.dv +0 -0
  70. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/message.py +0 -0
  71. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/std/task_null.py +0 -0
  72. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task.py +0 -0
  73. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_data.py +0 -0
  74. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_def.py +0 -0
  75. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_graph_dot_writer.py +0 -0
  76. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_listener_log.py +0 -0
  77. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node.py +0 -0
  78. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_compound.py +0 -0
  79. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor.py +0 -0
  80. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_compound.py +0 -0
  81. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_compound_proxy.py +0 -0
  82. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_def_base.py +0 -0
  83. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_proxy.py +0 -0
  84. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_task.py +0 -0
  85. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_ctor_wrapper.py +0 -0
  86. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_node_leaf.py +0 -0
  87. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_output.py +0 -0
  88. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_params_ctor.py +0 -0
  89. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_run_ctxt.py +0 -0
  90. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/task_runner.py +0 -0
  91. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/type.py +0 -0
  92. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/type_def.py +0 -0
  93. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/util/__init__.py +0 -0
  94. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/util/__main__.py +0 -0
  95. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/util/cmds/__init__.py +0 -0
  96. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/util/cmds/cmd_schema.py +0 -0
  97. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/util/util.py +0 -0
  98. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow/mgr/yaml_srcinfo_loader.py +0 -0
  99. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/SOURCES.txt +0 -0
  100. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/dependency_links.txt +0 -0
  101. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/entry_points.txt +0 -0
  102. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/requires.txt +0 -0
  103. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/src/dv_flow_mgr.egg-info/top_level.txt +0 -0
  104. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/examples/example1/example1.flow +0 -0
  105. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/system/test_depends.py +0 -0
  106. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/system/test_pkg_discovery.py +0 -0
  107. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/system/test_stdlib.py +0 -0
  108. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/__init__.py +0 -0
  109. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1/files1/file1_1.sv +0 -0
  110. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1/files1/file1_2.sv +0 -0
  111. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1/files2/file2_1.sv +0 -0
  112. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1/files2/file2_2.sv +0 -0
  113. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1/flow.dv +0 -0
  114. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1 copy/files1/file1_1.sv +0 -0
  115. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1 copy/files1/file1_2.sv +0 -0
  116. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1 copy/files2/file2_1.sv +0 -0
  117. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1 copy/files2/file2_2.sv +0 -0
  118. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/fileset/test1 copy/test1.dfs +0 -0
  119. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/proj1/proj1.dfs +0 -0
  120. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/proj2/proj2.dfs +0 -0
  121. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/data/proj3/proj3.dfs +0 -0
  122. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/marker_collector.py +0 -0
  123. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/task_listener_test.py +0 -0
  124. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_data_merge.py +0 -0
  125. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_dataflow.py +0 -0
  126. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_deps.py +0 -0
  127. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_expr_eval.py +0 -0
  128. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_expr_parser.py +0 -0
  129. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_fileset.py +0 -0
  130. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_imports.py +0 -0
  131. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_load_package.py +0 -0
  132. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_markers.py +0 -0
  133. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_parse.py +0 -0
  134. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_pyclass.py +0 -0
  135. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_pyexec.py +0 -0
  136. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_pytask_smoke.py +0 -0
  137. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_smoke copy.sav +0 -0
  138. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/tests/unit/test_smoke.py +0 -0
  139. {dv_flow_mgr-1.0.0.14457729129a1 → dv_flow_mgr-1.0.0.14473683177a1}/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: 1.0.0.14457729129a1
3
+ Version: 1.0.0.14473683177a1
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 = "1.0.0.14457729129a1"
8
+ version = "1.0.0.14473683177a1"
9
9
  dependencies = [
10
10
  'jq',
11
11
  'pydantic',
@@ -21,6 +21,7 @@
21
21
  #****************************************************************************
22
22
  import argparse
23
23
  import logging
24
+ import os
24
25
  from .cmds.cmd_graph import CmdGraph
25
26
  from .cmds.cmd_run import CmdRun
26
27
  from .cmds.cmd_show import CmdShow
@@ -45,6 +46,8 @@ def get_parser():
45
46
  graph_parser.add_argument("task", nargs="?", help="task to graph")
46
47
  graph_parser.add_argument("-f", "--format", help="Specifies the output format",
47
48
  default="dot")
49
+ graph_parser.add_argument("--root",
50
+ help="Specifies the root directory for the flow")
48
51
  graph_parser.add_argument("-o", "--output",
49
52
  help="Specifies the output file",
50
53
  default="-")
@@ -55,9 +58,11 @@ def get_parser():
55
58
  run_parser.add_argument("-j",
56
59
  help="Specifies degree of parallelism. Uses all cores by default",
57
60
  type=int, default=-1)
58
- run_parser.add_argument("-c", "--clean",
61
+ run_parser.add_argument("--clean",
59
62
  action="store_true",
60
63
  help="Cleans the rundir before running")
64
+ run_parser.add_argument("--root",
65
+ help="Specifies the root directory for the flow")
61
66
  run_parser.set_defaults(func=CmdRun())
62
67
 
63
68
  show_parser = subparsers.add_parser('show',
@@ -35,8 +35,16 @@ class CmdGraph(object):
35
35
 
36
36
  def __call__(self, args):
37
37
 
38
+ if args.root is not None:
39
+ rootdir = args.root
40
+ elif "DV_FLOW_ROOT" in os.environ.keys():
41
+ rootdir = os.environ["DFM_ROOT"]
42
+ else:
43
+ rootdir = os.getcwd()
44
+
45
+
38
46
  # First, find the project we're working with
39
- pkg = loadProjPkgDef(os.getcwd())
47
+ pkg = loadProjPkgDef(rootdir)
40
48
 
41
49
  if pkg is None:
42
50
  raise Exception("Failed to find a 'flow.dv' file that defines a package in %s or its parent directories" % os.getcwd())
@@ -33,10 +33,16 @@ class CmdRun(object):
33
33
  _log : ClassVar = logging.getLogger("CmdRun")
34
34
 
35
35
  def __call__(self, args):
36
+ if args.root is not None:
37
+ rootdir = args.root
38
+ elif "DV_FLOW_ROOT" in os.environ.keys():
39
+ rootdir = os.environ["DFM_ROOT"]
40
+ else:
41
+ rootdir = os.getcwd()
36
42
 
37
43
  # First, find the project we're working with
38
44
  listener = TaskListenerLog()
39
- pkg = loadProjPkgDef(os.getcwd(), listener=listener)
45
+ pkg = loadProjPkgDef(rootdir, listener=listener)
40
46
 
41
47
  if pkg is None:
42
48
  raise Exception("Failed to find a 'flow.dv' file that defines a package in %s or its parent directories" % os.getcwd())
@@ -389,9 +389,9 @@ class TaskGraphBuilder(object):
389
389
  self._log.debug("--> processing needs (%s) (%d)" % (task.name, len(task.needs)))
390
390
  for need in task.needs:
391
391
  need_n = self._getTaskNode(need.name)
392
- self._log.debug("Add need %s" % need_n.name)
393
392
  if need_n is None:
394
393
  raise Exception("Failed to find need %s" % need.name)
394
+ self._log.debug("Add need %s with %d dependencies" % (need_n.name, len(need_n.needs)))
395
395
  node.input.needs.append((need_n, False))
396
396
  # node.needs.append((need_n, False))
397
397
  self._log.debug("<-- processing needs")
@@ -415,10 +415,13 @@ class TaskGraphBuilder(object):
415
415
  self._log.debug("Process node %s" % t.name)
416
416
 
417
417
  referenced = None
418
- for tt in task.subtasks:
419
- if tt in t.needs:
420
- referenced = tt
421
- break
418
+ for tt in node.tasks:
419
+ self._log.debug(" Checking task %s" % tt.name)
420
+ for tnn,_ in tt.needs:
421
+ self._log.debug(" Check against need %s" % tnn.name)
422
+ if tn == tnn:
423
+ referenced = tnn
424
+ break
422
425
 
423
426
  refs_internal = None
424
427
  # Assess how this task is connected to others in the compound node
@@ -440,7 +443,7 @@ class TaskGraphBuilder(object):
440
443
  self._log.debug("Node %s references internal node %s" % (t.name, refs_internal.name))
441
444
 
442
445
  if referenced is not None:
443
- self._log.debug("Node %s has internal needs" % tn.name)
446
+ self._log.debug("Node %s has internal needs: %s" % (tn.name, referenced.name))
444
447
  else:
445
448
  # Add this task as a dependency of the output
446
449
  # node (the root one)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.0.0.14457729129a1
3
+ Version: 1.0.0.14473683177a1
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
@@ -376,3 +376,60 @@ package:
376
376
  assert os.path.isfile(os.path.join(rundir, "rundir/foo.entry/foo.entry.mytask/mytask.txt"))
377
377
  content = open(os.path.join(rundir, "rundir/foo.entry/foo.entry.mytask/mytask.txt"), "r").read().strip()
378
378
  assert content == "inputs: 1"
379
+
380
+ def test_compound_input_auto_bind_chain(tmpdir):
381
+ flow_dv = """
382
+ package:
383
+ name: foo
384
+
385
+ tasks:
386
+ - name: TopLevelTask
387
+ uses: std.CreateFile
388
+ with:
389
+ filename: TopLevelTask.txt
390
+ content: "TopLevelTask.txt"
391
+
392
+ - name: entry
393
+ needs: [TopLevelTask]
394
+ body:
395
+ - name: mytask1
396
+ passthrough: all
397
+ - name: mytask2
398
+ passthrough: all
399
+ needs: [mytask1]
400
+ - name: mytask3
401
+ passthrough: all
402
+ needs: [mytask2]
403
+ - name: mytask4
404
+ passthrough: all
405
+ needs: [mytask3]
406
+ """
407
+
408
+ rundir = os.path.join(tmpdir)
409
+ with open(os.path.join(rundir, "flow.dv"), "w") as fp:
410
+ fp.write(flow_dv)
411
+
412
+ marker_collector = MarkerCollector()
413
+ pkg_def = PackageLoader(
414
+ marker_listeners=[marker_collector]).load(
415
+ os.path.join(rundir, "flow.dv"))
416
+ assert len(marker_collector.markers) == 0
417
+
418
+ builder = TaskGraphBuilder(
419
+ root_pkg=pkg_def,
420
+ rundir=os.path.join(rundir, "rundir"))
421
+ runner = TaskSetRunner(rundir=os.path.join(rundir, "rundir"))
422
+
423
+ t1 = builder.mkTaskNode("foo.entry")
424
+
425
+ TaskGraphDotWriter().write(
426
+ t1,
427
+ os.path.join(rundir, "graph.dot"))
428
+
429
+ output = asyncio.run(runner.run(t1))
430
+
431
+ assert runner.status == 0
432
+ assert len(output.output) == 1
433
+ assert output.output[0].src == 'foo.TopLevelTask'
434
+ assert output.output[0].type == 'std.FileSet'
435
+ assert len(output.output[0].files) == 1
@@ -195,6 +195,6 @@ package:
195
195
  assert runner.status == 0
196
196
  for out in output.output:
197
197
  print("Out: %s" % str(out))
198
- assert len(output.output) == 1
198
+ assert len(output.output) == 2
199
199
  assert output.output[0].type == 'std.FileSet'
200
200
  assert len(output.output[0].files) == 1