cfengine 0.16.2__tar.gz → 0.16.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 (157) hide show
  1. {cfengine-0.16.2 → cfengine-0.16.3}/PKG-INFO +1 -1
  2. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/PKG-INFO +1 -1
  3. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/docs.py +1 -0
  4. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/format.py +8 -0
  5. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/004_comments.expected.cf +13 -0
  6. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/004_comments.input.cf +11 -0
  7. {cfengine-0.16.2 → cfengine-0.16.3}/.github/dependabot.yml +0 -0
  8. {cfengine-0.16.2 → cfengine-0.16.3}/.github/workflows/lint-policy-in-other-repos.yml +0 -0
  9. {cfengine-0.16.2 → cfengine-0.16.3}/.github/workflows/make-check.yml +0 -0
  10. {cfengine-0.16.2 → cfengine-0.16.3}/.github/workflows/pypi-publish.yml +0 -0
  11. {cfengine-0.16.2 → cfengine-0.16.3}/.github/workflows/stale.yml +0 -0
  12. {cfengine-0.16.2 → cfengine-0.16.3}/.github/workflows/update-syntax-description.yml +0 -0
  13. {cfengine-0.16.2 → cfengine-0.16.3}/.gitignore +0 -0
  14. {cfengine-0.16.2 → cfengine-0.16.3}/.python-version +0 -0
  15. {cfengine-0.16.2 → cfengine-0.16.3}/CLAUDE.md +0 -0
  16. {cfengine-0.16.2 → cfengine-0.16.3}/HACKING.md +0 -0
  17. {cfengine-0.16.2 → cfengine-0.16.3}/LICENSE +0 -0
  18. {cfengine-0.16.2 → cfengine-0.16.3}/Makefile +0 -0
  19. {cfengine-0.16.2 → cfengine-0.16.3}/README.md +0 -0
  20. {cfengine-0.16.2 → cfengine-0.16.3}/ci/01-install.sh +0 -0
  21. {cfengine-0.16.2 → cfengine-0.16.3}/ci/02-safe-tests.sh +0 -0
  22. {cfengine-0.16.2 → cfengine-0.16.3}/ci/03-unsafe-tests.sh +0 -0
  23. {cfengine-0.16.2 → cfengine-0.16.3}/pyproject.toml +0 -0
  24. {cfengine-0.16.2 → cfengine-0.16.3}/setup.cfg +0 -0
  25. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/SOURCES.txt +0 -0
  26. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/dependency_links.txt +0 -0
  27. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/entry_points.txt +0 -0
  28. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/requires.txt +0 -0
  29. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine.egg-info/top_level.txt +0 -0
  30. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/__init__.py +0 -0
  31. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/__main__.py +0 -0
  32. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/changelog.py +0 -0
  33. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/commands.py +0 -0
  34. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/deptool-README.md +0 -0
  35. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/deptool.py +0 -0
  36. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/dev.py +0 -0
  37. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/lint.py +0 -0
  38. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/lint_csv.py +0 -0
  39. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/lint_yml.py +0 -0
  40. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/main.py +0 -0
  41. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/__init__.py +0 -0
  42. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/analyze.py +0 -0
  43. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/check_download_matches_git.py +0 -0
  44. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/download.py +0 -0
  45. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/generate_git_tags.py +0 -0
  46. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/generate_release_information.py +0 -0
  47. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/generate_vcf_download.py +0 -0
  48. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/masterfiles/generate_vcf_git_checkout.py +0 -0
  49. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/paths.py +0 -0
  50. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/profile.py +0 -0
  51. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/shell.py +0 -0
  52. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/syntax-description.json +0 -0
  53. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/syntax_tree.py +0 -0
  54. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/up.py +0 -0
  55. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/utils.py +0 -0
  56. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/validate.py +0 -0
  57. {cfengine-0.16.2 → cfengine-0.16.3}/src/cfengine_cli/version.py +0 -0
  58. {cfengine-0.16.2 → cfengine-0.16.3}/tests/README.md +0 -0
  59. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/001_hello_world.expected.cf +0 -0
  60. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/001_hello_world.input.cf +0 -0
  61. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/002_basics.expected.cf +0 -0
  62. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/002_basics.input.cf +0 -0
  63. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/003_wrapping.expected.cf +0 -0
  64. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/003_wrapping.input.cf +0 -0
  65. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/005_bundle_comments.expected.cf +0 -0
  66. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/005_bundle_comments.input.cf +0 -0
  67. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/006_remove_empty_comments.expected.cf +0 -0
  68. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/006_remove_empty_comments.input.cf +0 -0
  69. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/007_class_guarded_empty_lines.expected.cf +0 -0
  70. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/007_class_guarded_empty_lines.input.cf +0 -0
  71. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/008_long_string.expected.cf +0 -0
  72. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/008_long_string.input.cf +0 -0
  73. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/009_single_line.expected.cf +0 -0
  74. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/009_single_line.input.cf +0 -0
  75. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/010_stakeholder.expected.cf +0 -0
  76. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/010_stakeholder.input.cf +0 -0
  77. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/011_macros.expected.cf +0 -0
  78. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/011_macros.input.cf +0 -0
  79. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/011_promises.expected.cf +0 -0
  80. {cfengine-0.16.2 → cfengine-0.16.3}/tests/format/011_promises.input.cf +0 -0
  81. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/001_hello_world.cf +0 -0
  82. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/002_deprecations.expected.txt +0 -0
  83. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/002_deprecations.x.cf +0 -0
  84. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/003_name_lowercase.cf +0 -0
  85. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/003_name_lowercase.expected.txt +0 -0
  86. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/003_name_lowercase.x.cf +0 -0
  87. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/004_block_type.cf +0 -0
  88. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/004_block_type.expected.txt +0 -0
  89. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/004_block_type.x.cf +0 -0
  90. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/005_syntax_error.cf +0 -0
  91. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/005_syntax_error.expected.txt +0 -0
  92. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/005_syntax_error.x.cf +0 -0
  93. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/006_empty_file.expected.txt +0 -0
  94. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/006_empty_file.x.cf +0 -0
  95. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/007_namespace.cf +0 -0
  96. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/007_namespace.expected.txt +0 -0
  97. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/007_namespace.x.cf +0 -0
  98. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/008_bundle_shadows_function.cf +0 -0
  99. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/008_bundle_shadows_function.expected.txt +0 -0
  100. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/008_bundle_shadows_function.x.cf +0 -0
  101. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/009_unknown_function_inside_vars.cf +0 -0
  102. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/009_unknown_function_inside_vars.expected.txt +0 -0
  103. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/009_unknown_function_inside_vars.x.cf +0 -0
  104. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/010_mutually_exclusive_types_vars.cf +0 -0
  105. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/010_mutually_exclusive_types_vars.expected.txt +0 -0
  106. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/010_mutually_exclusive_types_vars.x.cf +0 -0
  107. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/011_invalid_attributes.expected.txt +0 -0
  108. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/011_invalid_attributes.x.cf +0 -0
  109. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/012_function_call_arg_count.cf +0 -0
  110. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/012_function_call_arg_count.expected.txt +0 -0
  111. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/012_function_call_arg_count.x.cf +0 -0
  112. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/013_num_args_body.expected.txt +0 -0
  113. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/013_num_args_body.x.cf +0 -0
  114. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/013_num_args_bundle.expected.txt +0 -0
  115. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/013_num_args_bundle.x.cf +0 -0
  116. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/013_num_args_bundle_body.cf +0 -0
  117. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/014_variadic_func_arg_count.cf +0 -0
  118. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/014_variadic_func_arg_count.expected.txt +0 -0
  119. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/014_variadic_func_arg_count.x.cf +0 -0
  120. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/015_macro_multi_def_bundle.cf +0 -0
  121. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/015_macro_multi_def_bundle.expected.txt +0 -0
  122. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/015_macro_multi_def_bundle.x.cf +0 -0
  123. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/016_half_promises.cf +0 -0
  124. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/016_half_promises.expected.txt +0 -0
  125. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/016_half_promises.x.cf +0 -0
  126. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/017_implies_body.cf +0 -0
  127. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/017_implies_body.expected.txt +0 -0
  128. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/017_implies_body.x.cf +0 -0
  129. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/018_nested_calls.cf +0 -0
  130. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/018_nested_calls.expected.txt +0 -0
  131. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/018_nested_calls.x.cf +0 -0
  132. {cfengine-0.16.2 → cfengine-0.16.3}/tests/lint/019_bundle_name_expansion.cf +0 -0
  133. {cfengine-0.16.2 → cfengine-0.16.3}/tests/run-format-tests.sh +0 -0
  134. {cfengine-0.16.2 → cfengine-0.16.3}/tests/run-lint-tests.sh +0 -0
  135. {cfengine-0.16.2 → cfengine-0.16.3}/tests/run-shell-tests.sh +0 -0
  136. {cfengine-0.16.2 → cfengine-0.16.3}/tests/run-up-validate-tests.sh +0 -0
  137. {cfengine-0.16.2 → cfengine-0.16.3}/tests/shell/001-help.sh +0 -0
  138. {cfengine-0.16.2 → cfengine-0.16.3}/tests/shell/002-version.sh +0 -0
  139. {cfengine-0.16.2 → cfengine-0.16.3}/tests/shell/003-format.sh +0 -0
  140. {cfengine-0.16.2 → cfengine-0.16.3}/tests/shell/004-format-check.sh +0 -0
  141. {cfengine-0.16.2 → cfengine-0.16.3}/tests/shell/005-lint.sh +0 -0
  142. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/__init__.py +0 -0
  143. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_changelog.py +0 -0
  144. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_deps.py +0 -0
  145. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_format.py +0 -0
  146. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_lint_csv.py +0 -0
  147. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_lint_yml.py +0 -0
  148. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_paths.py +0 -0
  149. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_utils.py +0 -0
  150. {cfengine-0.16.2 → cfengine-0.16.3}/tests/unit/test_version.py +0 -0
  151. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/001_complex_config.yaml +0 -0
  152. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/002_version.x.yaml +0 -0
  153. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/003_box.x.yaml +0 -0
  154. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/004_count.x.yaml +0 -0
  155. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/mocks/cloud_config.json +0 -0
  156. {cfengine-0.16.2 → cfengine-0.16.3}/tests/up-validate/mocks/vagrant +0 -0
  157. {cfengine-0.16.2 → cfengine-0.16.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cfengine
3
- Version: 0.16.2
3
+ Version: 0.16.3
4
4
  Summary: Human-oriented CLI for interacting with CFEngine policy language, projects, and other CFEngine tools
5
5
  License: GNU GENERAL PUBLIC LICENSE
6
6
  Version 3, 29 June 2007
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cfengine
3
- Version: 0.16.2
3
+ Version: 0.16.3
4
4
  Summary: Human-oriented CLI for interacting with CFEngine policy language, projects, and other CFEngine tools
5
5
  License: GNU GENERAL PUBLIC LICENSE
6
6
  Version 3, 29 June 2007
@@ -279,6 +279,7 @@ def _process_markdown_code_blocks(
279
279
  for cb in parsed_markdowns["files"][origin_path]["code-blocks"][i:]:
280
280
  cb["first_line"] += offset
281
281
  cb["last_line"] += offset
282
+ offset = 0
282
283
 
283
284
  language = _translate_language(code_block["language"])
284
285
  snippet_number = i + 1
@@ -822,6 +822,10 @@ def _comment_indent(node: Node, indent: int) -> int:
822
822
  # content at the end of the previous sibling subtree, so that comments
823
823
  # appended after a class-guarded block visually belong to that block.
824
824
  if nearest is None:
825
+ # A comment between a promiser and its terminating ';' is a promise
826
+ # continuation — indent it past the promiser.
827
+ if node.parent and node.parent.type in {"promise", "half_promise"}:
828
+ return indent + 2
825
829
  prev = _skip_comments(node.prev_named_sibling, "prev")
826
830
  if prev and prev.type in INDENTED_TYPES:
827
831
  return _trailing_comment_indent(prev, indent)
@@ -905,6 +909,10 @@ def _autoformat(
905
909
  if node.type in {",", ";"}:
906
910
  if previous and previous.type == "macro":
907
911
  fmt.print(node, indent + 2)
912
+ elif previous and previous.type == "comment":
913
+ # A '#' comment runs to end of line, so a following ';'/',' can't
914
+ # share that line — put it on its own continuation line.
915
+ fmt.print(node, indent + 2)
908
916
  else:
909
917
  fmt.print_same_line(node)
910
918
  elif node.type == "comment":
@@ -151,3 +151,16 @@ bundle agent stigs
151
151
  vars:
152
152
  "foo" string => "bar";
153
153
  }
154
+
155
+ bundle agent example_comment_before_semicolon
156
+ {
157
+ files:
158
+ "affected object"
159
+ # ...details....
160
+ ;
161
+
162
+ processes:
163
+ "affected object"
164
+ # ...details....
165
+ ;
166
+ }
@@ -143,3 +143,14 @@ bundle agent stigs
143
143
  vars:
144
144
  "foo" string => "bar";
145
145
  }
146
+ bundle agent example_comment_before_semicolon
147
+ {
148
+ files:
149
+ "affected object"
150
+ # ...details....
151
+ ;
152
+ processes:
153
+ "affected object"
154
+ # ...details....
155
+ ;
156
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes