docs: add long description and metadata for the PyPI page - #27
Merged
Conversation
The PyPI project page had no body: pyproject.toml set `description` (the one-line summary) but no `readme`, so nothing rendered below the fold. Add python/README.md as the long description, plus keywords, project URLs for the sidebar, and license/audience/topic/typing classifiers. The README lives under python/ rather than pointing at the repo root so it ships in both the sdist and the wheels, which maturin builds from that directory. Closes #26 Assisted-by: ClaudeCode:claude-opus-5
Merging this PR will not alter performance
Comparing Footnotes
|
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.
🤖 AI text below 🤖
Closes #26.
Problem
https://pypi.org/project/cast-value-rs/ shows no information about the package.
python/pyproject.tomlsetdescription(the one-line summary shown under the package name) but noreadme, so PyPI had no long description to render as the page body.Change
python/README.mdas the long description: what the codec does, why the implementation is in Rust, installation, the four usage patterns from the docs (basic cast, dtype spellings, scalar maps, pre-allocated output), a supported types/modes table, and links to the docs site and licenses.readme = "README.md"inpython/pyproject.toml.keywords, a[project.urls]table (Homepage / Documentation / Repository / Issues) to populate the PyPI sidebar, and license, audience, topic, andTyping :: Typedclassifiers.The README lives under
python/rather than referencing the repo-root one, so it ships in both the sdist and the wheels — the CD workflow runs maturin withworking-directory: python, and a../README.mdpath would not survive packaging.Verification
Built both artifacts locally with maturin and confirmed the metadata lands:
METADATAboth carryDescription-Content-Type: text/markdown, the full README body,Keywords, all fourProject-URLentries, and the new classifiers.twine checkpasses on both (this is the check that catches a long description PyPI would refuse to render).README.mdis present in the sdist.Every claim in the README was executed against the built wheel rather than trusted from the existing docs: all four code snippets produce the exact outputs shown, all 11 dtype names and 5 rounding modes are accepted,
clamp/wrapwork, and omittingout_of_range_moderaises as documented.Note that the PyPI page will only update on the next release.