google / python-fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
Other
26.86k stars 1.44k forks source link

[feature request] Exclude function (kw)args from synopsis, arguments and flags in help output #465

Open eelkevdbos opened 11 months ago

eelkevdbos commented 11 months ago

The help output lists all function (keyword) arguments in the synopsis, arguments and flags.

In my specific use case, I would like to exclude some of those arguments, because they are:

  1. of non-literal type, and therefore not easily provided through the means of CLI
  2. injected by a dependency injection decorator

The option to exclude (keyword) arguments could be done in a couple of ways:

  1. prefix the argument name with an underscore, e.g.
    def my_function(a: bool, _complex_type: ComplexType = ComplexType()):
    ...
  2. limit args and kwargs to literal types
    fire.Fire(help_include_literals_only=True)
  3. provide the means to exclude arguments based on module or instance type, e.g.
    
    def my_function(a: bool, s: service.ComplexType):
    ...

fire.Fire( help_exclude_arg_types=[service.ComplexType], help_exclude_arg_modules=[service] )