cfengine 0.16.0__tar.gz → 0.16.1__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.0 → cfengine-0.16.1}/PKG-INFO +1 -1
  2. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/PKG-INFO +1 -1
  3. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/format.py +9 -4
  4. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/004_comments.expected.cf +7 -0
  5. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/004_comments.input.cf +10 -0
  6. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/005_bundle_comments.expected.cf +24 -0
  7. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/005_bundle_comments.input.cf +20 -0
  8. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/011_promises.expected.cf +1 -0
  9. {cfengine-0.16.0 → cfengine-0.16.1}/.github/dependabot.yml +0 -0
  10. {cfengine-0.16.0 → cfengine-0.16.1}/.github/workflows/lint-policy-in-other-repos.yml +0 -0
  11. {cfengine-0.16.0 → cfengine-0.16.1}/.github/workflows/make-check.yml +0 -0
  12. {cfengine-0.16.0 → cfengine-0.16.1}/.github/workflows/pypi-publish.yml +0 -0
  13. {cfengine-0.16.0 → cfengine-0.16.1}/.github/workflows/stale.yml +0 -0
  14. {cfengine-0.16.0 → cfengine-0.16.1}/.github/workflows/update-syntax-description.yml +0 -0
  15. {cfengine-0.16.0 → cfengine-0.16.1}/.gitignore +0 -0
  16. {cfengine-0.16.0 → cfengine-0.16.1}/.python-version +0 -0
  17. {cfengine-0.16.0 → cfengine-0.16.1}/CLAUDE.md +0 -0
  18. {cfengine-0.16.0 → cfengine-0.16.1}/HACKING.md +0 -0
  19. {cfengine-0.16.0 → cfengine-0.16.1}/LICENSE +0 -0
  20. {cfengine-0.16.0 → cfengine-0.16.1}/Makefile +0 -0
  21. {cfengine-0.16.0 → cfengine-0.16.1}/README.md +0 -0
  22. {cfengine-0.16.0 → cfengine-0.16.1}/ci/01-install.sh +0 -0
  23. {cfengine-0.16.0 → cfengine-0.16.1}/ci/02-safe-tests.sh +0 -0
  24. {cfengine-0.16.0 → cfengine-0.16.1}/ci/03-unsafe-tests.sh +0 -0
  25. {cfengine-0.16.0 → cfengine-0.16.1}/pyproject.toml +0 -0
  26. {cfengine-0.16.0 → cfengine-0.16.1}/setup.cfg +0 -0
  27. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/SOURCES.txt +0 -0
  28. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/dependency_links.txt +0 -0
  29. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/entry_points.txt +0 -0
  30. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/requires.txt +0 -0
  31. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine.egg-info/top_level.txt +0 -0
  32. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/__init__.py +0 -0
  33. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/__main__.py +0 -0
  34. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/changelog.py +0 -0
  35. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/commands.py +0 -0
  36. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/deptool-README.md +0 -0
  37. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/deptool.py +0 -0
  38. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/dev.py +0 -0
  39. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/docs.py +0 -0
  40. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/lint.py +0 -0
  41. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/lint_csv.py +0 -0
  42. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/lint_yml.py +0 -0
  43. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/main.py +0 -0
  44. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/__init__.py +0 -0
  45. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/analyze.py +0 -0
  46. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/check_download_matches_git.py +0 -0
  47. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/download.py +0 -0
  48. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/generate_git_tags.py +0 -0
  49. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/generate_release_information.py +0 -0
  50. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/generate_vcf_download.py +0 -0
  51. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/masterfiles/generate_vcf_git_checkout.py +0 -0
  52. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/paths.py +0 -0
  53. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/profile.py +0 -0
  54. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/shell.py +0 -0
  55. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/syntax-description.json +0 -0
  56. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/syntax_tree.py +0 -0
  57. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/up.py +0 -0
  58. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/utils.py +0 -0
  59. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/validate.py +0 -0
  60. {cfengine-0.16.0 → cfengine-0.16.1}/src/cfengine_cli/version.py +0 -0
  61. {cfengine-0.16.0 → cfengine-0.16.1}/tests/README.md +0 -0
  62. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/001_hello_world.expected.cf +0 -0
  63. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/001_hello_world.input.cf +0 -0
  64. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/002_basics.expected.cf +0 -0
  65. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/002_basics.input.cf +0 -0
  66. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/003_wrapping.expected.cf +0 -0
  67. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/003_wrapping.input.cf +0 -0
  68. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/006_remove_empty_comments.expected.cf +0 -0
  69. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/006_remove_empty_comments.input.cf +0 -0
  70. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/007_class_guarded_empty_lines.expected.cf +0 -0
  71. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/007_class_guarded_empty_lines.input.cf +0 -0
  72. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/008_long_string.expected.cf +0 -0
  73. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/008_long_string.input.cf +0 -0
  74. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/009_single_line.expected.cf +0 -0
  75. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/009_single_line.input.cf +0 -0
  76. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/010_stakeholder.expected.cf +0 -0
  77. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/010_stakeholder.input.cf +0 -0
  78. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/011_macros.expected.cf +0 -0
  79. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/011_macros.input.cf +0 -0
  80. {cfengine-0.16.0 → cfengine-0.16.1}/tests/format/011_promises.input.cf +0 -0
  81. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/001_hello_world.cf +0 -0
  82. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/002_deprecations.expected.txt +0 -0
  83. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/002_deprecations.x.cf +0 -0
  84. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/003_name_lowercase.cf +0 -0
  85. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/003_name_lowercase.expected.txt +0 -0
  86. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/003_name_lowercase.x.cf +0 -0
  87. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/004_block_type.cf +0 -0
  88. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/004_block_type.expected.txt +0 -0
  89. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/004_block_type.x.cf +0 -0
  90. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/005_syntax_error.cf +0 -0
  91. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/005_syntax_error.expected.txt +0 -0
  92. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/005_syntax_error.x.cf +0 -0
  93. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/006_empty_file.expected.txt +0 -0
  94. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/006_empty_file.x.cf +0 -0
  95. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/007_namespace.cf +0 -0
  96. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/007_namespace.expected.txt +0 -0
  97. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/007_namespace.x.cf +0 -0
  98. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/008_bundle_shadows_function.cf +0 -0
  99. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/008_bundle_shadows_function.expected.txt +0 -0
  100. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/008_bundle_shadows_function.x.cf +0 -0
  101. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/009_unknown_function_inside_vars.cf +0 -0
  102. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/009_unknown_function_inside_vars.expected.txt +0 -0
  103. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/009_unknown_function_inside_vars.x.cf +0 -0
  104. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/010_mutually_exclusive_types_vars.cf +0 -0
  105. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/010_mutually_exclusive_types_vars.expected.txt +0 -0
  106. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/010_mutually_exclusive_types_vars.x.cf +0 -0
  107. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/011_invalid_attributes.expected.txt +0 -0
  108. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/011_invalid_attributes.x.cf +0 -0
  109. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/012_function_call_arg_count.cf +0 -0
  110. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/012_function_call_arg_count.expected.txt +0 -0
  111. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/012_function_call_arg_count.x.cf +0 -0
  112. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/013_num_args_body.expected.txt +0 -0
  113. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/013_num_args_body.x.cf +0 -0
  114. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/013_num_args_bundle.expected.txt +0 -0
  115. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/013_num_args_bundle.x.cf +0 -0
  116. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/013_num_args_bundle_body.cf +0 -0
  117. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/014_variadic_func_arg_count.cf +0 -0
  118. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/014_variadic_func_arg_count.expected.txt +0 -0
  119. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/014_variadic_func_arg_count.x.cf +0 -0
  120. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/015_macro_multi_def_bundle.cf +0 -0
  121. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/015_macro_multi_def_bundle.expected.txt +0 -0
  122. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/015_macro_multi_def_bundle.x.cf +0 -0
  123. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/016_half_promises.cf +0 -0
  124. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/016_half_promises.expected.txt +0 -0
  125. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/016_half_promises.x.cf +0 -0
  126. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/017_implies_body.cf +0 -0
  127. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/017_implies_body.expected.txt +0 -0
  128. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/017_implies_body.x.cf +0 -0
  129. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/018_nested_calls.cf +0 -0
  130. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/018_nested_calls.expected.txt +0 -0
  131. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/018_nested_calls.x.cf +0 -0
  132. {cfengine-0.16.0 → cfengine-0.16.1}/tests/lint/019_bundle_name_expansion.cf +0 -0
  133. {cfengine-0.16.0 → cfengine-0.16.1}/tests/run-format-tests.sh +0 -0
  134. {cfengine-0.16.0 → cfengine-0.16.1}/tests/run-lint-tests.sh +0 -0
  135. {cfengine-0.16.0 → cfengine-0.16.1}/tests/run-shell-tests.sh +0 -0
  136. {cfengine-0.16.0 → cfengine-0.16.1}/tests/run-up-validate-tests.sh +0 -0
  137. {cfengine-0.16.0 → cfengine-0.16.1}/tests/shell/001-help.sh +0 -0
  138. {cfengine-0.16.0 → cfengine-0.16.1}/tests/shell/002-version.sh +0 -0
  139. {cfengine-0.16.0 → cfengine-0.16.1}/tests/shell/003-format.sh +0 -0
  140. {cfengine-0.16.0 → cfengine-0.16.1}/tests/shell/004-format-check.sh +0 -0
  141. {cfengine-0.16.0 → cfengine-0.16.1}/tests/shell/005-lint.sh +0 -0
  142. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/__init__.py +0 -0
  143. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_changelog.py +0 -0
  144. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_deps.py +0 -0
  145. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_format.py +0 -0
  146. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_lint_csv.py +0 -0
  147. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_lint_yml.py +0 -0
  148. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_paths.py +0 -0
  149. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_utils.py +0 -0
  150. {cfengine-0.16.0 → cfengine-0.16.1}/tests/unit/test_version.py +0 -0
  151. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/001_complex_config.yaml +0 -0
  152. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/002_version.x.yaml +0 -0
  153. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/003_box.x.yaml +0 -0
  154. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/004_count.x.yaml +0 -0
  155. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/mocks/cloud_config.json +0 -0
  156. {cfengine-0.16.0 → cfengine-0.16.1}/tests/up-validate/mocks/vagrant +0 -0
  157. {cfengine-0.16.0 → cfengine-0.16.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cfengine
3
- Version: 0.16.0
3
+ Version: 0.16.1
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.0
3
+ Version: 0.16.1
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
@@ -743,18 +743,23 @@ def _needs_blank_line_before(child: Node, indent: int, line_length: int) -> bool
743
743
  if child.type == "comment":
744
744
  if _is_empty_comment(child):
745
745
  return False
746
+ # Empty comments preceding this one will be dropped — look past them
747
+ # so we treat the comment as following the real prior content.
748
+ while prev and prev.type == "comment" and _is_empty_comment(prev):
749
+ prev = prev.prev_named_sibling
750
+ if prev is None:
751
+ return False
746
752
  # Top-level comment after a complete block — visually separates them
747
753
  if prev.type in BLOCK_TYPES:
748
754
  return True
749
755
  parent = child.parent
750
- # Trailing comment at the end of a bundle body lands deeply
751
- # indented (aligned with the deepest attribute); insert a blank
752
- # line so it doesn't run into the preceding section.
756
+ # Comment at bundle_block_body level after a bundle_section
757
+ # either a trailing comment for the previous section or a leading
758
+ # comment for the next one. Either way, visually separate it.
753
759
  if (
754
760
  prev.type == "bundle_section"
755
761
  and parent
756
762
  and parent.type == "bundle_block_body"
757
- and _skip_comments(child.next_named_sibling, "next") is None
758
763
  ):
759
764
  return True
760
765
  if parent and parent.type in {"bundle_section", "class_guarded_promises"}:
@@ -144,3 +144,10 @@ body package_method cgcacgcac
144
144
  # bar
145
145
  package_changes => "bulk";
146
146
  }
