There is a newer version of the record available.

Published September 3, 2025 | Version v1.2.0

foamlib: A modern Python package for working with OpenFOAM

Description

🚀 foamlib v1.2.0

This release brings improved parsing, better progress tracking, and a modernized codebase.

Highlights

  • Log file monitoring to track OpenFOAM case progress even when run scripts are used.
  • Smarter parsing with clearer errors (foamlib now raises ValueError on parsing failures).
  • Support for files with multiple equivalent directives at the same level (e.g. #includes) via multicollections.
  • Dropped support for Python 3.7 (Python 3.8+ required).

What's Changed

  • Add log file monitoring for progress tracking in OpenFOAM cases by @Copilot in https://github.com/gerlero/foamlib/pull/440
  • Add MultiMapping and MutableMultiMapping ABCs by @gerlero in https://github.com/gerlero/foamlib/pull/442
  • Add multidict dependency by @gerlero in https://github.com/gerlero/foamlib/pull/443
  • Add comprehensive tests for MultiMapping/MutableMultiMapping classes to verify multidict compatibility by @Copilot in https://github.com/gerlero/foamlib/pull/448
  • Drop multidict requirement and remove unused MultiMapping utility classes by @Copilot in https://github.com/gerlero/foamlib/pull/451
  • Use MultiDicts where necessary to allow multiple equivalent keywords by @gerlero in https://github.com/gerlero/foamlib/pull/455
  • Remove unneeded typing ignores by @gerlero in https://github.com/gerlero/foamlib/pull/456
  • Reduce code duplication in _parsing.Parsed class by extracting helper methods by @Copilot in https://github.com/gerlero/foamlib/pull/458
  • Reduce code duplication in FoamFile: setitem and add methods by @Copilot in https://github.com/gerlero/foamlib/pull/457
  • Refactor Parsed.delitem to use MutableMultiMapping default and centralize removal logic by @Copilot in https://github.com/gerlero/foamlib/pull/459
  • Drop support for Python 3.7 by @gerlero in https://github.com/gerlero/foamlib/pull/460
  • Remove ignore for Ruff rule UP007 and fix all occurrences by @Copilot in https://github.com/gerlero/foamlib/pull/461
  • Require mypy 1.16 by @gerlero in https://github.com/gerlero/foamlib/pull/464
  • Introduce Python 3.8+ constructs throughout codebase by @Copilot in https://github.com/gerlero/foamlib/pull/462
  • Re-enable extra Ruff rules by @gerlero in https://github.com/gerlero/foamlib/pull/465
  • Re-enable unused-ignore mypy error code by @gerlero in https://github.com/gerlero/foamlib/pull/466
  • Add @override decorators to resolve mypy errors by @Copilot in https://github.com/gerlero/foamlib/pull/468
  • Enable mypy explicit-override optional check by @gerlero in https://github.com/gerlero/foamlib/pull/467
  • Add pragma: no cover to TYPE_CHECKING-gated imports by @gerlero in https://github.com/gerlero/foamlib/pull/469
  • Update pyproject.toml by @gerlero in https://github.com/gerlero/foamlib/pull/470
  • Switch to uv build backend by @gerlero in https://github.com/gerlero/foamlib/pull/471
  • Bump multicollections to 0.3 by @gerlero in https://github.com/gerlero/foamlib/pull/473
  • Bump multicollections to 0.4 by @gerlero in https://github.com/gerlero/foamlib/pull/474
  • Improve parsing by @gerlero in https://github.com/gerlero/foamlib/pull/475
  • Add license and license-files to pyproject.toml by @gerlero in https://github.com/gerlero/foamlib/pull/476
  • Update Parsed.as_dict implementation to return MultiDicts where needed by @gerlero in https://github.com/gerlero/foamlib/pull/480
  • Simplify parsing logic by @gerlero in https://github.com/gerlero/foamlib/pull/481
  • Refactor Parsed object creation by @gerlero in https://github.com/gerlero/foamlib/pull/482
  • Remove unused function by @gerlero in https://github.com/gerlero/foamlib/pull/483
  • Update parsing by @gerlero in https://github.com/gerlero/foamlib/pull/484
  • Rearrange documentation pages by @gerlero in https://github.com/gerlero/foamlib/pull/486
  • Raise ValueError on parsing failures by @gerlero in https://github.com/gerlero/foamlib/pull/485
  • Add tests for ValueError-raising parsing errors by @Copilot in https://github.com/gerlero/foamlib/pull/487
  • Bump multicollections requirement by @gerlero in https://github.com/gerlero/foamlib/pull/488

Full Changelog: https://github.com/gerlero/foamlib/compare/v1.1.6...v1.2.0

Notes

If you use this software, please cite our article in the Journal of Open Source Software.

Files

gerlero/foamlib-v1.2.0.zip

Files (903.9 kB)

Name Size Download all
md5:a9b05b3fb42cce4e96051aced23913ad
903.9 kB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/gerlero/foamlib/tree/v1.2.0 (URL)

Software