dv-flow-mgr 1.0.0.14420805951a1__tar.gz → 1.0.0.14457729129a1__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/.env +1 -0
  2. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/.gitignore +0 -1
  3. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/PKG-INFO +1 -1
  4. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/pyproject.toml +1 -1
  5. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_graph_builder.py +7 -6
  6. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_compound.py +8 -3
  7. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/PKG-INFO +1 -1
  8. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/SOURCES.txt +1 -0
  9. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_compound_task.py +101 -0
  10. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_graph.py +1 -1
  11. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/.github/workflows/ci.yml +0 -0
  12. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/.vscode/settings.json +0 -0
  13. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/LICENSE +0 -0
  14. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/README.md +0 -0
  15. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/ChangeLog.md +0 -0
  16. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/KeyArchitecture.md +0 -0
  17. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Makefile +0 -0
  18. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Notes.md +0 -0
  19. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Roadmap.md +0 -0
  20. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/RundirLayout.md +0 -0
  21. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Stages.md +0 -0
  22. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Steps.md +0 -0
  23. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Tasks.md +0 -0
  24. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/TypesAndDefs.md +0 -0
  25. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/Usecases.md +0 -0
  26. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/cmdref.rst +0 -0
  27. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/conf.py +0 -0
  28. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/index.rst +0 -0
  29. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/pytask_api.rst +0 -0
  30. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/docs/quickstart.rst +0 -0
  31. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/fwperiph_dma.pss +0 -0
  32. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/ivpm.yaml +0 -0
  33. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/setup.cfg +0 -0
  34. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/__init__.py +0 -0
  35. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/__main__.py +0 -0
  36. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/cmds/cmd_graph.py +0 -0
  37. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/cmds/cmd_run.py +0 -0
  38. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/cmds/cmd_show.py +0 -0
  39. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/cond_def.py +0 -0
  40. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/config.py +0 -0
  41. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/config_def.py +0 -0
  42. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/eval_jq.py +0 -0
  43. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/exec_callable.py +0 -0
  44. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/expr_eval.py +0 -0
  45. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/expr_parser.py +0 -0
  46. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/ext_rgy.py +0 -0
  47. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/extend_def.py +0 -0
  48. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/fileset.py +0 -0
  49. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/fragment_def.py +0 -0
  50. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/listener_list.py +0 -0
  51. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/need_def.py +0 -0
  52. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/null_callable.py +0 -0
  53. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/out +0 -0
  54. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/package.py +0 -0
  55. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/package_def.py +0 -0
  56. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/package_import_spec.py +0 -0
  57. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/package_loader.py +0 -0
  58. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/param.py +0 -0
  59. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/param_def.py +0 -0
  60. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/param_ref_eval.py +0 -0
  61. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/parser.out +0 -0
  62. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/parsetab.py +0 -0
  63. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/pytask_callable.py +0 -0
  64. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/root_package.py +0 -0
  65. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/share/flow.json +0 -0
  66. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/shell_callable.py +0 -0
  67. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/srcinfo.py +0 -0
  68. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/create_file.py +0 -0
  69. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/exec.py +0 -0
  70. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/fileset.py +0 -0
  71. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/flow.dv +0 -0
  72. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/message.py +0 -0
  73. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/std/task_null.py +0 -0
  74. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task.py +0 -0
  75. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_data.py +0 -0
  76. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_def.py +0 -0
  77. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_graph_dot_writer.py +0 -0
  78. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_listener_log.py +0 -0
  79. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node.py +0 -0
  80. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor.py +0 -0
  81. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_compound.py +0 -0
  82. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_compound_proxy.py +0 -0
  83. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_def_base.py +0 -0
  84. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_proxy.py +0 -0
  85. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_task.py +0 -0
  86. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_ctor_wrapper.py +0 -0
  87. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_node_leaf.py +0 -0
  88. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_output.py +0 -0
  89. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_params_ctor.py +0 -0
  90. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_run_ctxt.py +0 -0
  91. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/task_runner.py +0 -0
  92. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/type.py +0 -0
  93. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/type_def.py +0 -0
  94. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/util/__init__.py +0 -0
  95. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/util/__main__.py +0 -0
  96. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/util/cmds/__init__.py +0 -0
  97. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/util/cmds/cmd_schema.py +0 -0
  98. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/util/util.py +0 -0
  99. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow/mgr/yaml_srcinfo_loader.py +0 -0
  100. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/dependency_links.txt +0 -0
  101. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/entry_points.txt +0 -0
  102. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/requires.txt +0 -0
  103. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/src/dv_flow_mgr.egg-info/top_level.txt +0 -0
  104. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/examples/example1/example1.flow +0 -0
  105. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/system/test_depends.py +0 -0
  106. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/system/test_pkg_discovery.py +0 -0
  107. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/system/test_stdlib.py +0 -0
  108. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/__init__.py +0 -0
  109. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1/files1/file1_1.sv +0 -0
  110. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1/files1/file1_2.sv +0 -0
  111. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1/files2/file2_1.sv +0 -0
  112. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1/files2/file2_2.sv +0 -0
  113. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1/flow.dv +0 -0
  114. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1 copy/files1/file1_1.sv +0 -0
  115. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1 copy/files1/file1_2.sv +0 -0
  116. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1 copy/files2/file2_1.sv +0 -0
  117. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1 copy/files2/file2_2.sv +0 -0
  118. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/fileset/test1 copy/test1.dfs +0 -0
  119. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/proj1/proj1.dfs +0 -0
  120. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/proj2/proj2.dfs +0 -0
  121. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/data/proj3/proj3.dfs +0 -0
  122. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/marker_collector.py +0 -0
  123. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/task_listener_test.py +0 -0
  124. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_data_merge.py +0 -0
  125. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_dataflow.py +0 -0
  126. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_deps.py +0 -0
  127. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_expr_eval.py +0 -0
  128. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_expr_parser.py +0 -0
  129. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_fileset.py +0 -0
  130. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_imports.py +0 -0
  131. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_load_package.py +0 -0
  132. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_markers.py +0 -0
  133. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_parse.py +0 -0
  134. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_pyclass.py +0 -0
  135. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_pyexec.py +0 -0
  136. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_pytask_smoke.py +0 -0
  137. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_smoke copy.sav +0 -0
  138. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_smoke.py +0 -0
  139. {dv_flow_mgr-1.0.0.14420805951a1 → dv_flow_mgr-1.0.0.14457729129a1}/tests/unit/test_stdlib.py +0 -0
