proj-flow 0.20.2__tar.gz → 0.20.3__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 (173) hide show
  1. {proj_flow-0.20.2 → proj_flow-0.20.3}/CHANGELOG.rst +8 -0
  2. {proj_flow-0.20.2 → proj_flow-0.20.3}/PKG-INFO +1 -1
  3. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/__init__.py +1 -1
  4. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/env.py +4 -0
  5. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/matrix.py +23 -0
  6. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/github/cli.py +5 -0
  7. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/flow/configs.py +16 -1
  8. {proj_flow-0.20.2 → proj_flow-0.20.3}/.flow/config.yaml +0 -0
  9. {proj_flow-0.20.2 → proj_flow-0.20.3}/.gitignore +0 -0
  10. {proj_flow-0.20.2 → proj_flow-0.20.3}/.readthedocs.yaml +0 -0
  11. {proj_flow-0.20.2 → proj_flow-0.20.3}/LICENSE +0 -0
  12. {proj_flow-0.20.2 → proj_flow-0.20.3}/README.md +0 -0
  13. {proj_flow-0.20.2 → proj_flow-0.20.3}/ROADMAP.md +0 -0
  14. {proj_flow-0.20.2 → proj_flow-0.20.3}/actions/bootstrap/action.yml +0 -0
  15. {proj_flow-0.20.2 → proj_flow-0.20.3}/actions/bootstrap/version.py +0 -0
  16. {proj_flow-0.20.2 → proj_flow-0.20.3}/pyproject.toml +0 -0
  17. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/__main__.py +0 -0
  18. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/__init__.py +0 -0
  19. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/arg.py +0 -0
  20. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/completers.py +0 -0
  21. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/ctx.py +0 -0
  22. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/init.py +0 -0
  23. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/makefile.py +0 -0
  24. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/release.py +0 -0
  25. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/api/step.py +0 -0
  26. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/__cmake_version__.py +0 -0
  27. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/__init__.py +0 -0
  28. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/cmd.py +0 -0
  29. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/inspect.py +0 -0
  30. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/name_list.py +0 -0
  31. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/plugins.py +0 -0
  32. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/registry.py +0 -0
  33. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/base/uname.py +0 -0
  34. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/cli/__init__.py +0 -0
  35. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/cli/argument.py +0 -0
  36. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/cli/finder.py +0 -0
  37. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/dependency.py +0 -0
  38. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/__init__.py +0 -0
  39. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
  40. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
  41. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
  42. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/cmake/presets.py +0 -0
  43. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
  44. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
  45. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
  46. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
  47. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/github/__init__.py +0 -0
  48. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/github/hosting.py +0 -0
  49. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/github/publishing.py +0 -0
  50. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/github/switches.py +0 -0
  51. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/markdown_changelog.py +0 -0
  52. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/python/__init__.py +0 -0
  53. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/python/rtdocs.py +0 -0
  54. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/python/steps.py +0 -0
  55. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/python/version.py +0 -0
  56. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/re_structured_changelog.py +0 -0
  57. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/sign/__init__.py +0 -0
  58. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/sign/api.py +0 -0
  59. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/sign/win32.py +0 -0
  60. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/store.py +0 -0
  61. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/tools/__init__.py +0 -0
  62. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/tools/pragma_once.py +0 -0
  63. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/tools/run_linter.py +0 -0
  64. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/__init__.py +0 -0
  65. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/base/__init__.py +0 -0
  66. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/base/config.py +0 -0
  67. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/__init__.py +0 -0
  68. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/cmake.py +0 -0
  69. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/depfile.py +0 -0
  70. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/gen.py +0 -0
  71. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/init.py +0 -0
  72. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/root.py +0 -0
  73. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/cli/updater.py +0 -0
  74. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/init/flow_webidl.cmake +0 -0
  75. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/cmake.mustache +0 -0
  76. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/depfile.mustache +0 -0
  77. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/partials/cxx/attribute-decl.mustache +0 -0
  78. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/partials/cxx/in-out.mustache +0 -0
  79. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/partials/cxx/includes.mustache +0 -0
  80. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/partials/cxx/operation-decl.mustache +0 -0
  81. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/templates/partials/cxx/type.mustache +0 -0
  82. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/data/types/cxx.json +0 -0
  83. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/model/__init__.py +0 -0
  84. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/model/ast.py +0 -0
  85. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/model/builders.py +0 -0
  86. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/ext/webidl/registry.py +0 -0
  87. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/flow/__init__.py +0 -0
  88. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/flow/layer.py +0 -0
  89. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/flow/steps.py +0 -0
  90. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/__init__.py +0 -0
  91. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/commit.py +0 -0
  92. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/error.py +0 -0
  93. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/fmt.py +0 -0
  94. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/format.py +0 -0
  95. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/hosting/__init__.py +0 -0
  96. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/hosting/github.py +0 -0
  97. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/msg.py +0 -0
  98. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/release.py +0 -0
  99. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/rich_text/__init__.py +0 -0
  100. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/rich_text/api.py +0 -0
  101. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/rich_text/markdown.py +0 -0
  102. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
  103. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/__init__.py +0 -0
  104. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/base.py +0 -0
  105. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/bootstrap.py +0 -0
  106. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/ext/bug_report.py +0 -0
  107. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/init.py +0 -0
  108. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/list.py +0 -0
  109. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/run.py +0 -0
  110. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/minimal/system.py +0 -0
  111. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/__init__.py +0 -0
  112. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/api.py +0 -0
  113. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/cplusplus/__init__.py +0 -0
  114. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
  115. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
  116. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/cplusplus/project.py +0 -0
  117. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/data.py +0 -0
  118. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/project/interact.py +0 -0
  119. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.clang-format +0 -0
  120. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.flow/config.yml +0 -0
  121. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
  122. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
  123. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
  124. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/.gitignore +0 -0
  125. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
  126. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/flow +0 -0
  127. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base/flow.cmd +0 -0
  128. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/base.json +0 -0
  129. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
  130. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
  131. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
  132. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
  133. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
  134. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
  135. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
  136. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
  137. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
  138. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
  139. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
  140. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
  141. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
  142. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
  143. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
  144. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
  145. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
  146. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
  147. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
  148. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
  149. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
  150. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
  151. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
  152. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/cmake.json +0 -0
  153. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
  154. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
  155. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
  156. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/conan.json +0 -0
  157. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
  158. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
  159. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.auto-release +0 -0
  160. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.basic +0 -0
  161. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
  162. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
  163. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_actions.json +0 -0
  164. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +0 -0
  165. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +0 -0
  166. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
  167. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
  168. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/layers/github_social.json +0 -0
  169. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
  170. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/licenses/MIT.mustache +0 -0
  171. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
  172. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
  173. {proj_flow-0.20.2 → proj_flow-0.20.3}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
