Releases: neutrinoceros/inifix
v5.1.3
What's Changed
- TYP: prefer absolute forward references and avoid
__future__.annotations
by @neutrinoceros in #326 - TYP: ensure type annotations of the IO API are accessible at runtime in Python 3.14 by @neutrinoceros in #327
- REL: prepare release 5.1.3 by @neutrinoceros in #328
Full Changelog: v5.1.2...v5.1.3
v5.1.2
What's Changed
- MNT: add uv-lock to pre-commit by @neutrinoceros in #322
- TYP: complete partially unknown type information by @neutrinoceros in #323
- REL: prepare release 5.1.2 by @neutrinoceros in #324
- REL: bump pypa/gh-action-pypi-publish by @neutrinoceros in #325
Full Changelog: v5.1.1...v5.1.2
v5.1.1
What's Changed
- BUG: restore IDEs' ability to obtain IO API docstrings (avoid dynamic string interpolations) by @neutrinoceros in #320
- REL: prepare release 5.1.1 by @neutrinoceros in #321
Full Changelog: v5.1.0...v5.1.1
v5.1.0
What's Changed
- Bump astral-sh/setup-uv from 4.0.0 to 4.2.0 in /.github/workflows in the actions group by @dependabot in #291
- TST: bump astral/setup-uv (4.0.0 -> 4.2.0) by @neutrinoceros in #292
- TST: rewrite testing workflows around
uv.lock
by @neutrinoceros in #293 - TST: leverage dependency group nesting by @neutrinoceros in #294
- TST: re-introduce CPython 3.14 testing in bleeding-edge CI and use Quansight-Labs/setup-python for freethreaded CPython 3.13 by @neutrinoceros in #295
- TST: test against CPython 3.10.0 (instead of latest 3.10.x) by @neutrinoceros in #296
- BLD: refine exclude patterns for sdist building by @neutrinoceros in #297
- TYP: add missing
__all__
symbol by @neutrinoceros in #300 - MNT: bump pre-commit hooks (typos + ruff) by @neutrinoceros in #302
- TYP: fix errors reported by pyright by @neutrinoceros in #303
- TYP: fix a warning reported by pyright by @neutrinoceros in #304
- MNT: expand pre-publication checks and block publication if they fail by @neutrinoceros in #306
- ENH: add
inifix.__version_tuple__
by @neutrinoceros in #305 - DOC: add missing changelog entries by @neutrinoceros in #307
- ENH: add sections-mode selection to
inifix.validate_inifile_schema
by @neutrinoceros in #308 - ENH: expose sections-mode selection in IO API by @neutrinoceros in #310
- TYP: narrow return type of
inifix.load
andinifix.loads
followingparse_scalars_as_lists
andsections
by @neutrinoceros in #311 - CLN: drop unused future import by @neutrinoceros in #312
- TYP: systematically typecheck with pyright as well as mypy by @neutrinoceros in #313
- DOC: avoid duplicated docstring sources using string interpolation by @neutrinoceros in #314
- TST: run pre-publish-checks when affected files are updated by @neutrinoceros in #316
- TST: bump uv.lock (hypothesis 6.122.1 -> 6.122.3) by @neutrinoceros in #317
- TST: do not run CI on changelog-only changes by @neutrinoceros in #318
- DOC: add narative docs for sections argument and type narrowing by @neutrinoceros in #315
- REL: prepare release 5.1.0 by @neutrinoceros in #319
Full Changelog: v5.0.4...v5.1.0
v5.0.4
What's Changed
- MNT: migrate requirement files to PEP 735 dependency groups by @neutrinoceros in #273
- TST: use exact commit sha for github actions by @neutrinoceros in #274
- REL: migrate from pypa/build to uv build by @neutrinoceros in #275
- TST: avoid re-installing package when running tests by @neutrinoceros in #276
- TST: ensure GIL is disabled in free-threading concurrency tests by @neutrinoceros in #277
- TST: only install and invoke coverage if needed by @neutrinoceros in #279
- TST: enable branch checking in coverage by @neutrinoceros in #280
- Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 in /.github/workflows in the actions group by @dependabot in #281
- RFC: flatten logic tree by @neutrinoceros in #282
- MNT: bump all GHA by @neutrinoceros in #283
- RFC: rewrite a complicated string formatting operation with an fstring by @neutrinoceros in #285
- RFC: rewrite a complicated string formatting operation with an fstring (2/2) by @neutrinoceros in #286
- CLN: cleanup unused future imports by @neutrinoceros in #288
- PERF: delay most costly import statements until they are needed by @neutrinoceros in #287
- TST: add support for Python's optimized mode by @neutrinoceros in #289
- REL: prepare release 5.0.4 by @neutrinoceros in #290
Full Changelog: v5.0.3...v5.0.4
v5.0.3
Summary
This release is functionally identical to v5.0.2. The important difference is that tests are now included in source distributions on PyPI, which is done in preparation for making inifix available on conda-forge starting from this version.
What's Changed
- Bump deadsnakes/action from 3.1.0 to 3.2.0 in /.github/workflows in the actions group by @dependabot in #261
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #262
- TST: validate inifix's pre-commit hooks continuously by @neutrinoceros in #263
- TST: test against CPython 3.14-dev by @neutrinoceros in #264
- TST: switch bleeding edge CI to uv by @neutrinoceros in #266
- TST: ensure the GIL is disabled in free-threaded concurrency tests by @neutrinoceros in #267
- BLD: include tests dir in source distributions by @neutrinoceros in #269
- DOC: add (currently 404) conda-forge badge to README.md by @neutrinoceros in #270
- MNT: add missing dev script metadata by @neutrinoceros in #271
- REL: prepare release 5.0.3 by @neutrinoceros in #272
Full Changelog: v5.0.2...v5.0.3
v5.0.2
What's Changed
- DOC: bump self revision in pre-commit example configurations by @neutrinoceros in #254
- TST: add a regression test for #251 by @neutrinoceros in #253
- TST: fix broken test workflow (install missing requirement) by @neutrinoceros in #252
- DOC: auto check pre-commit examples use latest stable version by @neutrinoceros in #255
- Bump mypy from 1.11.1 to 1.11.2 in /requirements in the actions group by @dependabot in #257
- MNT: fixup coverage reporting by @neutrinoceros in #259
- BLD: migrate from setuptools to hatchling by @neutrinoceros in #256
- BUG: fix CPU counting on Linux + Python <=3.12 by @neutrinoceros in #258
- REL: prepare release 5.0.2 by @neutrinoceros in #260
Full Changelog: v5.0.1...v5.0.2
v5.0.1
What's Changed
- DOC: fixup markup by @neutrinoceros in #250
- BUG: fix a crash in inifix-format on single-core machines by @neutrinoceros in #251
Full Changelog: v5.0.0...v5.0.1
v5.0.0
What's Changed
This release introduces a couple minor but technically breaking API changes, though it is not expected to break known applications.
See the CHANGELOG for details.
This release is also more thoroughly tested than previous ones:
- multithreading is now tested for thread safety against the free-threading build of Python 3.13
- roundtrips stability is now tested with property-based testing using
hypothesis
(instead of relying on a set of manually discovered examples). This allowed the discovery (and fixing) of a couple edge case bugs.
Python 3.10 and newer is supported.
Details
- DOC: bump package version in pre-commit setup examples by @neutrinoceros in #222
- Bump mypy from 1.10.0 to 1.10.1 in /requirements in the actions group by @dependabot in #223
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #224
- MNT: drop support for CPython 3.9 by @neutrinoceros in #225
- Bump mypy from 1.10.1 to 1.11.1 in /requirements in the actions group by @dependabot in #226
- TST: add a test case for formatting many files at once by @neutrinoceros in #227
- RFC: refactor inifix-format in prep for threading parallelism by @neutrinoceros in #228
- TST: setup concurrency testing by @neutrinoceros in #230
- TST: add concurrency test case for inifix-validate by @neutrinoceros in #232
- BUG: fix a bug (unreleased) where
inifix-format
outputs would not necessarilly retain chronological order between stdout and stdin by @neutrinoceros in #231 - PERF: implement multi-threading parallelism in
inifix-format
CLI by @neutrinoceros in #229 - TST: run concurrency tests on CPyhton 3.13t too by @neutrinoceros in #233
- CLN: cleanup unused private code by @neutrinoceros in #236
- API: make loaders roundtrip stable by default by @neutrinoceros in #235
- DOC: fixup backward compatibility claims about
integer_casting
by @neutrinoceros in #237 - DOC: fixup documentation for
integer_casting
by @neutrinoceros in #238 - TST: simplify test parametrization by @neutrinoceros in #239
- TST: generalize some property-based tests with hypothesis by @neutrinoceros in #240
- TST: refine a test case by @neutrinoceros in #241
- TST: rewrite roundtrip tests using hypothesis by @neutrinoceros in #242
- BUG: fix a corner case where data would be lost on dump for empty string values by @neutrinoceros in #243
- BUG: fix bugs around decoding supported bool values by @neutrinoceros in #245
- ENH: add and document
inifix.format_string
, replacing previously undocumentedinifix.iniformat
by @neutrinoceros in #246 - DOC: auto fix english typos by @neutrinoceros in #247
- API: restrict bool-like unescaped strings to lower, upper, or title cases by @neutrinoceros in #248
- DOC: proof-read doc for version 5.0.0 by @neutrinoceros in #244
- REL: prepare release 5.0.0 by @neutrinoceros in #249
Full Changelog: v4.5.0...v5.0.0
v4.5.0
What's Changed
- DOC: illustate how to write type-safe applications of inifix.load by @neutrinoceros in #215
- Bump the actions group in /requirements with 1 update by @dependabot in #216
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #217
- Bump mypy from 1.9.0 to 1.10.0 in /requirements in the actions group by @dependabot in #218
- TST: test Python 3.13 both GIL and free-threading flavors by @neutrinoceros in #219
- ENH: inifix-format (and pre-commit hook) now validates that formatted data compares identical to unformatted data (by default) by @neutrinoceros in #220
- REL: prepare release 4.5.0 by @neutrinoceros in #221
Full Changelog: v4.4.3...v4.5.0