@@ -0,0 +1 @@
1
+ PYTHONPATH=./src
@@ -122,7 +122,6 @@ celerybeat.pid
122
122
  *.sage.py
123
123
 
124
124
  # Environments
125
- .env
126
125
  .venv
127
126
  env/
128
127
  venv/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.0.0.14420805951a1
3
+ Version: 1.0.0.14457729129a1
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.14420805951a1"
8
+ version = "1.0.0.14457729129a1"
9
9
  dependencies = [
10
10
  'jq',
11
11
  'pydantic',
@@ -235,7 +235,7 @@ class TaskGraphBuilder(object):
235
235
  else:
236
236
  raise Exception("Task %s parameters do not include %s" % (task.name, k))
237
237
 
238
- self._log.debug("<-- mkTaskNode: %s" % task_t)
238
+ self._log.debug("<-- mkTaskNode: %s (%d needs)" % (task_t, len(ret.needs)))
239
239
  return ret
240
240
 
241
241
  def _findTask(self, pkg, name):
@@ -386,13 +386,14 @@ class TaskGraphBuilder(object):
386
386
  node.input.rundir = self.get_rundir()
387
387
  self.leave_rundir()
388
388
 
389
- self._log.debug("--> processing needs (%s)" % task.name)
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
392
  self._log.debug("Add need %s" % need_n.name)
393
393
  if need_n is None:
394
394
  raise Exception("Failed to find need %s" % need.name)
395
395
  node.input.needs.append((need_n, False))
396
+ # node.needs.append((need_n, False))
396
397
  self._log.debug("<-- processing needs")
397
398
 
398
399
  # TODO: handle strategy
@@ -439,12 +440,12 @@ class TaskGraphBuilder(object):
439
440
  self._log.debug("Node %s references internal node %s" % (t.name, refs_internal.name))
440
441
 
441
442
  if referenced is not None:
443
+ self._log.debug("Node %s has internal needs" % tn.name)
444
+ else:
442
445
  # Add this task as a dependency of the output
443
446
  # node (the root one)
444
447
  self._log.debug("Add node %s as a top-level dependency" % tn.name)
445
448
  node.needs.append((tn, False))
446
- else:
447
- self._log.debug("Node %s has internal needs" % tn.name)
448
449
 
449
450
  if task.rundir == RundirE.Unique:
450
451
  self.leave_rundir()
@@ -452,7 +453,7 @@ class TaskGraphBuilder(object):
452
453
  return node
453
454
 
454
455
  def _gatherNeeds(self, task_t, node):
455
- self._log.debug("--> _gatherNeeds %s" % task_t.name)
456
+ self._log.debug("--> _gatherNeeds %s (%d)" % (task_t.name, len(task_t.needs)))
456
457
  if task_t.uses is not None:
457
458
  self._gatherNeeds(task_t.uses, node)
458
459
 
@@ -461,7 +462,7 @@ class TaskGraphBuilder(object):
461
462
  if need_n is None:
462
463
  raise Exception("Failed to find need %s" % need.name)
463
464
  node.needs.append((need_n, False))
464
- self._log.debug("<-- _gatherNeeds %s" % task_t.name)
465
+ self._log.debug("<-- _gatherNeeds %s (%d)" % (task_t.name, len(node.needs)))
465
466
 
466
467
  def error(self, msg, loc=None):
467
468
  if loc is not None:
@@ -21,7 +21,7 @@
21
21
  #****************************************************************************
22
22
  import dataclasses as dc
23
23
  from pydantic import BaseModel
24
- from .task_def import ConsumesE
24
+ from .task_def import ConsumesE, PassthroughE, PassthroughE, PassthroughE, PassthroughE
25
25
  from .task_node import TaskNode
26
26
  from .task_node_leaf import TaskNodeLeaf
27
27
  from .task_data import TaskDataResult, TaskDataInput, TaskDataOutput
@@ -44,7 +44,9 @@ class TaskNodeCompound(TaskNode):
44
44
  self.input = TaskNodeLeaf(
45
45
  name=self.name + ".in",
46
46
  srcdir=self.srcdir,
47
- params=NullParams())
47
+ params=NullParams(),
48
+ consumes=ConsumesE.No,
49
+ passthrough=PassthroughE.All)
48
50
  self.input.task = null_run