@@ -4,6 +4,14 @@ Changelog
4
4
 
5
5
  All notable changes to this project will be documented in this file.
6
6
 
7
+ `0.20.3 <https://github.com/mzdun/proj-flow/compare/v0.20.2...v0.20.3>`_ (2026-01-30)
8
+ =====================================================================================
9
+
10
+ Bug Fixes
11
+ ---------
12
+
13
+ - allow postproc includes (`07ecd17 <https://github.com/mzdun/proj-flow/commit/07ecd1770170ffb90150d1bcf622e625c39d3f50>`_)
14
+
7
15
  `0.20.2 <https://github.com/mzdun/proj-flow/compare/v0.20.1...v0.20.2>`_ (2026-01-21)
8
16
  =====================================================================================
9
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proj-flow
3
- Version: 0.20.2
3
+ Version: 0.20.3
4
4
  Summary: C++ project maintenance, automated
5
5
  Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
6
6
  Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
@@ -6,4 +6,4 @@ The **proj_flow** contains only ``__version__`` to be updated, nothing more.
6
6
  This is in an attempt to make this module easy to load initially.
7
7
  """
8
8
 
9
- __version__ = "0.20.2"
9
+ __version__ = "0.20.3"
@@ -253,6 +253,10 @@ class FlowConfig:
253
253
  def postproc_exclude(self) -> List[dict]:
254
254
  return self.postproc.get("exclude", [])
255
255
 
256
+ @property
257
+ def postproc_include(self) -> List[dict]:
258
+ return self.postproc.get("include", [])
259
+
256
260
  @property
257
261
  def shortcuts(self) -> Dict[str, dict]:
258
262
  return self._cfg.get("shortcuts", {})
@@ -86,6 +86,29 @@ def matches(tested: dict, test: dict) -> bool:
86
86
  return True
87
87
 
88
88
 
89
+ def partially_matches(tested: dict, test: dict) -> bool:
90
+ """
91
+ Checks, if the tested dictionary contains some of the values from test
92
+ dictionary, with non-zero intersection between both dictionaries.
93
+
94
+ :param tested: Dictionary to check
95
+ :param test: Dictionary to check against
96
+
97
+ :returns: `True`, if all keys from `test` are in `tested` and have the same
98
+ values, `False` otherwise.
99
+ """
100
+
101
+ intersection_size = 0
102
+ for key, value in test.items():
103
+ if key not in tested:
104
+ continue
105
+ val = tested.get(key)
106
+ if val != value:
107
+ return False
108
+ intersection_size += 1
109
+ return intersection_size > 0
110
+
111
+
89
112
  def matches_any(tested: dict, tests: List[dict]):
90
113
  """
