Repository  -  API  -  Source


September 19, 2023
  • BLD: drop support for CPython 3.8
  • TST: add support for CPython 3.12
  • DOC: fix a undesired asymmetry in usage example
  • DEP: drop more-itertools as a dependency


May 31, 2023
  • DOC: update link to Idefix
  • MNT: migrate to src layout


March 11, 2023

BUG: fix type casting bugs affecting integers and strings


March 10, 2023

PERF: speedup parsing (take 3) This version is overall ~3x faster than inifix 4.1.0, and ~15% faster than inifix 4.3.0


March 10, 2023
  • ENH: implement --skip-validation for inifix-format CLI
  • DOC: improve documentation for pre-commit hooks and validation-skipping options


March 9, 2023

PERF: optimize parsing speed (reduce reading overhead by an additional 5%)


March 9, 2023

BUG: fix a regression (in 4.2.0) where signed floats were interpreted as strings


March 8, 2023

PERF: optimize parsing speed (reduce reading overhead by 60%)


February 6, 2023
  • ENH: allow skipping validation in IO operations
  • ENH: allow special character '.' in parameter names


January 30, 2023

TST: use requirement files instead of optional dependencies for tests and type checking

Installing with extra targets ([test] and [typecheck]) isn't supported anymore.


January 8, 2023
  • ENH: optimize startup time
  • ENH: add option to load scalars as single-element lists


May 24, 2022

This release contains a small, yet breaking change: in previous versions of inifix, t and f were read as booleans. This feature was never documented and was never supported in Idefix. Meanwhile, Idefix (dev) now supports reading yes and no as booleans, so inifix will now also automatically parse these special strings to booleans.


May 1, 2022

ENH: add support for binary IO

All internal IO operations are now performed in binary mode whenever possible, assuming UTF-8 encoding.


April 30, 2022

BUG: fix a regression (inifix 2.2.0) where inifix.dump was able to write to a file even if user doesn't have permission to.


April 29, 2022
  • BUG: fix a critical bug in parsing lines with interleaved quoted strings and other types
  • BUG: fix casting for numeric str
  • ENH: file writing operations are now atomic


April 28, 2022
  • BUG: fix a bug where formatting would affect spacing within quoted str values
  • BUG: fix a bug where strings containing spacing would be dumped without correct quotes, making them appear as multiple separate values
  • BUG: fix a bug where special strings 'true', 't', 'false' and 'f' would decay to boolean after two parsing cycles
  • BUG: fix import * for (add loads and dumps)


April 27, 2022

BUG: fix a bug where string values containing whitespaces would incorrectly be splitted


April 25, 2022

inifix-format now won't report noop by default when files are already formatted. It can be turned on again with the --report-noop flag. This makes the associated pre-commit hook much less verbose.


April 17, 2022

The format enforced by inifix-format was changed to improve compacity and readability. The new format is designed to be closer to manual formatting that is actually perfomed by Idefix users and contributors.

This is considered a major version change because the --name-column-size CLI flag and its corresponding keyword argument from inifix.format.iniformat were removed.

The API is otherwize identical to version 1.2.1


April 9, 2022

BUG: fix section invalidation


March 18, 2022
  • ENH: add two functions to the public API to read from and write to strings (inifix.loads and inifix.dumps)
  • BUG: use more conservative rules in int/float casting rules to better match Idefix's reading routines.


February 23, 2022

ENH: inifix-format now produces more compact files, with fewer empty lines. PR #98


February 10, 2022

BUG: don't try to be clever with cumulative retcodes to avoid retcode overflow PR #97


January 30, 2022

TYP: add py.typed marker file to improve downstream type-checking PR #94


January 30, 2022

TYP: improve type-correctness PR #93


January 15, 2022

The API is now declared stable and any future intentionally breaking change will follow a deprecation cycle.

  • DEPR: drop support for Python 3.6 and 3.7, inifix now requires Python 3.8 or newer
  • DEPR: end deprecation cycle for function arguments marked as "future-potisional-only"
  • ENH: simplify internal logic (remove a non-user facing class, InifixConf)
  • TYP: add mypy conf, add missing type annotations

PR #91


January 5, 2022

BUG: fix formatting for files with only sections and comments (no parameters) PR #90


January 4, 2022

BUG: pretty print warnings from iniformat so they don't look as bad from the CLI PR #89


January 4, 2022

ENH: replace --inplace option in inifix-format with a --diff option PR #87


November 23, 2021
  • ENH: expose name column length parameter to users in inifix-format PR #73
  • BUG: fix formatter behaviour PR #83


November 21, 2021

BUG: fix a bug in str casting PR #80


October 28, 2021

ENH: improve schema validation and add a file validation pre-commit hook PR #74


October 26, 2021

This version is identical to 0.7.0 except that FutureWarnings are now raised for api calls using future positional-only arguments using the keyword syntax.


October 26, 2021

This version is identical to 0.6.0 except that it's compatibly for Python 3.6 to 3.10. Positional-only arguments are not specified any more because their are not available for Python versions earlier than 3.8 Warnings may be added in a following version to discourage usage of keyword syntax for these arguments.