clear-skies-doc-builder 2.0.10__tar.gz → 2.0.11__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 (55) hide show
  1. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/CHANGELOG.md +12 -0
  2. clear_skies_doc_builder-2.0.11/LATEST_CHANGELOG.md +5 -0
  3. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/PKG-INFO +1 -1
  4. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/pyproject.toml +1 -1
  5. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/build_callable.py +28 -7
  6. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/builders/module.py +6 -1
  7. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/uv.lock +1 -1
  8. clear_skies_doc_builder-2.0.10/LATEST_CHANGELOG.md +0 -2
  9. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.copier-answers.yml +0 -0
  10. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.editorconfig +0 -0
  11. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.github/workflows/create-version.yaml +0 -0
  12. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.github/workflows/docs.yaml +0 -0
  13. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.github/workflows/run-tests.yml +0 -0
  14. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.github/workflows/tests-matrix.yaml +0 -0
  15. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.github/workflows/tests.yaml +0 -0
  16. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.gitignore +0 -0
  17. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.pre-commit-config.yaml +0 -0
  18. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.python-version +0 -0
  19. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/.vscode/settings.json +0 -0
  20. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/LICENSE +0 -0
  21. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/README.md +0 -0
  22. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/cliff.toml +0 -0
  23. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/ruff.toml +0 -0
  24. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/__init__.py +0 -0
  25. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/backends/__init__.py +0 -0
  26. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/backends/attribute_backend.py +0 -0
  27. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/backends/class_backend.py +0 -0
  28. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/backends/module_backend.py +0 -0
  29. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/backends/python.py +0 -0
  30. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/builders/__init__.py +0 -0
  31. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/builders/builder.py +0 -0
  32. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/builders/single_class.py +0 -0
  33. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/builders/single_class_to_section.py +0 -0
  34. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/__init__.py +0 -0
  35. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/any.py +0 -0
  36. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/attribute.py +0 -0
  37. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/attributes.py +0 -0
  38. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/base_classes.py +0 -0
  39. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/class_column.py +0 -0
  40. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/method.py +0 -0
  41. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/module.py +0 -0
  42. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/columns/module_classes.py +0 -0
  43. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/configs/__init__.py +0 -0
  44. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/__init__.py +0 -0
  45. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/arg.py +0 -0
  46. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/attribute.py +0 -0
  47. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/attribute_reference.py +0 -0
  48. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/class_model.py +0 -0
  49. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/class_reference.py +0 -0
  50. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/method.py +0 -0
  51. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/method_reference.py +0 -0
  52. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/module.py +0 -0
  53. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/module_reference.py +0 -0
  54. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/models/property.py +0 -0
  55. {clear_skies_doc_builder-2.0.10 → clear_skies_doc_builder-2.0.11}/src/clearskies_doc_builder/prepare_doc_space.py +0 -0
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.11] - 2026-01-28
9
+
10
+ ### Fixed
11
+ - Ordering of modules
12
+
13
+ ## [2.0.10] - 2026-01-28
14
+
15
+ ### Changed
16
+ - Bump version to v2.0.10 by @github-actions[bot]
17
+
8
18
  ## [2.0.9] - 2026-01-28
9
19
 
10
20
  ### Added
@@ -94,6 +104,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
94
104
  * @ made their first contribution
