clear-skies-doc-builder 2.0.4__tar.gz → 2.0.6__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 (57) hide show
  1. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.copier-answers.yml +3 -1
  2. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.github/workflows/create-version.yaml +9 -0
  3. clear_skies_doc_builder-2.0.6/.github/workflows/docs.yaml +51 -0
  4. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.github/workflows/run-tests.yml +2 -1
  5. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.github/workflows/tests-matrix.yaml +6 -19
  6. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.pre-commit-config.yaml +0 -7
  7. clear_skies_doc_builder-2.0.6/.python-version +1 -0
  8. clear_skies_doc_builder-2.0.6/.vscode/settings.json +21 -0
  9. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/CHANGELOG.md +26 -0
  10. clear_skies_doc_builder-2.0.6/LATEST_CHANGELOG.md +12 -0
  11. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/PKG-INFO +1 -1
  12. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/pyproject.toml +1 -1
  13. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/ruff.toml +1 -1
  14. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/backends/attribute_backend.py +2 -1
  15. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/backends/class_backend.py +3 -2
  16. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/backends/module_backend.py +10 -9
  17. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/builders/module.py +1 -1
  18. clear_skies_doc_builder-2.0.6/uv.lock +898 -0
  19. clear_skies_doc_builder-2.0.4/.github/workflows/docs.yaml +0 -37
  20. clear_skies_doc_builder-2.0.4/LATEST_CHANGELOG.md +0 -5
  21. clear_skies_doc_builder-2.0.4/uv.lock +0 -748
  22. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.editorconfig +0 -0
  23. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.github/workflows/tests.yaml +0 -0
  24. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/.gitignore +0 -0
  25. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/LICENSE +0 -0
  26. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/README.md +0 -0
  27. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/cliff.toml +0 -0
  28. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/__init__.py +0 -0
  29. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/backends/__init__.py +0 -0
  30. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/backends/python.py +0 -0
  31. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/build_callable.py +0 -0
  32. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/builders/__init__.py +0 -0
  33. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/builders/builder.py +0 -0
  34. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/builders/single_class.py +0 -0
  35. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/builders/single_class_to_section.py +0 -0
  36. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/__init__.py +0 -0
  37. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/any.py +0 -0
  38. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/attribute.py +0 -0
  39. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/attributes.py +0 -0
  40. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/base_classes.py +0 -0
  41. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/class_column.py +0 -0
  42. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/method.py +0 -0
  43. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/module.py +0 -0
  44. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/columns/module_classes.py +0 -0
  45. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/configs/__init__.py +0 -0
  46. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/__init__.py +0 -0
  47. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/arg.py +0 -0
  48. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/attribute.py +0 -0
  49. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/attribute_reference.py +0 -0
  50. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/class_model.py +0 -0
  51. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/class_reference.py +0 -0
  52. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/method.py +0 -0
  53. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/method_reference.py +0 -0
  54. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/module.py +0 -0
  55. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/module_reference.py +0 -0
  56. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/models/property.py +0 -0
  57. {clear_skies_doc_builder-2.0.4 → clear_skies_doc_builder-2.0.6}/src/clearskies_doc_builder/prepare_doc_space.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2
- _commit: v0.0.27
2
+ _commit: v0.0.45
3
3
  _src_path: https://github.com/clearskies-py/clearskies-module-template
4
4
  author_email: cmancone@gmail.com
5
5
  author_name: Conor Mancone
@@ -8,5 +8,7 @@ create_columns: true
8
8
  create_configs: true
9
9
  create_endpoints: false
10
10
  create_models: true
11
+ docs_modules_location: modules
11
12
  module_display_name: Doc Builder
12
13
  module_name: doc-builder
14
+ site_base_url: https://clearskies.info
@@ -128,3 +128,12 @@ jobs:
128
128
  - name: Publish to PyPi
129
129
  run: |
130
130
  uv publish --token ${{ steps.fetch-secrets.outputs.pypi }}
