accompy 0.0.4__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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(python3:*)"
5
+ ]
6
+ }
7
+ }
@@ -0,0 +1 @@
1
+ *.ipynb linguist-documentation
@@ -0,0 +1,207 @@
1
+ name: Continuous Integration (2025-11)
2
+ on: [push, pull_request]
3
+
4
+ # Note: Environment variables (PROJECT_NAME and vars from [tool.wads.ci.env])
5
+ # are set by the read-ci-config action in the setup job and made available
6
+ # to all subsequent jobs via GITHUB_ENV
7
+
8
+ jobs:
9
+ # First job: Read configuration from pyproject.toml
10
+ setup:
11
+ name: Read Configuration
12
+ runs-on: ubuntu-latest
13
+ outputs:
14
+ project-name: ${{ steps.config.outputs.project-name }}
15
+ python-versions: ${{ steps.config.outputs.python-versions }}
16
+ pytest-args: ${{ steps.config.outputs.pytest-args }}
17
+ coverage-enabled: ${{ steps.config.outputs.coverage-enabled }}
18
+ exclude-paths: ${{ steps.config.outputs.exclude-paths }}
19
+ test-on-windows: ${{ steps.config.outputs.test-on-windows }}
20
+ build-sdist: ${{ steps.config.outputs.build-sdist }}
21
+ build-wheel: ${{ steps.config.outputs.build-wheel }}
22
+ metrics-enabled: ${{ steps.config.outputs.metrics-enabled }}
23
+ metrics-config-path: ${{ steps.config.outputs.metrics-config-path }}
24
+ metrics-storage-branch: ${{ steps.config.outputs.metrics-storage-branch }}
25
+ metrics-python-version: ${{ steps.config.outputs.metrics-python-version }}
26
+ metrics-force-run: ${{ steps.config.outputs.metrics-force-run }}
27
+
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+
31
+ - name: Read CI Config
32
+ id: config
33
+ uses: i2mint/wads/actions/read-ci-config@master
34
+ with:
35
+ pyproject-path: .
36
+
37
+ # Second job: Validation using the config
38
+ validation:
39
+ name: Validation
40
+ if: "!contains(github.event.head_commit.message, '[skip ci]')"
41
+ needs: setup
42
+ runs-on: ubuntu-latest
43
+ strategy:
44
+ matrix:
45
+ python-version: ${{ fromJson(needs.setup.outputs.python-versions) }}
46
+
47
+ steps:
48
+ - uses: actions/checkout@v4
49
+
50
+ - name: Set up Python ${{ matrix.python-version }}
51
+ uses: actions/setup-python@v6
52
+ with:
53
+ python-version: ${{ matrix.python-version }}
54
+
55
+ - name: Install System Dependencies
56
+ uses: i2mint/wads/actions/install-system-deps@master
57
+ with:
58
+ pyproject-path: .
59
+
60
+ - name: Install Dependencies
61
+ uses: i2mint/wads/actions/install-deps@master
62
+ with:
63
+ dependency-files: pyproject.toml
64
+ extras: dev,test
65
+
66
+ - name: Format Source Code
67
+ uses: i2mint/wads/actions/ruff-format@master
68
+ with:
69
+ line-length: 88
70
+ target-path: .
71
+
72
+ - name: Lint Validation
73
+ uses: i2mint/wads/actions/ruff-lint@master
74
+ with:
75
+ root-dir: ${{ needs.setup.outputs.project-name }}
76
+ output-format: github
77
+
78
+ - name: Run Tests
79
+ uses: i2mint/wads/actions/run-tests@master
80
+ with:
81
+ root-dir: ${{ needs.setup.outputs.project-name }}
82
+ exclude: ${{ needs.setup.outputs.exclude-paths }}
83
+ coverage: ${{ needs.setup.outputs.coverage-enabled }}
84
+ pytest-args: ${{ needs.setup.outputs.pytest-args }}
85
+
86
+ - name: Track Code Metrics
87
+ if: needs.setup.outputs.metrics-enabled == 'true'
88
+ uses: i2mint/umpyre/actions/track-metrics@master
89
+ continue-on-error: true
90
+ with:
91
+ github-token: ${{ secrets.GITHUB_TOKEN }}
92
+ config-path: ${{ needs.setup.outputs.metrics-config-path }}
93
+ storage-branch: ${{ needs.setup.outputs.metrics-storage-branch }}
94
+ python-version: ${{ needs.setup.outputs.metrics-python-version }}
95
+ force-run: ${{ needs.setup.outputs.metrics-force-run }}
96
+
97
+ # Optional Windows testing (if enabled in config)
98
+ windows-validation:
99
+ name: Windows Tests
100
+ if: "!contains(github.event.head_commit.message, '[skip ci]') && needs.setup.outputs.test-on-windows == 'true'"
101
+ needs: setup
102
+ runs-on: windows-latest
103
+ continue-on-error: true
104
+
105
+ steps:
106
+ - uses: actions/checkout@v4
107
+
108
+ - name: Set up Python
109
+ uses: actions/setup-python@v6
110
+ with:
111
+ python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
112
+
113
+ - name: Install System Dependencies
114
+ uses: i2mint/wads/actions/install-system-deps@master
115
+ with:
116
+ pyproject-path: .
117
+
118
+ - name: Install Dependencies
119
+ uses: i2mint/wads/actions/install-deps@master
120
+ with:
121
+ dependency-files: pyproject.toml
122
+ extras: dev,test
123
+
124
+ - name: Run tests
125
+ id: test
126
+ continue-on-error: true
127
+ run: pytest
128
+
129
+ - name: Report test results
130
+ if: always()
131
+ run: |
132
+ if ("${{ steps.test.outcome }}" -eq "failure") {
133
+ echo "::warning::Windows tests failed but workflow continues"
134
+ echo "## ⚠️ Windows Tests Failed" >> $env:GITHUB_STEP_SUMMARY
135
+ echo "Tests failed on Windows but this is informational only." >> $env:GITHUB_STEP_SUMMARY
136
+ } else {
137
+ echo "## ✅ Windows Tests Passed" >> $env:GITHUB_STEP_SUMMARY
138
+ }
139
+
140
+ # Publishing job
141
+ publish:
142
+ name: Publish
143
+ if: "!contains(github.event.head_commit.message, '[skip ci]') && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main')"
144
+ needs: [setup, validation]
145
+ runs-on: ubuntu-latest
146
+
147
+ steps:
148
+ - uses: actions/checkout@v4
149
+ with:
150
+ fetch-depth: 0
151
+ token: ${{ secrets.GITHUB_TOKEN }}
152
+
153
+ - name: Set up Python
154
+ uses: actions/setup-python@v6
155
+ with:
156
+ python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
157
+
158
+ - name: Format Source Code
159
+ uses: i2mint/wads/actions/ruff-format@master
160
+
161
+ - name: Update Version Number
162
+ id: version
163
+ uses: i2mint/isee/actions/bump-version-number@master
164
+
165
+ - name: Build Distribution
166
+ uses: i2mint/wads/actions/build-dist@master
167
+ with:
168
+ sdist: ${{ needs.setup.outputs.build-sdist }}
169
+ wheel: ${{ needs.setup.outputs.build-wheel }}
170
+
171
+ - name: Publish to PyPI
172
+ uses: i2mint/wads/actions/pypi-upload@master
173
+ with:
174
+ pypi-username: ${{ secrets.PYPI_USERNAME }}
175
+ pypi-password: ${{ secrets.PYPI_PASSWORD }}
176
+ skip-existing: false
177
+
178
+ - name: Commit Changes
179
+ uses: i2mint/wads/actions/git-commit@master
180
+ with:
181
+ commit-message: "**CI** Formatted code + Updated version to ${{ env.VERSION }} [skip ci]"
182
+ ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
183
+ push: true
184
+
185
+ - name: Tag Repository
186
+ uses: i2mint/wads/actions/git-tag@master
187
+ with:
188
+ tag: ${{ env.VERSION }}
189
+ message: "Release version ${{ env.VERSION }}"
190
+ push: true
191
+
192
+ # Optional GitHub Pages
193
+ github-pages:
194
+ name: Publish GitHub Pages
195
+ permissions:
196
+ contents: write
197
+ pages: write
198
+ id-token: write
199
+ if: "!contains(github.event.head_commit.message, '[skip ci]') && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)"
200
+ needs: publish
201
+ runs-on: ubuntu-latest
202
+
203
+ steps:
204
+ - uses: i2mint/epythet/actions/publish-github-pages@master
205
+ with:
206
+ github-token: ${{ secrets.GITHUB_TOKEN }}
207
+ ignore: "tests/,scrap/,examples/"
@@ -0,0 +1,121 @@
1
+ wads_configs.json
2
+ data/wads_configs.json
3
+ wads/data/wads_configs.json
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+
11
+ .DS_Store
12
+ # C extensions
13
+ *.so
14
+
15
+ # TLS certificates
16
+ ## Ignore all PEM files anywhere
17
+ *.pem
18
+ ## Also ignore any certs directory
19
+ certs/
20
+
21
+ # Distribution / packaging
22
+ .Python
23
+ build/
24
+ develop-eggs/
25
+ dist/
26
+ downloads/
27
+ eggs/
28
+ .eggs/
29
+ lib/
30
+ lib64/
31
+ parts/
32
+ sdist/
33
+ var/
34
+ wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+ _build
40
+
41
+ # PyInstaller
42
+ # Usually these files are written by a python script from a template
43
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
44
+ *.manifest
45
+ *.spec
46
+
47
+ # Installer logs
48
+ pip-log.txt
49
+ pip-delete-this-directory.txt
50
+
51
+ # Unit test / coverage reports
52
+ htmlcov/
53
+ .tox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ coverage.xml
59
+ *.cover
60
+ .hypothesis/
61
+ .pytest_cache/
62
+
63
+ # Translations
64
+ *.mo
65
+ *.pot
66
+
67
+ # Django stuff:
68
+ *.log
69
+ local_settings.py
70
+ db.sqlite3
71
+
72
+ # Flask stuff:
73
+ instance/
74
+ .webassets-cache
75
+
76
+ # Scrapy stuff:
77
+ .scrapy
78
+
79
+ # Sphinx documentation
80
+ docs/_build/
81
+ docs/*
82
+
83
+ # PyBuilder
84
+ target/
85
+
86
+ # Jupyter Notebook
87
+ .ipynb_checkpoints
88
+
89
+ # pyenv
90
+ .python-version
91
+
92
+ # celery beat schedule file
93
+ celerybeat-schedule
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+
120
+ # PyCharm
121
+ .idea
accompy-0.0.4/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Thor Whalen
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.