Repository navigation
Conversation
- Require Python 3.10 and remove the 3.9 classifier and dependency pins - Remove the typing_extensions fallback for TypeAlias - Remove the deprecated "clean" unit format, scheduled for removal in 3.0.0 - Replace typing.ByteString, removed in Python 3.14, with (bytes, bytearray) - Remove the private _cached_isinstance alias - Move PR tests to the common-gh-actions v3 matrix, which skips 3.9 and adds 3.14 - Raise numpy and pandas lower bounds on 3.14 to the first releases with wheels Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Apply ruff's pyupgrade fixes for a 3.10 target: PEP 604 unions, builtin generics, and collections.abc imports. Convert module-level type aliases by hand and unquote two test annotations whose names are imported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Make CaseInsensitiveDict generic over its value type and add overloads to get and pop so each override returns the type dict declares. The key and default arguments of get and pop are now positional-only, as in dict. Ignore flake8 E704 because ruff format keeps overload stubs on one line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read and write test files with Path.read_text and Path.write_text, and replace the legacy tmpdir fixture with tmp_path. Replace the demo test that wrote a temp file with a StringIO round trip in test_json, which covers gemd.json.dump and load directly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Commit uv.lock and delete requirements.txt, test_requirements.txt, and doc_requirements.txt, which duplicated pyproject.toml - Move PR checks to repo-checks v3, which lints with ruff, verifies uv.lock, and checks the version bump only for PRs into main - Delete tox.ini and the flake8, flake8-docstrings, and derp dev dependencies, which the v3 checks replace - Delete scripts/run_tests.sh and scripts/validate_version_bump.py - Build docs for deployment with uv run, which puts sphinx-build on PATH; deploy-docs v3 runs make outside the uv environment - Update CONTRIBUTING.md for the uv workflow Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The docs document every module with inherited-members, so autodoc rendered int and dict methods on classes such as WarningLevel and CaseInsensitiveDict. Two of those builtin docstrings raise Sphinx warnings. Skip members implemented in C so the docs build cleanly with warnings as errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in get_compatible_units from #238. Keep version 3.0.0 over 2.4.0, convert the new function's annotations to 3.10 syntax, and apply ruff format to the new test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
numpy 2.0.2 publishes no Python 3.13 wheels. CI tests the lowest allowed versions, so the 3.13 lanes built numpy from source, and the build fails on the macOS runner. numpy 2.1.0 is the first release with 3.13 wheels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
GEMD Python PR
Description
This PR releases gemd 3.0.0, which drops support for Python 3.9. The release requires Python 3.10 or later. CI tests Python 3.10 through 3.14.
Each commit covers one topic, so you can review it commit by commit. The pyupgrade commit is mechanical and touches 50 files.
Breaking changes
requires-pythonis>=3.10"clean"unit formatf"{unit:clean}"raises an error. Version 2.1.0 deprecated the format and scheduled its removal for 3.0.0.gemd.util._cached_isinstancecached_isinstanceinstead. citrine-python does not use the private alias.CaseInsensitiveDict.getand.popaccept only positional argumentsd.get(key="x")raisesTypeError, as it does fordict.Code changes
(bytes, bytearray)replacestyping.ByteString. Python 3.14 removesByteString, and the pair matches the same types.X | Yunions, builtin generics, andcollections.abcimports.CaseInsensitiveDictis generic over its value type. Its methods return the types thatdictreturns.pathlib. A newStringIOround trip intest_json.pycoversgemd.json.dumpandload.int.to_bytesonWarningLevel. With that change, the docs build passes with warnings as errors.Environment and CI
uv.lock. It deletesrequirements.txt,test_requirements.txt,doc_requirements.txt,tox.ini, andscripts/, becausepyproject.tomland the v3 checks replace them.uv.lock. They check the version bump on PRs intomainand skip it elsewhere.deploy-docs.ymlruns its build steps in this repo withuv run. The shared v3 workflow runsmakewithoutsphinx-buildonPATH. A fix is under review in common-gh-actions. After it merges, point this workflow back at the shared one and addcheck_docs: truetopr-checks.yml.Testing
uv lock --check, and the deprecation check pass.-W --keep-going.Follow-up
A
tytype check reports 374 diagnostics ingemd/. Adopting it is separate work.PR Type:
Adherence to team decisions
🤖 Generated with Claude Code