Description
Scope
The complexity (perceived or otherwise) and maintainer burden of f2py
is largely in two sections:
- The frontend parser for command-line options which operates directly on
sys.argv
- Parsing the Fortran grammar into an operable form
- Generating equivalent Python, sometimes with more Fortran
This is only to discuss (1) though (2) might be made more palpable with Lark (noted here, supports regex
based parsing). (3) is where most user-facing requests happen.
Context
(1) was tackled by @NamamiShanker in #21923 (earlier guidelines in #21700, now superseded) but, the CLI in f2py2e
can be tricky, with some global state and other considerations. There seems to be little appetite for a wholesale rewrite of the CLI without additional tests (as noted by @mattip), which makes sense, given the large number of (mostly unknown / silent) downstream users.
That isn't to say the existing CLI is bug free (#20520), or unambiguous for both new and experienced users (#22819).
Proposal
Moving forward, the plan is to upgrade the CLI incrementally as needed. Practically this means pre-processing sys.argv
for now as seen here.
This will keep compatibility and make it easier to review / reason / work with updates to the CLI. Eventually some day, the entire CLI will be in argparse
, but incrementally seems to be the best way forward.
There is no deadline for the implementation of the CLI in argparse
, and this is mostly an informational document.