quartopydoc 0.12.0__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 (175) hide show
  1. quartopydoc-0.12.0/.devcontainer.json +26 -0
  2. quartopydoc-0.12.0/.flake8 +10 -0
  3. quartopydoc-0.12.0/.github/CODE_OF_CONDUCT.md +127 -0
  4. quartopydoc-0.12.0/.github/workflows/ci.yml +112 -0
  5. quartopydoc-0.12.0/.github/workflows/docs.yml +45 -0
  6. quartopydoc-0.12.0/.gitignore +150 -0
  7. quartopydoc-0.12.0/.pre-commit-config.yaml +20 -0
  8. quartopydoc-0.12.0/LICENSE +21 -0
  9. quartopydoc-0.12.0/MAINTAINERS.md +7 -0
  10. quartopydoc-0.12.0/Makefile +27 -0
  11. quartopydoc-0.12.0/PKG-INFO +215 -0
  12. quartopydoc-0.12.0/README.md +156 -0
  13. quartopydoc-0.12.0/_extensions/interlinks/.gitignore +3 -0
  14. quartopydoc-0.12.0/_extensions/interlinks/_extension.yml +7 -0
  15. quartopydoc-0.12.0/_extensions/interlinks/interlinks.lua +411 -0
  16. quartopydoc-0.12.0/_extensions/interlinks/objects.txt +7 -0
  17. quartopydoc-0.12.0/_extensions/interlinks/test.qmd +22 -0
  18. quartopydoc-0.12.0/case_studies/objects_sqla.inv +0 -0
  19. quartopydoc-0.12.0/case_studies/parsing.qmd +66 -0
  20. quartopydoc-0.12.0/case_studies/some_package.py +58 -0
  21. quartopydoc-0.12.0/case_studies/sphinx-inventory.md +52 -0
  22. quartopydoc-0.12.0/case_studies/sphinx-inventory.qmd +47 -0
  23. quartopydoc-0.12.0/docs/.gitignore +20 -0
  24. quartopydoc-0.12.0/docs/_quarto.yml +195 -0
  25. quartopydoc-0.12.0/docs/about.qmd +5 -0
  26. quartopydoc-0.12.0/docs/examples/images/pins-home.jpeg +0 -0
  27. quartopydoc-0.12.0/docs/examples/images/shiny-home.jpeg +0 -0
  28. quartopydoc-0.12.0/docs/examples/images/shinyswatch-home.jpeg +0 -0
  29. quartopydoc-0.12.0/docs/examples/images/siuba-home.jpeg +0 -0
  30. quartopydoc-0.12.0/docs/examples/images/vetiver-home.jpeg +0 -0
  31. quartopydoc-0.12.0/docs/examples/index.qmd +97 -0
  32. quartopydoc-0.12.0/docs/get-started/advanced-layouts.qmd +14 -0
  33. quartopydoc-0.12.0/docs/get-started/architecture.qmd +110 -0
  34. quartopydoc-0.12.0/docs/get-started/basic-building.qmd +88 -0
  35. quartopydoc-0.12.0/docs/get-started/basic-content.qmd +465 -0
  36. quartopydoc-0.12.0/docs/get-started/basic-docs.qmd +55 -0
  37. quartopydoc-0.12.0/docs/get-started/crossrefs.qmd +94 -0
  38. quartopydoc-0.12.0/docs/get-started/dev-big-picture.qmd +158 -0
  39. quartopydoc-0.12.0/docs/get-started/dev-dataclasses.qmd +15 -0
  40. quartopydoc-0.12.0/docs/get-started/dev-docstrings.qmd +101 -0
  41. quartopydoc-0.12.0/docs/get-started/dev-prepare.qmd +234 -0
  42. quartopydoc-0.12.0/docs/get-started/dev-renderers.qmd +157 -0
  43. quartopydoc-0.12.0/docs/get-started/dev-snippets.qmd +81 -0
  44. quartopydoc-0.12.0/docs/get-started/docstring-examples.qmd +177 -0
  45. quartopydoc-0.12.0/docs/get-started/docstring-style.qmd +23 -0
  46. quartopydoc-0.12.0/docs/get-started/extending.qmd +77 -0
  47. quartopydoc-0.12.0/docs/get-started/extra-build-sequence.qmd +57 -0
  48. quartopydoc-0.12.0/docs/get-started/interlinks-autolink.qmd +78 -0
  49. quartopydoc-0.12.0/docs/get-started/interlinks.qmd +211 -0
  50. quartopydoc-0.12.0/docs/get-started/overview.qmd +9 -0
  51. quartopydoc-0.12.0/docs/get-started/qpyd-cli.qmd +220 -0
  52. quartopydoc-0.12.0/docs/get-started/sidebar.qmd +58 -0
  53. quartopydoc-0.12.0/docs/objects-test.txt +5 -0
  54. quartopydoc-0.12.0/docs/styles.css +115 -0
  55. quartopydoc-0.12.0/docs/tutorials/index.qmd +12 -0
  56. quartopydoc-0.12.0/examples/.gitignore +4 -0
  57. quartopydoc-0.12.0/examples/auto-package/_quarto.yml +25 -0
  58. quartopydoc-0.12.0/examples/dascore/.gitignore +5 -0
  59. quartopydoc-0.12.0/examples/dascore/_quarto.yml +213 -0
  60. quartopydoc-0.12.0/examples/dascore/generate_api.py +113 -0
  61. quartopydoc-0.12.0/examples/dascore/index.md +11 -0
  62. quartopydoc-0.12.0/examples/pkgdown/.gitignore +3 -0
  63. quartopydoc-0.12.0/examples/pkgdown/_quarto.yml +35 -0
  64. quartopydoc-0.12.0/examples/pkgdown/objects.json +1 -0
  65. quartopydoc-0.12.0/examples/single-page/.gitignore +3 -0
  66. quartopydoc-0.12.0/examples/single-page/_quarto.yml +34 -0
  67. quartopydoc-0.12.0/examples/single-page/objects.json +1 -0
  68. quartopydoc-0.12.0/examples/single-page/reference/index.qmd +75 -0
  69. quartopydoc-0.12.0/examples/weird-install/_quarto.yml +22 -0
  70. quartopydoc-0.12.0/examples/weird-install/src/some_module.py +2 -0
  71. quartopydoc-0.12.0/pyproject.toml +72 -0
  72. quartopydoc-0.12.0/quartodoc/__init__.py +30 -0
  73. quartopydoc-0.12.0/quartodoc/__main__.py +283 -0
  74. quartopydoc-0.12.0/quartodoc/_griffe_compat/__init__.py +11 -0
  75. quartopydoc-0.12.0/quartodoc/_griffe_compat/_generate_stubs.py +71 -0
  76. quartopydoc-0.12.0/quartodoc/_griffe_compat/dataclasses.py +35 -0
  77. quartopydoc-0.12.0/quartodoc/_griffe_compat/docstrings.py +38 -0
  78. quartopydoc-0.12.0/quartodoc/_griffe_compat/expressions.py +48 -0
  79. quartopydoc-0.12.0/quartodoc/_pydantic_compat.py +18 -0
  80. quartopydoc-0.12.0/quartodoc/ast.py +391 -0
  81. quartopydoc-0.12.0/quartodoc/autosummary.py +911 -0
  82. quartopydoc-0.12.0/quartodoc/builder/__init__.py +0 -0
  83. quartopydoc-0.12.0/quartodoc/builder/_node.py +17 -0
  84. quartopydoc-0.12.0/quartodoc/builder/blueprint.py +589 -0
  85. quartopydoc-0.12.0/quartodoc/builder/collect.py +86 -0
  86. quartopydoc-0.12.0/quartodoc/builder/utils.py +120 -0
  87. quartopydoc-0.12.0/quartodoc/builder/write.py +17 -0
  88. quartopydoc-0.12.0/quartodoc/interlinks.py +431 -0
  89. quartopydoc-0.12.0/quartodoc/inventory.py +174 -0
  90. quartopydoc-0.12.0/quartodoc/layout.py +522 -0
  91. quartopydoc-0.12.0/quartodoc/pandoc/__init__.py +7 -0
  92. quartopydoc-0.12.0/quartodoc/pandoc/blocks.py +421 -0
  93. quartopydoc-0.12.0/quartodoc/pandoc/components.py +76 -0
  94. quartopydoc-0.12.0/quartodoc/pandoc/inlines.py +261 -0
  95. quartopydoc-0.12.0/quartodoc/parsers.py +8 -0
  96. quartopydoc-0.12.0/quartodoc/py.typed +0 -0
  97. quartopydoc-0.12.0/quartodoc/qpyd/README.md +78 -0
  98. quartopydoc-0.12.0/quartodoc/qpyd/__init__.py +16 -0
  99. quartopydoc-0.12.0/quartodoc/qpyd/__main__.py +6 -0
  100. quartopydoc-0.12.0/quartodoc/qpyd/clean.py +91 -0
  101. quartopydoc-0.12.0/quartodoc/qpyd/cli.py +89 -0
  102. quartopydoc-0.12.0/quartodoc/qpyd/config.py +206 -0
  103. quartopydoc-0.12.0/quartodoc/qpyd/convert.py +273 -0
  104. quartopydoc-0.12.0/quartodoc/qpyd/execute.py +274 -0
  105. quartopydoc-0.12.0/quartodoc/qpyd/nb.py +93 -0
  106. quartopydoc-0.12.0/quartodoc/qpyd/prerender.py +141 -0
  107. quartopydoc-0.12.0/quartodoc/qpyd/quarto_utils.py +351 -0
  108. quartopydoc-0.12.0/quartodoc/qpyd/render.py +85 -0
  109. quartopydoc-0.12.0/quartodoc/qpyd/scaffold.py +133 -0
  110. quartopydoc-0.12.0/quartodoc/qpyd/tests/__init__.py +0 -0
  111. quartopydoc-0.12.0/quartodoc/qpyd/tests/conftest.py +15 -0
  112. quartopydoc-0.12.0/quartodoc/qpyd/tests/data/nb_fail.qmd +9 -0
  113. quartopydoc-0.12.0/quartodoc/qpyd/tests/data/nb_ok.qmd +11 -0
  114. quartopydoc-0.12.0/quartodoc/qpyd/tests/data/prose.qmd +5 -0
  115. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_cli.py +78 -0
  116. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_config.py +39 -0
  117. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_convert.py +69 -0
  118. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_execute.py +47 -0
  119. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_safety.py +163 -0
  120. quartopydoc-0.12.0/quartodoc/qpyd/tests/test_variables.py +34 -0
  121. quartopydoc-0.12.0/quartodoc/qpyd/variables.py +90 -0
  122. quartopydoc-0.12.0/quartodoc/renderers/__init__.py +4 -0
  123. quartopydoc-0.12.0/quartodoc/renderers/base.py +119 -0
  124. quartopydoc-0.12.0/quartodoc/renderers/md_renderer.py +966 -0
  125. quartopydoc-0.12.0/quartodoc/static/styles.css +15 -0
  126. quartopydoc-0.12.0/quartodoc/tests/__init__.py +0 -0
  127. quartopydoc-0.12.0/quartodoc/tests/__snapshots__/test_builder.ambr +47 -0
  128. quartopydoc-0.12.0/quartodoc/tests/__snapshots__/test_renderers.ambr +1306 -0
  129. quartopydoc-0.12.0/quartodoc/tests/__snapshots__/test_validation.ambr +39 -0
  130. quartopydoc-0.12.0/quartodoc/tests/example.py +26 -0
  131. quartopydoc-0.12.0/quartodoc/tests/example_alias_target.py +13 -0
  132. quartopydoc-0.12.0/quartodoc/tests/example_alias_target__nested.py +21 -0
  133. quartopydoc-0.12.0/quartodoc/tests/example_attribute.py +7 -0
  134. quartopydoc-0.12.0/quartodoc/tests/example_class.py +63 -0
  135. quartopydoc-0.12.0/quartodoc/tests/example_docstring_full.py +68 -0
  136. quartopydoc-0.12.0/quartodoc/tests/example_docstring_styles.py +81 -0
  137. quartopydoc-0.12.0/quartodoc/tests/example_dynamic.py +51 -0
  138. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/.gitignore +2 -0
  139. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/README.md +3 -0
  140. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/_inv/other_objects.json +1 -0
  141. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/_quarto.yml +10 -0
  142. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/interlinks.lua +411 -0
  143. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/objects.json +1 -0
  144. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/spec.yml +107 -0
  145. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/test.md +176 -0
  146. quartopydoc-0.12.0/quartodoc/tests/example_interlinks/test.qmd +266 -0
  147. quartopydoc-0.12.0/quartodoc/tests/example_signature.py +44 -0
  148. quartopydoc-0.12.0/quartodoc/tests/example_star_imports.py +1 -0
  149. quartopydoc-0.12.0/quartodoc/tests/example_stubs.py +2 -0
  150. quartopydoc-0.12.0/quartodoc/tests/example_stubs.pyi +2 -0
  151. quartopydoc-0.12.0/quartodoc/tests/pandoc/test_blocks.py +430 -0
  152. quartopydoc-0.12.0/quartodoc/tests/pandoc/test_inlines.py +121 -0
  153. quartopydoc-0.12.0/quartodoc/tests/test_ast.py +110 -0
  154. quartopydoc-0.12.0/quartodoc/tests/test_basic.py +225 -0
  155. quartopydoc-0.12.0/quartodoc/tests/test_builder.py +227 -0
  156. quartopydoc-0.12.0/quartodoc/tests/test_builder_blueprint.py +435 -0
  157. quartopydoc-0.12.0/quartodoc/tests/test_cli.py +29 -0
  158. quartopydoc-0.12.0/quartodoc/tests/test_interlinks.py +117 -0
  159. quartopydoc-0.12.0/quartodoc/tests/test_layout.py +59 -0
  160. quartopydoc-0.12.0/quartodoc/tests/test_qpyd.py +20 -0
  161. quartopydoc-0.12.0/quartodoc/tests/test_renderers.py +500 -0
  162. quartopydoc-0.12.0/quartodoc/tests/test_validation.py +57 -0
  163. quartopydoc-0.12.0/quartodoc/validation.py +88 -0
  164. quartopydoc-0.12.0/quartopydoc.egg-info/PKG-INFO +215 -0
  165. quartopydoc-0.12.0/quartopydoc.egg-info/SOURCES.txt +173 -0
  166. quartopydoc-0.12.0/quartopydoc.egg-info/dependency_links.txt +1 -0
  167. quartopydoc-0.12.0/quartopydoc.egg-info/entry_points.txt +4 -0
  168. quartopydoc-0.12.0/quartopydoc.egg-info/requires.txt +16 -0
  169. quartopydoc-0.12.0/quartopydoc.egg-info/scm_file_list.json +169 -0
  170. quartopydoc-0.12.0/quartopydoc.egg-info/scm_version.json +8 -0
  171. quartopydoc-0.12.0/quartopydoc.egg-info/top_level.txt +1 -0
  172. quartopydoc-0.12.0/scripts/build_tmp_starter.py +32 -0
  173. quartopydoc-0.12.0/scripts/filter-spec/generate_files.py +54 -0
  174. quartopydoc-0.12.0/scripts/filter-spec/generate_test_qmd.py +38 -0
  175. quartopydoc-0.12.0/setup.cfg +4 -0