131
+
132
+ publish-docs:
133
+ name: Publish Doc Site to S3
134
+ needs: bump-version
135
+ permissions:
136
+ id-token: write
137
+ contents: read
138
+ secrets: inherit
139
+ uses: ./.github/workflows/docs.yaml
@@ -0,0 +1,51 @@
1
+ name: Doc Publish
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ workflow_call:
6
+
7
+ jobs:
8
+ publish:
9
+ if: github.ref == 'refs/heads/main'
10
+ name: Publish Doc Site to S3
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ id-token: write
14
+ contents: read
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+ token: ${{ secrets.GITHUB_TOKEN }}
21
+ - name: Pull latest main
22
+ run: git pull origin main
23
+ - name: configure aws credentials
24
+ uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
25
+ with:
26
+ role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
27
+ role-session-name: docs-deploy
28
+ aws-region: us-east-1
29
+ - name: Install uv and set the python version
30
+ uses: astral-sh/setup-uv@v6
31
+ with:
32
+ python-version: '3.12'
33
+ enable-cache: true
34
+ - name: Publish
35
+ run: |
36
+ cd docs/python
37
+ uv run build.py
38
+ sudo apt update
39
+ sudo apt-get install -y ruby ruby-dev jq
40
+ sudo gem install bundler
41
+ cd ../build
42
+ cp ../../README.md _includes/project_readme.md
43
+ cp ../../CHANGELOG.md _includes/project_changelog.md
44
+ sudo bundle install
45
+ sudo bundle exec jekyll build
46
+ cd _site
47
+ aws s3 sync --delete . s3://clearskies.info/modules/clear-skies-doc-builder/
48
+ cd ../../python
49
+ aws s3 cp s3://clearskies.info/modules/manifest.json . || touch manifest.json
50
+ uv run update_manifest.py --pyproject_file=../../pyproject.toml --modules_location=modules
51
+ aws s3 cp manifest.json s3://clearskies.info/modules/manifest.json
@@ -67,7 +67,7 @@ jobs:
67
67
  python-version: ${{ matrix.python-version }}
68
68
  run-mypy: ${{ needs.changes.outputs.tests == 'true' }}
69
69
  run-pytest: ${{ needs.changes.outputs.tests == 'true' }}
70
- run-black: ${{ needs.changes.outputs.tests == 'true' }}
70
+ run-ruff-format: ${{ needs.changes.outputs.tests == 'true' }}
71
71
  run-ruff-check: ${{ needs.changes.outputs.tests == 'true' }}
72
72
  secrets: inherit
73
73
  strategy:
@@ -76,6 +76,7 @@ jobs:
76
76
  - '3.11'
77
77
  - '3.12'
78
78
  - '3.13'
79
+ - '3.14'
79
80
  fail-fast: false
80
81
 
81
82
  status:
@@ -14,7 +14,7 @@ on:
14
14
  run-pytest:
15
15
  required: true
16
16
  type: boolean
17
- run-black:
17
+ run-ruff-format:
18
18
  required: true
19
19
  type: boolean
20
20
  run-ruff-check:
@@ -66,27 +66,14 @@ jobs:
66
66
  - run: uv run pytest -v
67
67
  - run: git diff --exit-code --stat HEAD
68
68
 
69
- black:
70
- name: black
69
+ ruff-format:
70
+ name: ruff-format
71
71
  runs-on: ${{ inputs.runner }}
72
- if: inputs.run-black
72
+ if: inputs.run-ruff-format
73
73
  steps:
74
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
75
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
76
- with:
77
- persist-credentials: false
78
-
79
- - name: Install uv and set the python version
80
- uses: astral-sh/setup-uv@v6
81
- with:
82
- python-version: ${{ inputs.python-version }}
83
- enable-cache: true
84
- - name: Install dependencies
85
- run: uv sync --locked --all-extras --dev
86
- - uses: psf/black@stable
74
+ - uses: astral-sh/ruff-action@v3
87
75
  with:
88
- options: "--check --verbose"
89
- src: "./src"
76
+ args: "format --diff"
90
77
 
91
78
  ruff-check:
92
79
  name: ruff-check
@@ -1,5 +1,4 @@
1
1
  # Pre-commit configuration for Akeyless Custom Producer
2
- fail_fast: true
3
2
 
4
3
  ci:
5
4
  autofix_commit_msg: "chore(pre-commit): autofix run"
@@ -39,12 +38,6 @@ repos:
39
38
  hooks:
40
39
  - id: uv-lock
41
40
 
42
- - repo: https://github.com/psf/black
43
- rev: 25.1.0
44
- hooks:
45
- - id: black
46
- files: \.py$
47
-
48
41
  - repo: https://github.com/astral-sh/ruff-pre-commit
49
42
  rev: v0.12.1