95
105
  * @tnijboer made their first contribution in [#1](https://github.com/clearskies-py/doc-builder/pull/1)
96
106
  * @cmancone made their first contribution
107
+ [2.0.11]: https://github.com/clearskies-py/doc-builder/compare/v2.0.10..v2.0.11
108
+ [2.0.10]: https://github.com/clearskies-py/doc-builder/compare/v2.0.9..v2.0.10
97
109
  [2.0.9]: https://github.com/clearskies-py/doc-builder/compare/v2.0.8..v2.0.9
98
110
  [2.0.8]: https://github.com/clearskies-py/doc-builder/compare/v2.0.7..v2.0.8
99
111
  [2.0.7]: https://github.com/clearskies-py/doc-builder/compare/v2.0.6..v2.0.7
@@ -0,0 +1,5 @@
1
+ ## [2.0.11] - 2026-01-28
2
+
3
+ ### Fixed
4
+ - Ordering of modules
5
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies-doc-builder
3
- Version: 2.0.10
3
+ Version: 2.0.11
4
4
  Summary: The docbuilder for all 'official' clearskies plugins (as well as the main clearskies docs)
5
5
  Project-URL: repository, https://github.com/clearskies-py/docs
6
6
  Project-URL: issues, https://github.com/clearskies-py/docs/issues
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "clear-skies-doc-builder"
3
3
  description = "The docbuilder for all 'official' clearskies plugins (as well as the main clearskies docs)"
4
- version = "2.0.10"
4
+ version = "2.0.11"
5
5
  license = "MIT"
6
6
  readme = "./README.md"
7
7
  authors = [{name = "Conor Mancone", email = "cmancone@gmail.com"}]
@@ -48,11 +48,15 @@ def _sort_key_for_entry(entry: dict[str, Any]) -> tuple[int, str]:
48
48
  return (type_priority, title)
49
49
 
50
50
 
51
- def _compute_nav_orders(tree: list[dict[str, Any]]) -> dict[int, int]:
51
+ def _compute_nav_orders_and_child_counts(
52
+ tree: list[dict[str, Any]],
53
+ ) -> tuple[dict[int, int], dict[str, int]]:
52
54
  """
53
- Compute nav_order for each entry in the tree based on sorting rules.
55
+ Compute nav_order for each entry and count children per parent.
54
56
 
55
- Returns a dict mapping original tree index to computed nav_order.
57
+ Returns:
58
+ - nav_orders: dict mapping original tree index to computed nav_order
59
+ - child_counts: dict mapping parent title to number of child entries
56
60
 
57
61
  For entries with the same parent:
58
62
  - Groups by entry_type (submodules first, then classes)
@@ -60,6 +64,9 @@ def _compute_nav_orders(tree: list[dict[str, Any]]) -> dict[int, int]:
60
64
  - Assigns sequential nav_order values
61
65
 
62
66
  Top-level entries maintain their original order (index + 2).
67
+
68
+ The child_counts is used by Module builders to offset their internal class
69
+ nav_orders so that child entries (submodules) appear first in navigation.
63
70
  """
64
71
  # Group entries by their parent
65
72
  parent_groups: dict[str | None, list[tuple[int, dict[str, Any]]]] = {}
@@ -72,6 +79,7 @@ def _compute_nav_orders(tree: list[dict[str, Any]]) -> dict[int, int]:
72
79
 
73
80
  # Compute nav_order for each entry
74
81
  nav_orders: dict[int, int] = {}
82
+ child_counts: dict[str, int] = {}
75
83
 
76
84
  for parent, entries in parent_groups.items():
77
85
  if parent is None:
@@ -84,21 +92,34 @@ def _compute_nav_orders(tree: list[dict[str, Any]]) -> dict[int, int]:
84
92
  for nav_order, (original_index, entry) in enumerate(sorted_entries, start=1):
85
93
  nav_orders[original_index] = nav_order
86
94
 
87
- return nav_orders
95
+ # Count children for each parent (by title)
96
+ for entry in tree:
97
+ parent = entry.get("parent")
98
+ if parent:
99
+ child_counts[parent] = child_counts.get(parent, 0) + 1
100
+
101
+ return nav_orders, child_counts
88
102
 
89
103
 
90
104
  def build_callable(modules: models.Module, classes: models.Class, config: dict[str, Any], project_root: str):
91
105
  doc_root = prepare_doc_space(project_root)
92
106
 
93
- # Pre-compute nav_orders based on sorting rules
94
- nav_orders = _compute_nav_orders(config["tree"])
107
+ # Pre-compute nav_orders and child counts based on sorting rules
108
+ nav_orders, child_counts = _compute_nav_orders_and_child_counts(config["tree"])
95
109
 
96
110
  for index, branch in enumerate(config["tree"]):
97
111
  nav_order = nav_orders[index]
98
112
 
113
+ # Add child_entry_count to branch so Module builder can offset its class nav_orders
114
+ # This ensures child entries (submodules) appear first in navigation
115
+ branch_with_child_count = {
116
+ **branch,
117
+ "child_entry_count": child_counts.get(branch["title"], 0),
118
+ }
119
+
99
120
  builder_class = classes.find("import_path=" + branch["builder"]).type
100
121
  builder = builder_class(
101
- branch,
122
+ branch_with_child_count,
102
123
  modules,
103
124
  classes,
104
125
  doc_root,
@@ -13,6 +13,9 @@ class Module(Builder):
13
13
  self.args_to_additional_attributes_map = branch.get("args_to_additional_attributes_map", {})
14
14
  self.parent = branch.get("parent", False)
15
15
  self.grand_parent = branch.get("grand_parent", False)
16
+ # Number of child entries (submodules) under this module in the config tree
17
+ # Used to offset class nav_orders so child entries appear first in navigation
18
+ self.child_entry_count = branch.get("child_entry_count", 0)
16
19
 
17
20
  def build(self):
18
21
  title_snake_case = clearskies.functional.string.title_case_to_snake_case(self.title.replace(" ", "")).replace(
@@ -51,7 +54,9 @@ class Module(Builder):
51
54
 
52
55
  default_args = self.default_args()
53
56
 
54
- nav_order = 0
57
+ # Start nav_order after any child entries (submodules) so they appear first
58
+ # Child entries get nav_order 1, 2, 3... and classes get nav_order after that
59
+ nav_order = self.child_entry_count
55
60
  for class_name in self.class_list:
56
61
  nav_order += 1
57
62
  source_class = self.classes.find(f"import_path={class_name}")
@@ -146,7 +146,7 @@ wheels = [
146
146
 
147
147
  [[package]]
148
148
  name = "clear-skies-doc-builder"
149
- version = "2.0.10"
149
+ version = "2.0.11"
150
150
  source = { editable = "." }
151
151
  dependencies = [
152
152
  { name = "clear-skies" },
@@ -1,2 +0,0 @@
1
- ## [2.0.10] - 2026-01-28
2
-