147
+
148
+ # Example here:
149
+ bundle agent stigs
150
+ {
151
+ vars:
152
+ "foo" string => "bar";
153
+ }
@@ -133,3 +133,13 @@ package_changes => "bulk";
133
133
  # bar
134
134
  package_changes => "bulk";
135
135
  }
136
+
137
+ #
138
+ # Example here:
139
+ #
140
+
141
+ bundle agent stigs
142
+ {
143
+ vars:
144
+ "foo" string => "bar";
145
+ }
@@ -104,3 +104,27 @@ bundle agent trailing_example_3
104
104
 
105
105
  # Trailing
106
106
  }
107
+
108
+ bundle agent before_promise_types
109
+ {
110
+ # Reports promises:
111
+ reports:
112
+ "Hello, world!";
113
+
114
+ # Classes:
115
+ classes:
116
+ "myclass" if => "foo";
117
+
118
+ # Variables:
119
+ # Multi line
120
+ vars:
121
+ "myvar"
122
+ string => "bar",
123
+ if => "foo";
124
+
125
+ # More reports:
126
+ reports:
127
+ "Lorem ipsum";
128
+
129
+ # Trailing comment
130
+ }
@@ -101,3 +101,23 @@ if => "bar";
101
101
 
102
102
  # Trailing
103
103
  }
104
+
105
+ bundle agent before_promise_types
106
+ {
107
+ # Reports promises:
108
+ reports:
109
+ "Hello, world!";
110
+ # Classes:
111
+ classes:
112
+ "myclass" if => "foo";
113
+ # Variables:
114
+ # Multi line
115
+ vars:
116
+ "myvar"
117
+ string => "bar",
118
+ if => "foo";
119
+ # More reports:
120
+ reports:
121
+ "Lorem ipsum";
122
+ # Trailing comment
123
+ }
@@ -505,6 +505,7 @@ bundle common services_autorun
505
505
  services_autorun|services_autorun_inputs|services_autorun_bundles::
506
506
  "inputs" slist => { "$(sys.local_libdir)/autorun.cf" };
507
507
  "bundles" slist => { "autorun" };
508
+
508
509
  # run loaded bundles
509
510
  reports:
510
511
  DEBUG|DEBUG_services_autorun::
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