Conversation
Mirror the DTMCMC tooling setup: - Replace pre-commit with prek (drop-in; reads the same config) and swap the mypy hook for pyrefly-check; bump all hook revs and add regression guards + actionlint. - Add CI workflows: lint (prek), typecheck (mypy + pyright), test (placeholder tolerating "no tests collected"), and build (sdist/wheel + twine check + install matrix at dependency floors and modern versions). - pyproject: raise floor to Python 3.10 with low dependency floors (numpy>=1.22, numba>=0.56), add [dev]/[demos] extras, and add pyrefly/pyright/mypy/pytest config (demos/ excluded from type checks). - Add Apache-2.0 WITH LLVM-exception LICENSE (was referenced but missing, which broke the build), a .gitignore, and a tests/ placeholder. - ruff target-version py39 -> py310. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add .github/workflows/docstrings.yml, mirroring the pydoclint job from GalacticStochastic, to lint pyakima's numpy-style docstrings. Options come from the [tool.pydoclint] block already in pyproject.toml (style = "numpy"). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add Akima spline utility tests
Migrate tooling to prek/pyrefly and add CI workflows and unit tests
Add PyPI publish workflow (Trusted Publishing, Release-triggered)
Remove final-knot special case
Rework the Sphinx docs so the landing page and new pages pull their prose
directly from README.md instead of duplicating it, keeping a single source
of truth. Fenced HTML-comment markers (doc:intro, doc:install, etc.) delimit
the shared slices, which MyST {include} pulls in via start-after/end-before.
- index.md: landing page includes the intro, installation, and quick-start
slices, plus a lightweight static figure (akima_step) and a link to the
new Examples page.
- examples.md (new): hosts the demo and grid animations with their shared
explanations and footnote references, keeping the heavier GIFs off the
landing page.
- performance.md (new): includes the performance-snapshot slice.
- conf.py: serve the repo-root assets/ via html_static_path so pages can
reference _static/akima_*.{gif,png} without moving or duplicating the
folder; add custom.css for light/dark image switching that follows Furo's
theme toggle (body[data-theme]) rather than the README's OS-based <picture>.
Builds clean under the strict -W CI flag.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the broken shields.io PyPI placeholder with a placeholder Zenodo DOI badge (to be wired up on release), and break the badge row after the license badge so the CI badges wrap to a second line. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Zenodo's badge URLs key off the numeric repository ID (972418978), not owner/repo. The badge resolves once the Zenodo GitHub integration is enabled and a release mints a DOI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Share README prose into docs; add Examples/Performance pages
Pull the `Copyright 2026 Matthew C. Digman` line out of each module
docstring and replace it with a two-line SPDX header at the top of the
file:
# SPDX-FileCopyrightText: Copyright 2026 Matthew C. Digman
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
The `Copyright` prefix on the FileCopyrightText value keeps the notice
matching ruff's flake8-copyright (CPY001) default notice-rgx while still
being valid SPDX/REUSE. The license identifier matches the PEP 639
expression in pyproject.toml. The Sphinx `copyright =` config variable in
docs/conf.py is left as-is.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move docstring copyright notices to SPDX header comments
Both branches added .github/workflows/benchmark.yml; dev carries the newer Action pins (checkout@v7, setup-uv@v7, upload-artifact@v7) from PR #19. Resolved by keeping dev's version. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> # Conflicts: # .github/workflows/benchmark.yml
Resolve benchmark.yml pin conflict for dev→main merge
- Relicense from Apache-2.0 WITH LLVM-exception to plain Apache-2.0: strip the exception from LICENSE and update the SPDX expression in pyproject.toml, every SPDX header, and the README license section (plain Apache-2.0 is also detectable by GitHub's license tooling). - Add SPDX headers to the four files that were missing them. - Fix the "Unsuported" -> "Unsupported" typo in error messages and the matching test assertions. - README: use absolute raw.githubusercontent.com image URLs and replace GFM footnotes with a plain-numbered References section so the page renders correctly on PyPI (which resolves no relative URLs and does not support footnotes); link the benchmark file and LICENSE. - Docs: add a Usage page including the README's Jitted Use and Spline Options sections (new doc:jitted/doc:options markers) so the numba-facing API is documented on the Sphinx site too. - Packaging: sharpen the PyPI one-line description, add the Software Development :: Libraries classifier and a Changelog URL, and add MANIFEST.in so the sdist deliberately ships tests/, CHANGELOG.md, and CITATION.cff. - Add CITATION.cff (with ORCID) for GitHub citation support and Zenodo release metadata, and a starter CHANGELOG.md. - Harden workflows: pin all actions to commit SHAs, set a workflow-level read-only GITHUB_TOKEN everywhere, and disable checkout credential persistence. - docs/conf.py: copyright year is now just 2026. Verified: full pytest suite (183 passed), prek run --all-files, sphinx -W docs build, uv build + twine check on both distributions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Apply release-audit fixes for the 0.1.0 release candidate
Make inline [n] citations link to their specific reference entry via per-item <a id="ref-n"> anchors. Jumps work on GitHub/ReadTheDocs; on PyPI the anchors are stripped by readme_renderer but degrade gracefully to inert, cleanly-rendered [n] link text (same as the existing TOC), so nothing breaks there. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
MyST-Parser parses markdown [n](#ref-n) as a cross-reference and cannot resolve it to the raw-HTML <a id> targets, so sphinx-build -W failed with 7 myst.xref_missing warnings. Write the citation links as raw HTML (<a href="#ref-n">[n]</a>) too: MyST passes raw HTML through verbatim without cross-reference resolution, so no warning is emitted, while GitHub and PyPI render it identically (and this drops the \[ \] escapes). Jumps now resolve in all three renderers on GitHub/Sphinx and degrade to inert links on PyPI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(readme): hyperlink footnote citations to references
…c-call Accept integer scalar cubic_call inputs at runtime
A large share of the recent Akima-spline literature is mHz gravitational-wave / LISA PSD-estimation work (see the README references), so add those terms to the PyPI keywords and the CITATION.cff (Zenodo) keywords, plus the domain-neutral "curve fitting" from the title of Akima's paper. The keyword comment now records the rule: domain keywords are added only for applications the README actually documents. Matching gravitational-waves/lisa GitHub topics were added in the repository settings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rewrite and standardize docstrings across pyakima.py: clarify corner_model and ext options as enumerated lists, describe SplineCoeffs as a NamedTuple, and expand the non-finite y and helper-dispatch notes. Tighten AkimaSpline x/y annotations to NDArray[np.floating] and add type: ignore[arg-type] on the integer-input tests accordingly. Adjust the linear_vector_calls error message to use set notation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add gravitational-wave domain keywords for findability
Improve docstrings and tighten array type annotations
Owner
Author
|
Everything checks good for the initial release |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Candidate
Merges the accumulated work on
devintomainfor review. This is the first substantial release rolling up everything since PR #15 (the last change onmain).Highlights
pyakima/pyakima.py, integer control-point handling, and packaging metadata (pyproject.toml, tracked_version.py).pyakima/demos/package: animated spline, irregular-grid animation, step, and speed demos with a shared_theme.docs/) with API, examples, performance, and benchmark pages; published docs URL and README restructuring.tests/test_pyakima.py), coverage, dependency-floor jobs, pylint/skylos/mypy/pyright/pydoclint tooling, and cross-OS benchmark workflow.Included PRs
#2–#23 (see
git log main..dev --merges).Stats
49 files changed, ~6,700 insertions.
Please review as a release candidate before merging to
main.