91
114
  Checks, if the tested dictionary contains all the values from at least one
@@ -32,6 +32,9 @@ def github():
32
32
 
33
33
  @arg.command("github", "matrix")
34
34
  def matrix(
35
+ pretty: typing.Annotated[
36
+ bool, arg.FlagArgument(help="Indent JSON document")
37
+ ],
35
38
  official: typing.Annotated[
36
39
  bool, arg.FlagArgument(help="Cut matrix to release builds only")
37
40
  ],
@@ -60,6 +63,8 @@ def matrix(
60
63
  print(f"matrix={var}", file=github_output)
61
64
  else:
62
65
  print(f"matrix={var}")
66
+ elif pretty:
67
+ json.dump(usable, sys.stdout, indent=2)
63
68
  else:
64
69
  json.dump(usable, sys.stdout)
65
70
 
@@ -9,6 +9,7 @@ using ``-D`` switches.
9
9
 
10
10
 
11
11
  import argparse
12
+ import copy
12
13
  import datetime
13
14
  import os
14
15
  import sys
@@ -152,6 +153,19 @@ def _load_flow_data(rt: env.Runtime):
152
153
  return configs, keys
153
154
 
154
155
 
156
+ def _apply_postproc_includes(config: dict, postproc_include: List[dict]):
157
+ clone = copy.deepcopy(config)
158
+ for ext in postproc_include:
159
+ if not matrix.partially_matches(config, ext):
160
+ continue
161
+
162
+ for key, value in ext.items():
163
+ if key in config:
164
+ continue
165
+ clone[key] = value
166
+ return clone
167
+
168
+
155
169
  class Configs:
156
170
  usable: List[env.Config] = []
157
171
 
@@ -186,8 +200,9 @@ class Configs:
186
200
  )
187
201
 
188
202
  postproc_exclude = rt.postproc_exclude
203
+ postproc_include = rt.postproc_include
189
204
  usable = [
190
- config
205
+ _apply_postproc_includes(config, postproc_include)
191
206
  for config in turned
192
207
  if len(postproc_exclude) == 0
193
208
  or not matrix.matches_any(config, postproc_exclude)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes