Releases: 499602D2/flowboost
Releases · 499602D2/flowboost
v0.2.4
Coerce types in Case.parametrize_configuration() using dimension typing (#15).
- Type coercion moved from
AxBackendintoCase.parametrize_configuration()so all backends receive natively typed parameters - Added
Dimension.coerce_value()with handling forbool-subclassing-int, numpy scalars, and lossy truncation warnings - 24 new tests for type coercion logic
Closes #9
v0.2.3
What's new
Docker-based OpenFOAM runtime (#12)
FlowBoost can now run OpenFOAM commands through Docker, enabling use on macOS and Windows where native OpenFOAM isn't available. A persistent container handles CLI tools like foamDictionary and foamCloneCase transparently. The container() context manager allows batching commands efficiently, and DockerLocal runs simulations in per-job containers.
Top-level namespace and API improvements (#14)
from flowboost import Case, Dictionary, Dimension, Objective, Session, foam_runtimeCase.run_command()for running shell commands in the case directoryfoam_runtime()as the public entry point for the Docker/native runtime- IDE hover docs now work for all top-level exports
- Class-level docstrings on Case, Manager, Session, Objective, Dimension
- Per-call
backendparameter onData.load_data()andsimple_function_object_reader() - Fix
Entry.set()crash on unresolved lazy-loaded name/dimension
Dev tooling and docs (#13)
- Pre-commit hooks: ruff (lint + format) and ty (advisory type checking)
- CONTRIBUTING.md with setup, tooling, testing, and CI/CD docs
- README updated with OpenFOAM platform matrix and Docker usage guide
cp -rreplaced withshutil.copytreefor Windows compatibility
v0.2.2
Added
- CI workflow with Python 3.10–3.14 test matrix
- PyPI publish workflow via trusted publishing on version tags
- Dimension name validation (no spaces)
Fixed
- Ax compatibility:
Trialimport,verbosekwarg, space restrictions td_formatreturning "0 seconds" for zero timedelta- Multi-line f-strings for Python 3.10 compatibility
- Flaky session test fixture with pytest-xdist
- Skip tests gracefully when test data directory is absent
Changed
- Bump
ax-platformfloor to>=1.0 - Bump
polarsfloor to>=1.11, replace deprecatedstreamingparameter - Fix package description: "library" instead of "framework"
v0.2.1
Changed
- Migrate packaging from Poetry to uv
- Remove
poetry.lock,requirements/, andflowboost/scripts/requirements.py - Add dependency version floors
- Add PyPI classifiers and Python version badge
- Add
pytest-xdistto dev dependencies - Rewrite README: installation instructions, code examples, descriptions
Removed
- CHANGELOG.md in favor of GitHub releases
v0.2.0
Thanks to @blttkgl for this release!
Added
- Slurm scheduler support
- New aerofoilNACA0012Steady example (replaces aachenBomb)
Case.copy()static method as alternative tofoamCloneCase- Save objective outputs to case metadata
- Design log with raw values
- Top designs printing
- Configurable submission script location
- Max designs limit for optimizer sessions
- Clean pending cases on session restart
Changed
- Chronological job labeling
- Case file prefix now includes dimension names
- Session outputs multiple objectives, sorted by first objective
- Metadata contains raw outputs only (no normalization)
Fixed
- Ax interface stuck in random Sobol sampling
- Type conversion for Ax parameter attachment
- Function object reader: tab-separated headers, whitespace stripping
- String parameter values in
print_top_designsformatting - Job manager: return False when working directory doesn't exist