# F2PY CLI redesign study ### First thoughts Redesigning the CLI won't be complicated. The frontend structure has already been created by Rohit Goswami [argparse_f2py](https://github.com/HaoZeke/numpy/tree/argparse_f2py). I just need to parse the `NameSpace` and call the right functions which have already been build by Dr Pearu. I will first read this [CLI dev guide](https://clig.dev) and write down anything related to F2PY in this doc. I can't change the design of F2PY as it needs to be backwards compatible. However, I will try to make its background functions more modular. There are a lot of big moving parts in this CLI, and breaking them up making them smaller units will probably take a lot of time considering the farther reaching implications that small changes might have. [**Saying just enough**](https://clig.dev/#saying-just-enough) Currently executing `f2py -c -help-compiler` gives out huge amount of information: ``` Gnu95FCompiler instance properties: archiver = ['arm64-apple-darwin20.0.0-ar', '-cr'] compile_switch = '-c' compiler_f77 = ['/Users/namami/mambaforge/envs/numpy-dev/bin/arm64- apple-darwin20.0.0-gfortran', '-Wall', '-g', '-ffixed- form', '-fno-second-underscore', '-fPIC', '-march=armv8.3- a', '-ftree-vectorize', '-fPIC', '-fno-stack-protector', ' -O2', '-pipe', '-isystem', '/Users/namami/mambaforge/envs/numpy-dev/include', '-O3', '-funroll-loops'] . . . ``` We should condense this. Also with meson as a backend, it will be difficult to extract this much informations about compilers. **Also a doubt** `--help-compiler` is deprecated, but it still works and displays wrong output. It was showing Intel compiler installed on my Mac M1. We should print Deprecation warning on its usage and guide user to `--help-fcompiler` - [name=Rohit] Add `--help-ccompiler` **Help Message** Put a link to online documentation in epilogue - https://clig.dev/#help Do we need to put feedback/issues link in help message? *Not that important* Man page for F2PY? **Output Message** Colored output message displaying success or failure. **Flags** `-h` --> `-s, --signature` would make more sense.