Skip to content

fortranspire 0.1.0 — first PyPI release

Choose a tag to compare

@maurinl26 maurinl26 released this 22 Jun 06:38

First public release of fortranspire on PyPI. The project was renamed from coding-agent / local-code-agent; this is its first release under the new name and the first artifact published to PyPI + Zenodo.

Install

pip install fortranspire                      # core: analyze, explain, format, graph, diff, report, bench
pip install 'fortranspire[gpu]'               # + LLM pipeline (Phase 1, doc, port-batch)
pip install 'fortranspire[mcp]'               # + MCP server (FastMCP)
pip install 'fortranspire[jax]'               # + Phase 2 (Fortran → JAX, experimental)
pip install 'fortranspire[all]'               # everything

What's in this release

Unified fortranspire <verb> CLI with 13 subcommands:

no-LLM, CI-friendly LLM-driven server
analyze (Loki + SARIF) doc (inline !> + Sphinx) mcp (FastMCP)
explain (cost/risk estimate) gpu (Phase 1 port, --gpu-pragma acc|omp)
format (fprettify wrapper) port-batch (parallel)
graph (Mermaid call-graph) translate (Phase 2 JAX)
diff (semantic before/after) profile (bench)
report (HTML audit)
bench (regression detector)

Highlights

  • Auto-generated CPU↔GPU equivalence test harness per ported kernel — every Phase-1 port comes with a numerical-equivalence pytest file (np.testing.assert_allclose per INTENT(OUT|INOUT))
  • OpenMP target alternative emissionfortranspire gpu --gpu-pragma omp for multi-vendor compatibility (gfortran 13+, nvfortran, ifx, AMD AOMP, IBM XL)
  • Parallel batch port with per-file ContextVar output isolation — 100 routines in ~45 min on 4 workers vs ~3h sequential
  • SQLite-backed LRU cache for LLM responses — identical re-runs return instantly, zero token cost
  • Per-tenant observability tracer with per-model price table (Mistral La Plateforme) and LangChain BaseCallbackHandler for token capture
  • Hardened MCP server — JSON token registry, sliding-window rate limit, HMAC-signed audit log
  • Native Mistral SDK auto-selected on api.mistral.ai, ChatOpenAI fallback for vLLM / TGI / Ollama / Scaleway / OVH
  • French translations of every LLM prompt — initial audience (Météo-France, CEA, EDF R&D, ENM Toulouse) is francophone
  • JOSS submission packagepaper.md, paper.bib, CITATION.cff, codemeta.json, .zenodo.json, .readthedocs.yaml, and a GitHub Action that renders the JOSS draft PDF on every push

Sovereignty

No Azure / AWS / GCP dependency on the LLM path. Default endpoint = Mistral La Plateforme (EU-hosted). Works against any OpenAI-compatible endpoint (Scaleway Generative APIs, OVH AI Endpoints, self-hosted vLLM / TGI / Ollama).

Full changelog

See docs/changelog.md. 19 issues closed during the development sprint (#1#20).

Citation

A DOI for this release is being minted by Zenodo via the GitHub integration. Once it's live, the badge in the README will update; alternatively, every release tag mints its own DOI for fine-grained citation. Use CITATION.cff (rendered as the "Cite this repository" button on the repo home) for citation metadata.

🤖 Built with Claude Code