Skip to content

Releases: Funz/fz

fz 1.1

15 Jun 12:08
1c819ae

Choose a tag to compare

CLI argument aliases (README forms now work)

  • Input/output paths can be passed positionally: fzi input.txt -m mymodel.
  • New flag aliases matching the documented forms: --variables (= --input_variables),
    --calculator (= --calculators, now repeatable), --results (= --results_dir),
    --output (= --output_dir).
  • Inline model definition without --model: --varprefix, --formulaprefix, --delim,
    --commentline, --interpreter, and repeatable --output-cmd NAME=COMMAND. When
    combined with --model, the inline flags override the loaded model definition.
  • All canonical flags and short options are unchanged; --model is no longer required
    (defaults: varprefix $, formulaprefix @, delim {}, commentline #).

Calculator discovery fixes

  • fzd with calculators omitted now auto-discovers installed calculator aliases bound
    to the model id, exactly like fzr. Previously it resolved calculators before reading
    the model id, producing an empty sh:// command and failing every case.
  • fzr (and thus --calculators <alias> on the CLI) now accepts calculator dicts; bare
    alias names resolved from .fz/calculators/ were previously rejected with a TypeError.
  • fzd docstring corrected: analysis_dir defaults to "analysis" (the CLI uses
    results_fzd).

Directory-tree inputs reach the calculator intact

  • Per-case staging now copies subdirectories recursively in both directions
    (compiled inputs → run dir, and run outputs → results dir). Previously only top-level
    files were copied, so any code whose input is a directory tree (e.g. an OpenFOAM case
    with system/, constant/, 0/) ran without its subdirectories and any output written
    into a subdirectory never reached the output parser. Added a regression test that runs a
    case with an input subdirectory and an output subdirectory.

fzd CLI execution fix

  • The fzd command and the fz design subcommand were unusable: both passed
    results_dir= and the algorithm options as **kwargs to core fzd(), which accepts
    analysis_dir and algorithm_options instead — so every invocation failed immediately
    with TypeError: fzd() got an unexpected keyword argument 'results_dir'. Both call
    sites now map to the correct parameters. Added regression tests that exercise the fzd
    CLI and the fz design subcommand (only the Python API was covered before, which is why
    this shipped).

fzd input-flag aliases (consistency with fzi/fzc/fzr)

  • fzd and fz design now accept --input_path (alias of --input_dir) and
    --input_variables/--variables (aliases of --input_vars), so the input flags read
    the same across all commands. The original --input_dir/--input_vars and -i/-v
    still work. (fzd still has no --format: it prints a convergence summary and writes
    the design/analysis under --results_dir.)

CLI hardening for scripting and AI agents

  • Log messages (FZ_LOG_LEVEL) and progress output now go to stderr instead of
    stdout, so fzr ... --format json > results.json produces clean, parseable data.
  • The progress bar/spinner now writes to stderr and is automatically disabled when
    stderr is not a TTY (piped or redirected output), in addition to CI environments.
  • fzr now exits with code 1 when no case succeeded (all cases error/failed/
    interrupted), so shell scripts can detect total failure without parsing output.
    Partial success still exits 0; per-case status remains in the status column.

Documentation

  • Two worked skill examples in skills/examples/: a Newton-cooling calibration (reuse the
    Modelica wrapper + brent algorithm) and an OpenFOAM dam-break random-sampling study
    (author the wrapper and the algorithm from scratch). The latter is validated end to end
    against OpenFOAM v2412.
  • Skill guidance hardened from running those examples: model-vs-calculator distinction,
    directory-tree (case-based) codes, locale-safe (LC_ALL=C) output parsing, runner-script
    invocation gotchas, the fzd flag divergence, and a common-failures table.
  • New Agent Skill in skills/fz/ for AI coding agents (Claude Code and compatible),
    with a condensed API/CLI reference, fzd algorithm guide, and code-wrapper guide
    (code-wrapper.md).
  • The repo is now a Claude Code plugin marketplace (.claude-plugin/): install the skill
    from inside Claude Code with /plugin marketplace add Funz/fz + /plugin install fz@funz.
  • New llms.txt documentation index and CLAUDE.md contributor guide.

fz 1.0

28 Apr 18:39

Choose a tag to compare

First stable release of funz-fz, the parametric scientific computing framework.

What's new

  • Complete parametric study engine: fzl, fzi, fzc, fzo, fzr, fzd
  • Iterative Design of Experiments with adaptive algorithms (Brent, BFGS, random sampling, Monte Carlo)
  • Smart caching via cache:// calculator
  • SSH, SLURM, Funz remote calculators
  • Full CLI with JSON/CSV/Markdown/HTML output formats
  • Jupyter notebook examples (see examples/ or Open In Colab)

Install

pip install funz-fz

Version 0.9.1

26 Jan 14:05
7f3481b

Choose a tag to compare

Cleanup-sanitize-doc-andmore (#60)

* sanitize code

* up version (0.9.1)

* some more code sanitize

* add fzl  and update

* update doc , context

---------

Co-authored-by: yannrichet <richetyann@gmail.com>

Version 0.9

16 Oct 15:32
01b753d

Choose a tag to compare

Merge pull request #37 from Funz/practice-0.9-fixes

Practice 0.9 fixes

Version 0.8

12 Oct 15:20

Choose a tag to compare

0.8.0

ensure no mixing tmp dir in remote calcs