maidr 1.4.4__tar.gz → 1.4.9__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 (155) hide show
  1. maidr-1.4.9/.commitlintrc.cjs +10 -0
  2. maidr-1.4.9/.editorconfig +17 -0
  3. maidr-1.4.9/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  4. maidr-1.4.9/.github/ISSUE_TEMPLATE/feature_request.md +37 -0
  5. maidr-1.4.9/.github/PULL_REQUEST_TEMPLATE.md +53 -0
  6. maidr-1.4.9/.github/copilot-instructions.md +5 -0
  7. maidr-1.4.9/.github/workflows/ci.yml +86 -0
  8. maidr-1.4.9/.github/workflows/docs.yml +51 -0
  9. maidr-1.4.9/.github/workflows/release.yml +117 -0
  10. maidr-1.4.9/.gitignore +177 -0
  11. maidr-1.4.9/.pre-commit-config.yaml +6 -0
  12. maidr-1.4.9/.vscode/extensions.json +44 -0
  13. maidr-1.4.9/.vscode/settings.json +74 -0
  14. maidr-1.4.9/CHANGELOG.md +1318 -0
  15. maidr-1.4.9/CONDUCT.md +43 -0
  16. maidr-1.4.9/CONTRIBUTING.md +21 -0
  17. {maidr-1.4.4 → maidr-1.4.9}/PKG-INFO +28 -20
  18. maidr-1.4.9/docs/.gitignore +11 -0
  19. maidr-1.4.9/docs/CNAME +1 -0
  20. maidr-1.4.9/docs/_environment +1 -0
  21. maidr-1.4.9/docs/_extensions/machow/interlinks/.gitignore +3 -0
  22. maidr-1.4.9/docs/_extensions/machow/interlinks/_extension.yml +7 -0
  23. maidr-1.4.9/docs/_extensions/machow/interlinks/interlinks.lua +254 -0
  24. maidr-1.4.9/docs/_extensions/shafayetShafee/line-highlight/_extension.yml +8 -0
  25. maidr-1.4.9/docs/_extensions/shafayetShafee/line-highlight/line-highlight.lua +167 -0
  26. maidr-1.4.9/docs/_extensions/shafayetShafee/line-highlight/resources/css/line-highlight.css +35 -0
  27. maidr-1.4.9/docs/_extensions/shafayetShafee/line-highlight/resources/js/line-highlight.js +132 -0
  28. maidr-1.4.9/docs/_quarto.yml +110 -0
  29. maidr-1.4.9/docs/examples.qmd +606 -0
  30. maidr-1.4.9/docs/index.qmd +376 -0
  31. maidr-1.4.9/docs/styles.css +1 -0
  32. maidr-1.4.9/example/bar/example_bar_plot.ipynb +142 -0
  33. maidr-1.4.9/example/bar/matplotlib/example_mpl_bar_plot.py +18 -0
  34. maidr-1.4.9/example/bar/seaborn/example_sns_bar_plot.py +19 -0
  35. maidr-1.4.9/example/box/example_box_plot.ipynb +230 -0
  36. maidr-1.4.9/example/box/matplotlib/example_mpl_box.py +64 -0
  37. maidr-1.4.9/example/box/seaborn/example_sns_box.py +42 -0
  38. maidr-1.4.9/example/candle_stick/legacy_candlestick_example.py +241 -0
  39. maidr-1.4.9/example/candle_stick/mplfinance_candlestick_example.py +46 -0
  40. maidr-1.4.9/example/candle_stick/volcandat.csv +21 -0
  41. maidr-1.4.9/example/count/example_count_plot.ipynb +88 -0
  42. maidr-1.4.9/example/count/seaborn/example_sns_count_plot.py +16 -0
  43. maidr-1.4.9/example/dodged/matplotlib/example_mpl_dodged.py +47 -0
  44. maidr-1.4.9/example/dodged/seaborn/example_sns_dodged.py +74 -0
  45. maidr-1.4.9/example/facet-subplots/matplotlib/example_mpl_facet_bar_plot.py +61 -0
  46. maidr-1.4.9/example/facet-subplots/matplotlib/example_mpl_facet_combined_plot.py +119 -0
  47. maidr-1.4.9/example/facet-subplots/seaborn/example_sns_facet_bar_plot.py +95 -0
  48. maidr-1.4.9/example/facet-subplots/seaborn/example_sns_facet_combined_plot.py +238 -0
  49. maidr-1.4.9/example/heatmap/example_heatmap_plot.ipynb +170 -0
  50. maidr-1.4.9/example/heatmap/matplotlib/example_mpl_heatmap.py +59 -0
  51. maidr-1.4.9/example/heatmap/seaborn/example_sns_heatmap.py +16 -0
  52. maidr-1.4.9/example/histogram/example_histogram_plot.ipynb +129 -0
  53. maidr-1.4.9/example/histogram/matplotlib/example_mpl_hist.py +19 -0
  54. maidr-1.4.9/example/histogram/matplotlib/histogram_with_kde_matplotlib.py +35 -0
  55. maidr-1.4.9/example/histogram/seaborn/example_sns_hist.py +21 -0
  56. maidr-1.4.9/example/histogram/seaborn/histogram_with_kde_seaborn.py +39 -0
  57. maidr-1.4.9/example/kde/example_kde_plots.ipynb +244 -0
  58. maidr-1.4.9/example/kde/matplotlib/multiple_kde_matplotlib.py +43 -0
  59. maidr-1.4.9/example/kde/matplotlib/single_kde_matplotlib.py +37 -0
  60. maidr-1.4.9/example/kde/seaborn/multiple_kde_seaborn.py +33 -0
  61. maidr-1.4.9/example/kde/seaborn/single_kde_seaborn.py +15 -0
  62. maidr-1.4.9/example/line/example_line_plot.ipynb +153 -0
  63. maidr-1.4.9/example/line/matplotlib/example_mpl_line.py +29 -0
  64. maidr-1.4.9/example/line/seaborn/example_sns_line.py +27 -0
  65. maidr-1.4.9/example/multilayer/example_mpl_multilayer.py +55 -0
  66. maidr-1.4.9/example/multilayer/example_multilayer_plot.ipynb +129 -0
  67. maidr-1.4.9/example/multiline/example_multiline_plot.ipynb +187 -0
  68. maidr-1.4.9/example/multiline/matplotlib/example_mpl_multiline.py +41 -0
  69. maidr-1.4.9/example/multiline/seaborn/example_sns_multiline.py +47 -0
  70. maidr-1.4.9/example/multipanel/example_multipanel_plot.ipynb +215 -0
  71. maidr-1.4.9/example/multipanel/matplotlib/example_mpl_multipanel.py +55 -0
  72. maidr-1.4.9/example/multipanel/seaborn/example_sns_multipanel.py +62 -0
  73. maidr-1.4.9/example/quarto/demo.qmd +116 -0
  74. maidr-1.4.9/example/reg/example_reg_plots.ipynb +126 -0
  75. maidr-1.4.9/example/reg/matplotlib/example_matplotlib_smooth_plot.py +26 -0
  76. maidr-1.4.9/example/reg/seaborn/example_sns_reg.py +25 -0
  77. maidr-1.4.9/example/scatter/example_scatter_plot.ipynb +201 -0
  78. maidr-1.4.9/example/scatter/matplotlib/example_mpl_scatter.py +20 -0
  79. maidr-1.4.9/example/scatter/seaborn/example_sns_scatter.py +21 -0
  80. maidr-1.4.9/example/shiny/example_shiny_scatter.py +52 -0
  81. maidr-1.4.9/example/stacked/matplotlib/example_mpl_stacked.html +9 -0
  82. maidr-1.4.9/example/stacked/matplotlib/example_mpl_stacked.py +31 -0
  83. maidr-1.4.9/example/stacked/seaborn/example_sns_stacked.html +479 -0
  84. maidr-1.4.9/example/stacked/seaborn/example_sns_stacked.py +41 -0
  85. maidr-1.4.9/example/streamlit/example_streamlit_app.py +67 -0
  86. {maidr-1.4.4 → maidr-1.4.9}/maidr/__init__.py +1 -1
  87. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/maidr.py +5 -7
  88. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/barplot.py +3 -1
  89. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/candlestick.py +13 -19
  90. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/lineplot.py +0 -1
  91. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/maidr_plot.py +8 -1
  92. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/mplfinance_barplot.py +10 -17
  93. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/mplfinance_lineplot.py +6 -15
  94. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/barplot.py +0 -2
  95. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/lineplot.py +0 -1
  96. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/mplfinance.py +2 -1
  97. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/mplfinance_utils.py +75 -69
  98. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/plot_detection.py +2 -2
  99. {maidr-1.4.4 → maidr-1.4.9}/pyproject.toml +62 -35
  100. maidr-1.4.9/tests/__init__.py +0 -0
  101. maidr-1.4.9/tests/conftest.py +37 -0
  102. maidr-1.4.9/tests/core/__init__.py +0 -0
  103. maidr-1.4.9/tests/core/enum/__init__.py +0 -0
  104. maidr-1.4.9/tests/core/plot/__init__.py +0 -0
  105. maidr-1.4.9/tests/core/test_figure_manager.py +76 -0
  106. maidr-1.4.9/tests/core/test_maidr_plot.py +8 -0
  107. maidr-1.4.9/tests/core/test_maidr_plot_factory.py +45 -0
  108. maidr-1.4.9/tests/fixture/__init__.py +0 -0
  109. maidr-1.4.9/tests/fixture/library_factory.py +11 -0
  110. maidr-1.4.9/tests/fixture/matplotlib_factory.py +46 -0
  111. maidr-1.4.9/tests/fixture/seaborn_factory.py +37 -0
  112. maidr-1.4.9/tox.ini +19 -0
  113. maidr-1.4.9/uv.lock +3994 -0
  114. {maidr-1.4.4 → maidr-1.4.9}/LICENSE +0 -0
  115. {maidr-1.4.4 → maidr-1.4.9}/README.md +0 -0
  116. {maidr-1.4.4 → maidr-1.4.9}/maidr/api.py +0 -0
  117. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/__init__.py +0 -0
  118. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/context_manager.py +0 -0
  119. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/enum/__init__.py +0 -0
  120. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/enum/library.py +0 -0
  121. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/enum/maidr_key.py +0 -0
  122. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/enum/plot_type.py +0 -0
  123. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/enum/smooth_keywords.py +0 -0
  124. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/figure_manager.py +0 -0
  125. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/__init__.py +0 -0
  126. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/boxplot.py +0 -0
  127. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/grouped_barplot.py +0 -0
  128. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/heatmap.py +0 -0
  129. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/histogram.py +0 -0
  130. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/maidr_plot_factory.py +0 -0
  131. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/regplot.py +0 -0
  132. {maidr-1.4.4 → maidr-1.4.9}/maidr/core/plot/scatterplot.py +0 -0
  133. {maidr-1.4.4 → maidr-1.4.9}/maidr/exception/__init__.py +0 -0
  134. {maidr-1.4.4 → maidr-1.4.9}/maidr/exception/extraction_error.py +0 -0
  135. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/__init__.py +0 -0
  136. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/boxplot.py +0 -0
  137. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/candlestick.py +0 -0
  138. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/clear.py +0 -0
  139. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/common.py +0 -0
  140. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/heatmap.py +0 -0
  141. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/highlight.py +0 -0
  142. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/histogram.py +0 -0
  143. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/kdeplot.py +0 -0
  144. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/regplot.py +0 -0
  145. {maidr-1.4.4 → maidr-1.4.9}/maidr/patch/scatterplot.py +0 -0
  146. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/__init__.py +0 -0
  147. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/dedup_utils.py +0 -0
  148. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/environment.py +0 -0
  149. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/mixin/__init__.py +0 -0
  150. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/mixin/extractor_mixin.py +0 -0
  151. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/mixin/merger_mixin.py +0 -0
  152. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/regression_line_utils.py +0 -0
  153. {maidr-1.4.4 → maidr-1.4.9}/maidr/util/svg_utils.py +0 -0
  154. {maidr-1.4.4 → maidr-1.4.9}/maidr/widget/__init__.py +0 -0
  155. {maidr-1.4.4 → maidr-1.4.9}/maidr/widget/shiny.py +0 -0
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ extends: ["@commitlint/config-conventional"],
3
+ rules: {
4
+ "body-max-line-length": [0, "always", 0], // Disable line length checking for the body
5
+ "body-max-length": [0, "always", Infinity], // Disable total body length checking
6
+ "header-max-length": [0, "always", 0], // Disable header length checking
7
+ "footer-max-line-length": [0, "always", 0], // Disable line length checking for the footer
8
+ "footer-max-length": [0, "always", Infinity], // Disable total footer length checking
9
+ },
10
+ };
@@ -0,0 +1,17 @@
1
+ # Check http://editorconfig.org for more information
2
+ # This is the main config file for this project:
3
+ root = true
4
+
5
+ [*]
6
+ charset = utf-8
7
+ trim_trailing_whitespace = true
8
+ end_of_line = lf
9
+ indent_style = space
10
+ insert_final_newline = true
11
+ indent_size = 2
12
+
13
+ [*.{rs,py,pyi}]
14
+ indent_size = 4
15
+
16
+ [*.md]
17
+ max_line_length = 120
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "fix(): address an issue where "
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ # Bug Report
10
+
11
+ ## Description
12
+ <!-- Please provide a clear and concise description of the bug. -->
13
+
14
+ ## Steps to Reproduce
15
+
16
+ 1. Step 1
17
+ 2. Step 2
18
+ 3. Step 3
19
+
20
+ ## Actual Behavior
21
+ <!-- Please describe what actually happened. -->
22
+
23
+ ## Expected Behavior
24
+ <!-- Please describe what you expected to happen. -->
25
+
26
+ ## Screenshots
27
+ <!-- If applicable, add screenshots to help explain the problem. -->
28
+ <!-- You can take a gif animation screenshot very easily without any additional installation by using this browser-based tool: -->
29
+ <!-- https://gifcap.dev -->
30
+
31
+ ## Environment
32
+ - Operating System: [e.g. Windows 10]
33
+ - Browser: [e.g. Chrome, Firefox]
34
+ - Version: [e.g. 1.0.0]
35
+
36
+ ## Additional Information
37
+ <!-- Add any other relevant information about the problem here. -->
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: "feat: "
5
+ labels: enhancement
6
+ assignees: ''
7
+ ---
8
+
9
+ # Feature Request
10
+
11
+ ## Description
12
+
13
+ Please provide a clear and concise description of the feature you would like to request.
14
+
15
+ ## Motivation
16
+
17
+ Explain why this feature is important and how it would benefit the project.
18
+
19
+ ## Proposed Solution
20
+
21
+ Outline your proposed solution or any ideas you have for implementing this feature.
22
+
23
+ ## Additional Context
24
+
25
+ <!-- Add any additional context or screenshots about the feature request here. -->
26
+ <!-- If applicable, add screenshots to help explain the problem. -->
27
+ <!-- You can take a gif animation screenshot very easily without any additional installation by using this browser-based tool: -->
28
+ <!-- https://gifcap.dev -->
29
+
30
+
31
+ ## Checklist
32
+
33
+ - [ ] I have searched for similar feature requests and confirmed that this is a new request.
34
+ - [ ] I have provided a clear and concise description of the feature.
35
+ - [ ] I have explained the motivation behind this feature request.
36
+ - [ ] I have outlined a proposed solution or ideas for implementing this feature.
37
+ - [ ] I have provided any additional context or screenshots if applicable.
@@ -0,0 +1,53 @@
1
+ <!-- Suggested PR Title: [feat/fix/refactor/perf/test/ci/docs/chore] brief description of the change -->
2
+ <!-- Please follow Conventional Commits: https://www.conventionalcommits.org/en/v1.0.0/ -->
3
+
4
+ ## Description
5
+
6
+ Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
7
+
8
+ ## Type of Change
9
+
10
+ - [ ] Bug fix
11
+ - [ ] New feature
12
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
13
+ - [ ] Documentation update
14
+
15
+ ## Checklist
16
+
17
+ - [ ] My code follows the style guidelines of this project
18
+ - [ ] I have performed a self-review of my code
19
+ - [ ] I have commented my code, particularly in hard-to-understand areas
20
+ - [ ] I have made corresponding changes to the documentation
21
+ - [ ] My changes generate no new warnings
22
+ - [ ] Any dependent changes have been merged and published in downstream modules
23
+
24
+ # Pull Request
25
+
26
+ ## Description
27
+ <!-- Provide a brief description of the changes made in this pull request. -->
28
+
29
+ ## Related Issues
30
+ <!-- Specify any related issues or tickets that this pull request addresses. -->
31
+
32
+ ## Changes Made
33
+ <!-- Describe the specific changes made in this pull request. -->
34
+
35
+ ## Screenshots (if applicable)
36
+ <!-- Include any relevant screenshots or images to help visualize the changes. -->
37
+ <!-- You can take a gif animation screenshot very easily without any additional installation by using this browser-based tool: -->
38
+ <!-- https://gifcap.dev -->
39
+
40
+ ## Checklist
41
+ <!-- Please select all applicable options. -->
42
+ <!-- To select your options, please put an 'x' in the all boxes that apply. -->
43
+
44
+ - [ ] I have read the [Contributor Guidelines](../CONTRIBUTING.md).
45
+ - [ ] I have performed a self-review of my own code and ensured it follows the project's coding standards.
46
+ - [ ] I have tested the changes locally following `ManualTestingProcess.md`, and all tests related to this pull request pass.
47
+ - [ ] I have commented my code, particularly in hard-to-understand areas.
48
+ - [ ] I have updated the documentation, if applicable.
49
+ - [ ] I have added appropriate unit tests, if applicable.
50
+
51
+ ## Additional Notes
52
+ <!-- Add any additional notes or comments here. -->
53
+ <!-- Template credit: This pull request template is based on Embedded Artistry {https://github.com/embeddedartistry/templates/blob/master/.github/PULL_REQUEST_TEMPLATE.md}, Clowder {https://github.com/clowder-framework/clowder/blob/develop/.github/PULL_REQUEST_TEMPLATE.md}, and TalAter {https://github.com/TalAter/open-source-templates} templates. -->
@@ -0,0 +1,5 @@
1
+ Always adhere to PEP 8 coding style guide.
2
+ Always add NumPy-style docstring for all functions and classes.
3
+ Include example section in the docstring if applicable.
4
+ Always add type annotations
5
+ Always add understandable comments.
@@ -0,0 +1,86 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ push:
7
+ branches-ignore:
8
+ - main
9
+ paths-ignore:
10
+ - "docs/**"
11
+ - "*.md"
12
+
13
+ pull_request:
14
+ paths-ignore:
15
+ - "docs/**"
16
+ - "*.md"
17
+
18
+ jobs:
19
+ test:
20
+ # We want to run on external PRs, but not on our own internal PRs as they'll be run
21
+ # by the push to the branch. Without this if check, checks are duplicated since
22
+ # internal PRs match both the push and pull_request events.
23
+ if:
24
+ github.event_name == 'push' || github.event.pull_request.head.repo.full_name !=
25
+ github.repository
26
+
27
+ name: Python ${{ matrix.python-version }} tests
28
+ runs-on: ubuntu-latest
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
33
+
34
+ steps:
35
+ - uses: actions/checkout@v4
36
+ with:
37
+ ref: ${{ github.event.pull_request.head.sha }}
38
+ fetch-depth: 0
39
+
40
+ - name: Install uv and set the python version
41
+ uses: astral-sh/setup-uv@v5
42
+ with:
43
+ python-version: ${{ matrix.python-version }}
44
+
45
+ - name: Install the project
46
+ run: uv sync --locked --all-extras --dev
47
+
48
+ - name: Run tests
49
+ id: tests
50
+ run: uv run pytest -vvv
51
+
52
+ lint:
53
+ runs-on: ubuntu-latest
54
+
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+
58
+ - name: Install uv and set the python version
59
+ uses: astral-sh/setup-uv@v5
60
+ with:
61
+ python-version: "3.12"
62
+
63
+ - name: Install the project
64
+ run: uv sync --locked --all-extras --dev
65
+
66
+ - name: Check format with ruff
67
+ uses: astral-sh/ruff-action@v3
68
+ with:
69
+ args: "check --diff"
70
+ version: "0.3.4"
71
+
72
+ commit-lint:
73
+ runs-on: ubuntu-latest
74
+
75
+ steps:
76
+ - uses: actions/checkout@v3
77
+
78
+ - name: Install commitlint dependencies
79
+ run: npm install @commitlint/config-conventional
80
+
81
+ - name: Lint commit messages
82
+ uses: wagoid/commitlint-github-action@v6
83
+ with:
84
+ token: ${{ secrets.GITHUB_TOKEN }}
85
+ failOnWarnings: 'false'
86
+ commitDepth: 1
@@ -0,0 +1,51 @@
1
+ name: Publish Quarto docs
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ permissions:
11
+ contents: write
12
+ pages: write
13
+
14
+ jobs:
15
+ build-and-deploy:
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python-version: ["3.12"]
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - name: Install uv and set the python version
26
+ uses: astral-sh/setup-uv@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Install the project
31
+ run: uv sync --locked --all-extras --dev
32
+
33
+ - name: Set up Quarto
34
+ uses: quarto-dev/quarto-actions/setup@v2
35
+
36
+ - name: Run quartodoc
37
+ env:
38
+ PYTHONPATH: ${{ github.workspace }}
39
+ run: |
40
+ cd docs
41
+ uv run quartodoc build --verbose
42
+ uv run quartodoc interlinks
43
+
44
+ - name: Publish to GitHub Pages
45
+ uses: quarto-dev/quarto-actions/publish@v2
46
+ with:
47
+ target: gh-pages
48
+ path: docs
49
+ env:
50
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
51
+ QUARTO_PYTHON: .venv/bin/python
@@ -0,0 +1,117 @@
1
+ name: Test & Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ test:
15
+ name: Python ${{ matrix.python-version }} tests
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+ with:
25
+ fetch-depth: 0
26
+
27
+ - name: Install uv and set the python version
28
+ uses: astral-sh/setup-uv@v5
29
+ with:
30
+ python-version: ${{ matrix.python-version }}
31
+
32
+ - name: Install the project
33
+ run: uv sync --locked --extra test --extra visualization
34
+
35
+ - name: Run tests
36
+ id: tests
37
+ run: uv run pytest -vvv
38
+
39
+ lint:
40
+ runs-on: ubuntu-latest
41
+
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+
45
+ - name: Install uv and set the python version
46
+ uses: astral-sh/setup-uv@v5
47
+ with:
48
+ python-version: "3.12"
49
+
50
+ - name: Install the project
51
+ run: uv sync --locked --all-extras --dev
52
+
53
+ - name: Check format with ruff
54
+ uses: astral-sh/ruff-action@v3
55
+ with:
56
+ args: "check --diff"
57
+ version: "0.3.4"
58
+
59
+ commit-lint:
60
+ runs-on: ubuntu-latest
61
+
62
+ steps:
63
+ - uses: actions/checkout@v3
64
+
65
+ - name: Lint commit messages
66
+ uses: wagoid/commitlint-github-action@v6
67
+ with:
68
+ token: ${{ secrets.GITHUB_TOKEN }}
69
+ failOnWarnings: 'false'
70
+ commitDepth: 1
71
+
72
+ release:
73
+ name: Semantic Release
74
+ runs-on: ubuntu-latest
75
+ concurrency: push
76
+ needs: [test, lint, commit-lint]
77
+ if: github.repository == 'xability/py-maidr'
78
+ environment:
79
+ name: pypi
80
+ url: https://pypi.org/project/maidr/
81
+ permissions:
82
+ # https://docs.github.com/en/rest/overview/permissions-required-for-github-apps?apiVersion=2022-11-28#metadata
83
+ id-token: write
84
+ contents: write
85
+
86
+ steps:
87
+ - uses: actions/checkout@v4
88
+ with:
89
+ fetch-depth: 0
90
+ ref: ${{ github.ref_name }}
91
+
92
+ - name: Install uv and set the python version
93
+ uses: astral-sh/setup-uv@v5
94
+ with:
95
+ python-version: "3.12"
96
+
97
+ - name: Install the project
98
+ run: uv sync --locked --all-extras --dev
99
+
100
+ - name: Python Semantic Release
101
+ id: release
102
+ uses: python-semantic-release/python-semantic-release@v9.21.0
103
+ with:
104
+ github_token: ${{ secrets.GITHUB_TOKEN }}
105
+ changelog: true
106
+ commit: true
107
+ push: true
108
+
109
+ - name: Build and publish package distributions to PyPI
110
+ id: pypi-publish
111
+ # NOTE: DO NOT wrap the conditional in ${{ }} as it will always evaluate to true.
112
+ # See https://github.com/actions/runner/issues/1173
113
+ if: steps.release.outputs.released == 'true'
114
+ run: |
115
+ # Use a clean environment for building
116
+ uv build --no-cache
117
+ uv publish
maidr-1.4.9/.gitignore ADDED
@@ -0,0 +1,177 @@
1
+ docs/source
2
+
3
+ # From https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ .conda/*
8
+ *.py[cod]
9
+ *$py.class
10
+ *.pyc
11
+
12
+ # C extensions
13
+ *.so
14
+
15
+ # Distribution / packaging
16
+ .Python
17
+ build/
18
+ develop-eggs/
19
+ dist/
20
+ downloads/
21
+ eggs/
22
+ .eggs/
23
+ lib/
24
+ lib64/
25
+ parts/
26
+ sdist/
27
+ var/
28
+ wheels/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # PyInstaller
36
+ # Usually these files are written by a python script from a template
37
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
38
+ *.manifest
39
+ *.spec
40
+
41
+ # Installer logs
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ # Unit test / coverage reports
46
+ htmlcov/
47
+ .tox/
48
+ .nox/
49
+ .coverage
50
+ .coverage.*
51
+ .cache
52
+ nosetests.xml
53
+ coverage.xml
54
+ *.cover
55
+ *.py,cover
56
+ .hypothesis/
57
+ .pytest_cache/
58
+ cover/
59
+ junit/
60
+
61
+ # Translations
62
+ *.mo
63
+ *.pot
64
+
65
+ # Django stuff:
66
+ *.log
67
+ local_settings.py
68
+ db.sqlite3
69
+ db.sqlite3-journal
70
+
71
+ # Flask stuff:
72
+ instance/
73
+ .webassets-cache
74
+
75
+ # Scrapy stuff:
76
+ .scrapy
77
+
78
+ # Sphinx documentation
79
+ docs/_build/
80
+
81
+ # PyBuilder
82
+ .pybuilder/
83
+ target/
84
+
85
+ # Jupyter Notebook
86
+ .ipynb_checkpoints
87
+
88
+ # IPython
89
+ profile_default/
90
+ ipython_config.py
91
+
92
+ # pyenv
93
+ # For a library or package, you might want to ignore these files since the code is
94
+ # intended to run in multiple environments; otherwise, check them in:
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
+ # poetry
105
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
106
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
107
+ # commonly ignored for libraries.
108
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
109
+ #poetry.lock
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ #pdm.lock
114
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
115
+ # in version control.
116
+ # https://pdm.fming.dev/#use-with-ide
117
+ .pdm.toml
118
+
119
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
120
+ __pypackages__/
121
+
122
+ # Celery stuff
123
+ celerybeat-schedule
124
+ celerybeat.pid
125
+
126
+ # SageMath parsed files
127
+ *.sage.py
128
+
129
+ # Environments
130
+ .env
131
+ .venv
132
+ env/
133
+ venv/
134
+ ENV/
135
+ env.bak/
136
+ venv.bak/
137
+
138
+ # Spyder project settings
139
+ .spyderproject
140
+ .spyproject
141
+
142
+ # Rope project settings
143
+ .ropeproject
144
+
145
+ # mkdocs documentation
146
+ /site
147
+
148
+ # mypy
149
+ .mypy_cache/
150
+ .dmypy.json
151
+ dmypy.json
152
+
153
+ # Pyre type checker
154
+ .pyre/
155
+
156
+ # pytype static type analyzer
157
+ .pytype/
158
+
159
+ # Cython debug symbols
160
+ cython_debug/
161
+
162
+ # Vscode config files
163
+ # .vscode/
164
+ .vscode/launch.json
165
+
166
+ # PyCharm
167
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
168
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
169
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
170
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
171
+ .idea/
172
+
173
+ .DS_Store
174
+
175
+ /.quarto/
176
+
177
+ /.luarc.json
@@ -0,0 +1,6 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: "v0.3.4"
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
@@ -0,0 +1,44 @@
1
+ {
2
+ // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3
+ // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4
+ // List of extensions which should be recommended for users of this workspace.
5
+ "recommendations": [
6
+ "ms-python.python",
7
+ "ms-python.vscode-pylance",
8
+ "ms-python.black-formatter",
9
+ "ms-python.flake8",
10
+ "ms-python.isort",
11
+ "njpwerner.autodocstring",
12
+ "dbaeumer.vscode-eslint",
13
+ "github.vscode-pull-request-github",
14
+ "github.remotehub",
15
+ "visualstudioexptteam.vscodeintellicode",
16
+ "visualstudioexptteam.intellicode-api-usage-examples",
17
+ "ms-toolsai.jupyter",
18
+ "ms-toolsai.vscode-jupyter-cell-tags",
19
+ "ms-toolsai.jupyter-keymap",
20
+ "ms-toolsai.jupyter-renderers",
21
+ "ms-toolsai.vscode-jupyter-slideshow",
22
+ "github.vscode-github-actions",
23
+ "ms-vscode.vscode-github-issue-notebooks",
24
+ "ms-vsliveshare.vsliveshare",
25
+ "github.copilot",
26
+ "github.copilot-chat",
27
+ "ms-vscode.vscode-speech",
28
+ "posit.shinyuieditor",
29
+ "quarto.quarto",
30
+ "github.codespaces",
31
+ "usernamehw.errorlens",
32
+ "editorconfig.editorconfig",
33
+ "ms-azuretools.vscode-docker",
34
+ "ms-vscode-remote.remote-containers",
35
+ "vivaxy.vscode-conventional-commits",
36
+ "joshbolduc.commitlint",
37
+ "ms-python.debugpy",
38
+ "eamodio.gitlens",
39
+ "posit.shiny",
40
+ "charliermarsh.ruff"
41
+ ],
42
+ // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
43
+ "unwantedRecommendations": []
44
+ }