49
51
  self.tasks.append(self.input)
50
52
 
@@ -55,7 +57,7 @@ class TaskNodeCompound(TaskNode):
55
57
  return self.input
56
58
 
57
59
  async def do_run(self,
58
- runner : TaskRunner,
60
+ ctxt : TaskRunner,
59
61
  rundir,
60
62
  memento : Any=None) -> TaskDataResult:
61
63
  self._log.debug("Compound task %s (%d)" % (self.name, len(self.needs)))
@@ -90,6 +92,9 @@ class TaskNodeCompound(TaskNode):
90
92
  changed=changed,
91
93
  output=output,
92
94
  dep_m={})
95
+
96
+ # if self.save_exec_data:
97
+ # self._save_exec_data(rundir, ctxt, self.input.input)
93
98
 
94
99
  return 0
95
100
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.0.0.14420805951a1
3
+ Version: 1.0.0.14457729129a1
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
@@ -275,3 +275,104 @@ package:
275
275
  assert output.output[0].src == 'foo.entry.glob_txt'
276
276
  assert output.output[0].type == 'std.FileSet'
277
277
  assert len(output.output[0].files) == 1
278
+
279
+ def test_compound_input_auto_bind(tmpdir):
280
+ flow_dv = """
281
+ package:
282
+ name: foo
283
+
284
+ tasks:
285
+ - name: TopLevelTask
286
+ uses: std.CreateFile
287
+ with:
288
+ filename: TopLevelTask.txt
289
+ content: "TopLevelTask.txt"
290
+
291
+ - name: entry
292
+ needs: [TopLevelTask]
293
+ body:
294
+ - name: mytask
295
+ passthrough: all
296
+ """
297
+
298
+ rundir = os.path.join(tmpdir)
299
+ with open(os.path.join(rundir, "flow.dv"), "w") as fp:
300
+ fp.write(flow_dv)
301
+
302
+ marker_collector = MarkerCollector()
303
+ pkg_def = PackageLoader(
304
+ marker_listeners=[marker_collector]).load(
305
+ os.path.join(rundir, "flow.dv"))
306
+ assert len(marker_collector.markers) == 0
307
+
308
+ builder = TaskGraphBuilder(
309
+ root_pkg=pkg_def,
310
+ rundir=os.path.join(rundir, "rundir"))
311
+ runner = TaskSetRunner(rundir=os.path.join(rundir, "rundir"))
312
+
313
+ t1 = builder.mkTaskNode("foo.entry")
314
+
315
+ TaskGraphDotWriter().write(
316
+ t1,
317
+ os.path.join(rundir, "graph.dot"))
318
+
319
+ output = asyncio.run(runner.run(t1))
320
+
321
+ assert runner.status == 0
322
+ assert len(output.output) == 1
323
+ assert output.output[0].src == 'foo.TopLevelTask'
324
+ assert output.output[0].type == 'std.FileSet'
325
+ assert len(output.output[0].files) == 1
326
+
327
+ def test_compound_input_auto_bind_consumes_all(tmpdir):
328
+ flow_dv = """
329
+ package:
330
+ name: foo
331
+
332
+ tasks:
333
+ - name: TopLevelTask
334
+ uses: std.CreateFile
335
+ with:
336
+ filename: TopLevelTask.txt
337
+ content: "TopLevelTask.txt"
338
+
339
+ - name: entry
340
+ needs: [TopLevelTask]
341
+ body:
342
+ - name: mytask
343
+ shell: pytask
344
+ run: |
345
+ with open(os.path.join(input.rundir, "mytask.txt"), "w") as fp:
346
+ fp.write("inputs: %d" % len(input.inputs))
347
+ """
348
+
349
+ rundir = os.path.join(tmpdir)
350
+ with open(os.path.join(rundir, "flow.dv"), "w") as fp:
351
+ fp.write(flow_dv)
352
+
353
+ marker_collector = MarkerCollector()
354
+ pkg_def = PackageLoader(
355
+ marker_listeners=[marker_collector]).load(
356
+ os.path.join(rundir, "flow.dv"))
357
+ assert len(marker_collector.markers) == 0
358
+
359
+ builder = TaskGraphBuilder(
360
+ root_pkg=pkg_def,
361
+ rundir=os.path.join(rundir, "rundir"))
362
+ runner = TaskSetRunner(rundir=os.path.join(rundir, "rundir"))
363
+
364
+ t1 = builder.mkTaskNode("foo.entry")
365
+
366
+ TaskGraphDotWriter().write(
367
+ t1,
368
+ os.path.join(rundir, "graph.dot"))
369
+
370
+ output = asyncio.run(runner.run(t1))
371
+
372
+ assert runner.status == 0
373
+ # No output, since the inputting task consumes all
374
+ assert len(output.output) == 0
375
+
376
+ assert os.path.isfile(os.path.join(rundir, "rundir/foo.entry/foo.entry.mytask/mytask.txt"))
377
+ content = open(os.path.join(rundir, "rundir/foo.entry/foo.entry.mytask/mytask.txt"), "r").read().strip()
378
+ assert content == "inputs: 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) == 2
198
+ assert len(output.output) == 1
199
199
  assert output.output[0].type == 'std.FileSet'
200
200
  assert len(output.output[0].files) == 1