Developer Notes⚓︎
Local Development⚓︎
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Shell Completion⚓︎
Calcipy supports shell completion via Invoke’s built-in completion scripts.
Zsh:
1 2 | |
Bash:
1 2 | |
Fish:
1 | |
For projects using ./run as the entry point, replace calcipy with the appropriate script name.
Maintenance⚓︎
Dependency upgrades can be accomplished with:
1 2 | |
Publishing⚓︎
Publishing is automated via GitHub Actions using PyPI Trusted Publishing. Tag creation triggers automated publishing.
1 2 | |
Initial Setup⚓︎
One-time setup to enable PyPI Trusted Publishing:
Configure GitHub Environments
Repository Settings → Environments:
- Create testpypi environment (no protection rules)
- Create pypi environment with “Required reviewers” enabled
Register Trusted Publishers
PyPI: https://pypi.org/manage/project/calcipy/settings/publishing/
- Owner: kyleking
- Repository: calcipy
- Workflow: publish.yml
- Environment: pypi
- Or environment testpypi (for TestPyPI)
Manual Publishing⚓︎
For emergency manual publish:
1 2 3 | |
Current Status⚓︎
| File | Statements | Missing | Excluded | Coverage |
|---|---|---|---|---|
calcipy/__init__.py |
4 | 0 | 0 | 100.0% |
calcipy/_compat.py |
3 | 0 | 0 | 100.0% |
calcipy/_runtime_type_check_setup.py |
13 | 0 | 37 | 100.0% |
calcipy/can_skip.py |
4 | 0 | 0 | 100.0% |
calcipy/cli.py |
34 | 0 | 78 | 97.4% |
calcipy/code_tag_collector/__init__.py |
5 | 0 | 3 | 100.0% |
calcipy/code_tag_collector/_collector.py |
4 | 0 | 0 | 100.0% |
calcipy/collection.py |
45 | 0 | 65 | 98.0% |
calcipy/dot_dict/__init__.py |
3 | 0 | 2 | 100.0% |
calcipy/dot_dict/_dot_dict.py |
6 | 0 | 0 | 100.0% |
calcipy/experiments/__init__.py |
0 | 0 | 0 | 100.0% |
calcipy/experiments/bump_programmatically.py |
4 | 0 | 25 | 100.0% |
calcipy/experiments/check_duplicate_test_names.py |
33 | 0 | 2 | 98.2% |
calcipy/experiments/sync_package_dependencies.py |
4 | 0 | 0 | 100.0% |
calcipy/file_search.py |
4 | 0 | 0 | 100.0% |
calcipy/invoke_helpers.py |
36 | 0 | 2 | 100.0% |
calcipy/markup_table.py |
4 | 0 | 0 | 100.0% |
calcipy/markup_writer/__init__.py |
3 | 0 | 2 | 100.0% |
calcipy/markup_writer/_writer.py |
107 | 0 | 9 | 96.9% |
calcipy/noxfile/__init__.py |
3 | 0 | 2 | 100.0% |
calcipy/noxfile/_noxfile.py |
12 | 0 | 34 | 100.0% |
calcipy/scripts.py |
6 | 0 | 51 | 100.0% |
calcipy/tasks/__init__.py |
0 | 0 | 0 | 100.0% |
calcipy/tasks/all_tasks.py |
37 | 0 | 0 | 100.0% |
calcipy/tasks/cl.py |
21 | 0 | 0 | 100.0% |
calcipy/tasks/defaults.py |
17 | 0 | 0 | 94.7% |
calcipy/tasks/doc.py |
29 | 0 | 8 | 100.0% |
calcipy/tasks/executable_utils.py |
31 | 0 | 0 | 97.1% |
calcipy/tasks/lint.py |
48 | 0 | 0 | 93.5% |
calcipy/tasks/most_tasks.py |
29 | 0 | 0 | 100.0% |
calcipy/tasks/nox.py |
8 | 0 | 0 | 100.0% |
calcipy/tasks/pack.py |
24 | 0 | 0 | 96.7% |
calcipy/tasks/tags.py |
29 | 0 | 0 | 100.0% |
calcipy/tasks/test.py |
41 | 0 | 2 | 98.0% |
calcipy/tasks/types.py |
16 | 0 | 0 | 100.0% |
| Totals | 667 | 0 | 322 | 98.1% |
Generated on: 2026-03-24