@@ -0,0 +1,26 @@
1
+ {
2
+ "image": "mcr.microsoft.com/devcontainers/python:3",
3
+ "features": {
4
+ "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": {
5
+ "version": "prerelease"
6
+ }
7
+ },
8
+ "forwardPorts": [
9
+ 8888
10
+ ],
11
+ "portsAttributes": {
12
+ "8888": {
13
+ "label": "Jupyter"
14
+ }
15
+ },
16
+ "customizations": {
17
+ "vscode": {
18
+ "extensions": [
19
+ "ms-toolsai.jupyter"
20
+ ]
21
+ }
22
+ },
23
+ "onCreateCommand": {
24
+ "prep-python": "python3 -m pip install --upgrade setuptools jupyterlab ipython jupyterlab-quarto -e '.[dev]'"
25
+ }
26
+ }
@@ -0,0 +1,10 @@
1
+ [flake8]
2
+ exclude = docs, test_*, .flake8, examples
3
+ max-line-length = 90
4
+ ignore =
5
+ # line too long
6
+ E501,
7
+ # line before binary operator
8
+ W503,
9
+ # redefinition of unused function name
10
+ F811
@@ -0,0 +1,127 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at codeofconduct@posit.co.
63
+ All complaints will be reviewed and investigated promptly and fairly.
64
+
65
+ All community leaders are obligated to respect the privacy and security of the
66
+ reporter of any incident.
67
+
68
+ ## Enforcement Guidelines
69
+
70
+ Community leaders will follow these Community Impact Guidelines in determining
71
+ the consequences for any action they deem in violation of this Code of Conduct:
72
+
73
+ ### 1. Correction
74
+
75
+ **Community Impact**: Use of inappropriate language or other behavior deemed
76
+ unprofessional or unwelcome in the community.
77
+
78
+ **Consequence**: A private, written warning from community leaders, providing
79
+ clarity around the nature of the violation and an explanation of why the
80
+ behavior was inappropriate. A public apology may be requested.
81
+
82
+ ### 2. Warning
83
+
84
+ **Community Impact**: A violation through a single incident or series of
85
+ actions.
86
+
87
+ **Consequence**: A warning with consequences for continued behavior. No
88
+ interaction with the people involved, including unsolicited interaction with
89
+ those enforcing the Code of Conduct, for a specified period of time. This
90
+ includes avoiding interactions in community spaces as well as external channels
91
+ like social media. Violating these terms may lead to a temporary or permanent
92
+ ban.
93
+
94
+ ### 3. Temporary Ban
95
+
96
+ **Community Impact**: A serious violation of community standards, including
97
+ sustained inappropriate behavior.
98
+
99
+ **Consequence**: A temporary ban from any sort of interaction or public
100
+ communication with the community for a specified period of time. No public or
101
+ private interaction with the people involved, including unsolicited interaction
102
+ with those enforcing the Code of Conduct, is allowed during this period.
103
+ Violating these terms may lead to a permanent ban.
104
+
105
+ ### 4. Permanent Ban
106
+
107
+ **Community Impact**: Demonstrating a pattern of violation of community
108
+ standards, including sustained inappropriate behavior, harassment of an
109
+ individual, or aggression toward or disparagement of classes of individuals.
110
+
111
+ **Consequence**: A permanent ban from any sort of public interaction within the
112
+ community.
113
+
114
+ ## Attribution
115
+
116
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
117
+ version 2.1, available at
118
+ <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
119
+
120
+ Community Impact Guidelines were inspired by
121
+ [Mozilla's code of conduct enforcement ladder][https://github.com/mozilla/inclusion].
122
+
123
+ For answers to common questions about this code of conduct, see the FAQ at
124
+ <https://www.contributor-covenant.org/faq>. Translations are available at <https://www.contributor-covenant.org/translations>.
125
+
126
+ [homepage]: https://www.contributor-covenant.org
127
+
@@ -0,0 +1,112 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: ["main", "dev-*"]
7
+ pull_request:
8
+ release:
9
+ types: [published]
10
+
11
+ jobs:
12
+ test:
13
+ name: "Test"
14
+ runs-on: ubuntu-latest
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ # Checks based on python versions ---
19
+ python-version: ["3.10", "3.11", "3.12"]
20
+ requirements: [""]
21
+
22
+ include:
23
+ - name: "pydantic v1"
24
+ requirements: "pydantic<2.0.0"
25
+ python-version: "3.10"
26
+
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@v4
31
+ with:
32
+ enable-cache: true
33
+ - name: Set up Python ${{ matrix.python-version }}
34
+ run: uv python install ${{ matrix.python-version }}
35
+ - name: Install dependencies
36
+ run: |
37
+ # include requirements if specified
38
+ if [ -n "$REQUIREMENTS" ]; then
39
+ uv sync --group dev
40
+ uv pip install $REQUIREMENTS
41
+ else
42
+ uv sync --group dev
43
+ fi
44
+ env:
45
+ REQUIREMENTS: ${{ matrix.requirements }}
46
+ - name: Run tests
47
+ run: |
48
+ uv run pytest --cov
49
+ - name: Upload results to Codecov
50
+ uses: codecov/codecov-action@v4
51
+ with:
52
+ token: ${{ secrets.CODECOV_TOKEN }}
53
+
54
+ pre-commit:
55
+ name: "pre-commit checks"
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - uses: actions/checkout@v2
59
+ - name: Install uv
60
+ uses: astral-sh/setup-uv@v4
61
+ with:
62
+ enable-cache: true
63
+ - name: Set up Python 3.10
64
+ run: uv python install 3.10
65
+ - name: Install dependencies
66
+ run: uv sync --group dev
67
+ - uses: pre-commit/action@v3.0.0
68
+
69
+ release-pypi:
70
+ name: "Release to pypi"
71
+ runs-on: ubuntu-latest
72
+ if: github.event_name == 'release'
73
+ needs: [test]
74
+ steps:
75
+ - uses: actions/checkout@v2
76
+ - uses: actions/setup-python@v2
77
+ with:
78
+ python-version: "3.10"
79
+ - name: "Build Package"
80
+ run: |
81
+ python -m pip install build wheel
82
+ python -m build --sdist --wheel
83
+ - name: "Deploy to Test PyPI"
84
+ uses: pypa/gh-action-pypi-publish@release/v1
85
+ with:
86
+ user: __token__
87
+ password: ${{ secrets.PYPI_API_TOKEN }}
88
+
89
+ build-docs:
90
+ runs-on: ubuntu-latest
91
+ steps:
92
+ - uses: actions/checkout@v2
93
+ - name: Install uv
94
+ uses: astral-sh/setup-uv@v4
95
+ with:
96
+ enable-cache: true
97
+ - name: Set up Python 3.10
98
+ run: uv python install 3.10
99
+ - name: Install dependencies
100
+ run: |
101
+ uv sync --group dev
102
+ # TODO: temporary installs for examples
103
+ # once quartodoc is stable we should move into their own libraries
104
+ uv pip install shiny shinylive
105
+ uv pip install --no-deps dascore==0.0.8
106
+ - uses: quarto-dev/quarto-actions/setup@v2
107
+ - name: Test building starter template
108
+ run: |
109
+ make test-overview-template
110
+ - name: Build docs
111
+ run: |
112
+ make docs-build
@@ -0,0 +1,45 @@
1
+ name: Docs
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: ["main"]
7
+
8
+ # needed for peaceiris/actions-gh-pages to push the gh-pages branch
9
+ permissions:
10
+ contents: write
11
+
12
+ # never let two deploys race each other onto gh-pages
13
+ concurrency:
14
+ group: docs-deploy
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ deploy-docs:
19
+ name: "Build and deploy docs"
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v4
25
+ with:
26
+ enable-cache: true
27
+ - name: Set up Python 3.10
28
+ run: uv python install 3.10
29
+ - name: Install dependencies
30
+ run: |
31
+ uv sync --group dev
32
+ # TODO: temporary installs for examples
33
+ # once quartodoc is stable we should move into their own libraries
34
+ uv pip install shiny shinylive
35
+ uv pip install --no-deps dascore==0.0.8
36
+ - uses: quarto-dev/quarto-actions/setup@v2
37
+ - name: Build docs
38
+ run: |
39
+ make docs-build
40
+ - name: Deploy to gh-pages
41
+ uses: peaceiris/actions-gh-pages@v4
42
+ with:
43
+ github_token: ${{ secrets.GITHUB_TOKEN }}
44
+ publish_dir: docs/_build
45
+ publish_branch: gh-pages
@@ -0,0 +1,150 @@
1
+ # Notebooks ===================================================================
2
+ *.ipynb
3
+
4
+ # Mac OSX =====================================================================
5
+ .DS_Store
6
+
7
+ # Vim =========================================================================
8
+ .*.sw[po]
9
+
10
+ # Python ======================================================================
11
+ # Byte-compiled / optimized / DLL files
12
+ __pycache__/
13
+ *.py[cod]
14
+ *$py.class
15
+
16
+ # C extensions
17
+ *.so
18
+
19
+ # Distribution / packaging
20
+ .Python
21
+ build/
22
+ develop-eggs/
23
+ dist/
24
+ downloads/
25
+ eggs/
26
+ .eggs/
27
+ lib/
28
+ lib64/
29
+ parts/
30
+ sdist/
31
+ var/
32
+ wheels/
33
+ pip-wheel-metadata/
34
+ share/python-wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .nox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ coverage.xml
59
+ *.cover
60
+ *.py,cover
61
+ .hypothesis/
62
+ .pytest_cache/
63
+
64
+ # Translations
65
+ *.mo
66
+ *.pot
67
+
68
+ # Django stuff:
69
+ *.log
70
+ local_settings.py
71
+ db.sqlite3
72
+ db.sqlite3-journal
73
+
74
+ # Flask stuff:
75
+ instance/
76
+ .webassets-cache
77
+
78
+ # Scrapy stuff:
79
+ .scrapy
80
+
81
+ # Sphinx documentation
82
+ docs/_build/
83
+
84
+ # PyBuilder
85
+ target/
86
+
87
+ # Jupyter Notebook
88
+ .ipynb_checkpoints
89
+
90
+ # IPython
91
+ profile_default/
92
+ ipython_config.py
93
+
94
+ # pyenv
95
+ .python-version
96
+
97
+ # pipenv
98
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
99
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
100
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
101
+ # install all needed dependencies.
102
+ #Pipfile.lock
103
+
104
+ # uv
105
+ # the lockfile is deliberately not tracked: dependency bounds in pyproject.toml
106
+ # are the source of truth, and uv regenerates this on every sync
107
+ uv.lock
108
+
109
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
110
+ __pypackages__/
111
+
112
+ # Celery stuff
113
+ celerybeat-schedule
114
+ celerybeat.pid
115
+
116
+ # SageMath parsed files
117
+ *.sage.py
118
+
119
+ # Environments
120
+ .env
121
+ .venv
122
+ env/
123
+ venv/
124
+ ENV/
125
+ env.bak/
126
+ venv.bak/
127
+
128
+ # Spyder project settings
129
+ .spyderproject
130
+ .spyproject
131
+
132
+ # Rope project settings
133
+ .ropeproject
134
+
135
+ # mkdocs documentation
136
+ /site
137
+
138
+ # mypy
139
+ .mypy_cache/
140
+ .dmypy.json
141
+ dmypy.json
142
+
143
+ # Pyre type checker
144
+ .pyre/
145
+ .Rproj.user
146
+
147
+ # Local Netlify folder
148
+ .netlify
149
+
150
+ /.luarc.json
@@ -0,0 +1,20 @@
1
+ exclude: ".*\\.(csv)|(md)|(json)|(ambr)"
2
+ repos:
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v2.4.0
5
+ hooks:
6
+ - id: trailing-whitespace
7
+ - id: end-of-file-fixer
8
+ - id: check-yaml
9
+ args: ["--unsafe"]
10
+ - id: check-added-large-files
11
+ - repo: https://github.com/psf/black
12
+ rev: 23.7.0
13
+ hooks:
14
+ - id: black
15
+ - repo: https://github.com/PyCQA/flake8
16
+ rev: 6.1.0
17
+ hooks:
18
+ - id: flake8
19
+ types:
20
+ - python
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 quartodoc authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,7 @@
1
+ # Who maintains quartopydoc
2
+
3
+ The quartodoc package was created by and is currently maintained by Michael Chow <michael.chow@posit.co>. [Posit Software, PBC](https://posit.co/products/open-source/) is a copyright holder and funder of this package.
4
+
5
+ The `quartopydoc` package is a fork of `quartodoc` and is currently maintained by [Cliff Kerr](https://github.com/cliffckerr). If something's broken, it's most likely his fault.
6
+
7
+ Several individuals in the community have taken an active role in helping to maintain this package and submit fixes. Those individuals are shown in the git changelog.
@@ -0,0 +1,27 @@
1
+ EXAMPLE_INTERLINKS=quartodoc/tests/example_interlinks
2
+
3
+ # These 2 rules are used to generate the example_interlinks folder,
4
+ # which contains a full example for the interlinks filter to be tested
5
+
6
+ $(EXAMPLE_INTERLINKS): scripts/filter-spec/generate_files.py
7
+ uv run python $<
8
+
9
+ $(EXAMPLE_INTERLINKS)/test.qmd: scripts/filter-spec/generate_test_qmd.py
10
+ uv run python $<
11
+
12
+ $(EXAMPLE_INTERLINKS)/test.md: $(EXAMPLE_INTERLINKS)/test.qmd _extensions/interlinks/interlinks.lua
13
+ cd $(EXAMPLE_INTERLINKS) && quarto render test.qmd --to gfm
14
+
15
+
16
+
17
+ docs-build: export PLUM_SIMPLE_DOC=1
18
+ docs-build:
19
+ cd docs && uv run quartodoc build --verbose
20
+ cd docs && uv run quartodoc interlinks
21
+ cd docs && quarto add --no-prompt ..
22
+ uv run quarto render docs
23
+
24
+ test-overview-template:
25
+ uv run python scripts/build_tmp_starter.py
26
+
27
+ test-interlinks: quartodoc/tests/example_interlinks/test.md