# 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.