50
43
  hooks:
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,21 @@
1
+ {
2
+ "python.testing.pytestArgs": ["tests"],
3
+ "python.testing.unittestEnabled": false,
4
+ "python.testing.pytestEnabled": true,
5
+ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
6
+ "ruff.interpreter": ["${workspaceFolder}/.venv/bin/python"],
7
+ "ruff.path": ["${workspaceFolder}/.venv/bin/ruff"],
8
+ "ruff.configuration": "${workspaceFolder}/ruff.toml",
9
+ "ruff.nativeServer": "on",
10
+ "[python]": {
11
+ "editor.formatOnSave": true,
12
+ "editor.codeActionsOnSave": {
13
+ "source.fixAll": "explicit",
14
+ "source.organizeImports": "explicit"
15
+ },
16
+ "editor.defaultFormatter": "charliermarsh.ruff"
17
+ },
18
+ "mypy-type-checker.args": [
19
+ "--config-file=${workspaceFolder}/pyproject.toml"
20
+ ]
21
+ }
@@ -5,11 +5,35 @@ 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.6] - 2026-01-28
9
+
10
+ ### Added
11
+ - Add some basic tests
12
+
13
+ ### Changed
14
+ - Update to latest copier version
15
+ - Update dependencies
16
+
17
+ ### Fixed
18
+ - Update to latest clear-skies QueryRequest
19
+
20
+ ## [2.0.5] - 2025-10-16
21
+
22
+ ### Changed
23
+ - Bump version to v2.0.5 by @github-actions[bot]
24
+ - Missing-f by @tnijboer in [#2](https://github.com/clearskies-py/doc-builder/pull/2)
25
+ - Missing-f by @cmancone
26
+ - Update copier
27
+ - Update copier
28
+
8
29
  ## [2.0.4] - 2025-09-03
9
30
 
10
31
  ### Added
11
32
  - Add more folders to the build
12
33
 
34
+ ### Changed
35
+ - Bump version to v2.0.4 by @github-actions[bot]
36
+
13
37
  ## [2.0.3] - 2025-09-03
14
38
 
15
39
  ### Changed
@@ -45,6 +69,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
45
69
  * @ made their first contribution
46
70
  * @tnijboer made their first contribution in [#1](https://github.com/clearskies-py/doc-builder/pull/1)
47
71
  * @cmancone made their first contribution
72
+ [2.0.6]: https://github.com/clearskies-py/doc-builder/compare/v2.0.5..v2.0.6
73
+ [2.0.5]: https://github.com/clearskies-py/doc-builder/compare/v2.0.4..v2.0.5
48
74
  [2.0.4]: https://github.com/clearskies-py/doc-builder/compare/v2.0.3..v2.0.4
49
75
  [2.0.3]: https://github.com/clearskies-py/doc-builder/compare/v2.0.2..v2.0.3
50
76
  [2.0.2]: https://github.com/clearskies-py/doc-builder/compare/v2.0.1..v2.0.2
@@ -0,0 +1,12 @@
1
+ ## [2.0.6] - 2026-01-28
2
+
3
+ ### Added
4
+ - Add some basic tests
5
+
6
+ ### Changed
7
+ - Update to latest copier version
8
+ - Update dependencies
9
+
10
+ ### Fixed
11
+ - Update to latest clear-skies QueryRequest
12
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies-doc-builder
3
- Version: 2.0.4
3
+ Version: 2.0.6
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.4"
4
+ version = "2.0.6"
5
5
  license = "MIT"
6
6
  readme = "./README.md"
7
7
  authors = [{name = "Conor Mancone", email = "cmancone@gmail.com"}]
@@ -7,7 +7,7 @@ show-fixes = true
7
7
  quote-style = "double"
8
8
  indent-style = "space"
9
9
  docstring-code-format = true
10
- preview = true
10
+ preview = false
11
11
  skip-magic-trailing-comma = false
12
12
  docstring-code-line-length = 100
13
13
  line-ending = "lf"
@@ -5,6 +5,7 @@ import clearskies
5
5
  import clearskies.column
6
6
  import clearskies.model
7
7
  import clearskies.query
8
+ from clearskies.query.result import RecordsQueryResult
8
9
 
9
10
  from clearskies_doc_builder.backends.module_backend import ModuleBackend
10
11
 
@@ -18,7 +19,7 @@ class AttributeBackend(ModuleBackend):
18
19
 
19
20
  def records(
20
21
  self, query: clearskies.query.Query, next_page_data: dict[str, str | int] | None = None
21
- ) -> list[dict[str, Any]]:
22
+ ) -> RecordsQueryResult:
22
23
  """
23
24
  Return a list of records that match the given query configuration.
24
25
 
@@ -7,6 +7,7 @@ import clearskies
7
7
  import clearskies.column
8
8
  import clearskies.model
9
9
  import clearskies.query
10
+ from clearskies.query.result import RecordsQueryResult
10
11
 
11
12
  from clearskies_doc_builder.backends.module_backend import ModuleBackend
12
13
 
@@ -19,7 +20,7 @@ class ClassBackend(ModuleBackend):
19
20
 
20
21
  def records(
21
22
  self, query: clearskies.query.Query, next_page_data: dict[str, str | int] | None = None
22
- ) -> list[dict[str, Any]]:
23
+ ) -> RecordsQueryResult:
23
24
  """
24
25
  Return a list of records that match the given query configuration.
25
26
 
@@ -53,7 +54,7 @@ class ClassBackend(ModuleBackend):
53
54
  raise ValueError(
54
55
  f"I was asked to import the class named '{import_path}' but this doesn't actually reference a class"
55
56
  )
56
- return [self.unpack(Class, module)]
57
+ return RecordsQueryResult(records=[self.unpack(Class, module)])
57
58
 
58
59
  if "module" not in query.conditions_by_column:
59
60
  raise ValueError(
@@ -9,6 +9,7 @@ import clearskies.model
9
9
  import clearskies.query
10
10
  from clearskies.autodoc.schema import Integer as AutoDocInteger
11
11
  from clearskies.autodoc.schema import Schema as AutoDocSchema
12
+ from clearskies.query.result import CountQueryResult, RecordQueryResult, RecordsQueryResult, SuccessQueryResult
12
13
 
13
14
 
14
15
  class ModuleBackend(clearskies.backends.Backend):
@@ -19,25 +20,25 @@ class ModuleBackend(clearskies.backends.Backend):
19
20
  "module": lambda module, value: id(module) == id(value),
20
21
  }
21
22
 
22
- def update(self, id: int | str, data: dict[str, Any], model: clearskies.model.Model) -> dict[str, Any]:
23
+ def update(self, id: int | str, data: dict[str, Any], model: clearskies.model.Model) -> RecordQueryResult:
23
24
  """Update the record with the given id with the information from the data dictionary."""
24
25
  raise Exception(f"The {self.__class__.__name__} only supports read operations: update is not allowed")
25
26
 
26
- def create(self, data: dict[str, Any], model: clearskies.model.Model) -> dict[str, Any]:
27
+ def create(self, data: dict[str, Any], model: clearskies.model.Model) -> RecordQueryResult:
27
28
  """Create a record with the information from the data dictionary."""
28
29
  raise Exception(f"The {self.__class__.__name__} only supports read operations: create is not allowed")
29
30
 
30
- def delete(self, id: int | str, model: clearskies.model.Model) -> bool:
31
+ def delete(self, id: int | str, model: clearskies.model.Model) -> SuccessQueryResult:
31
32
  """Delete the record with the given id."""
32
33
  raise Exception(f"The {self.__class__.__name__} only supports read operations: delete is not allowed")
33
34
 
34
- def count(self, query: clearskies.query.Query) -> int:
35
+ def count(self, query: clearskies.query.Query) -> CountQueryResult:
35
36
  """Return the number of records which match the given query configuration."""
36
- return len(self.records(query))
37
+ return CountQueryResult(count=len(self.records(query).records))
37
38
 
38
39
  def records(
39
40
  self, query: clearskies.query.Query, next_page_data: dict[str, str | int] | None = None
40
- ) -> list[dict[str, Any]]:
41
+ ) -> RecordsQueryResult:
41
42
  """
42
43
  Return a list of records that match the given query configuration.
43
44
 
@@ -58,7 +59,7 @@ class ModuleBackend(clearskies.backends.Backend):
58
59
  if module_name_condition:
59
60
  module_name = module_name_condition[0].values[0]
60
61
  module = importlib.import_module(module_name)
61
- return [self.unpack(module)]
62
+ return RecordsQueryResult(records=[self.unpack(module)])
62
63
 
63
64
  matching_modules = []
64
65
  module_names = set(sys.modules) & set(globals())
@@ -92,8 +93,8 @@ class ModuleBackend(clearskies.backends.Backend):
92
93
  "module": module,
93
94
  }
94
95
 
95
- def paginate(self, records, query):
96
- return records
96
+ def paginate(self, records, query) -> RecordsQueryResult:
97
+ return RecordsQueryResult(records=records)
97
98
 
98
99
  def validate_pagination_data(self, data: dict[str, Any], case_mapping: Callable) -> str:
99
100
  extra_keys = set(data.keys()) - set(self.allowed_pagination_keys())
@@ -33,7 +33,7 @@ class Module(Builder):
33
33
  self.raw_docblock_to_md(source_class.doc).lstrip("\n").lstrip(" ")
34
34
  )
35
35
  class_doc += f"\n\n# {title}\n\n{elevator_pitch}\n\n"
36
- main_doc = "## Overview\n\n{overview}\n\n"
36
+ main_doc = f"## Overview\n\n{overview}\n\n"
37
37
  table_of_contents = " 1. [Overview](#overview)\n"
38
38
 
39
39
  # Find the documentation for all of our init args.