Skip to content

feature request: tell fire to stop parsing argument and pass the remaining unparsed args to function #403

@link89

Description

@link89

Feature Description

I am working on a tool to wrap some existed command line tools to make them easier to use (like auto install, inject argument automatically, etc). And I hope that I can have a way to tell Fire to stop parsing after encount some specific command.

Example
Here are some real world examples like poetry run python3 ./my-scripts.py or conda run -n my-env python3 ./my-scripts.py

Without this feature I can only put everything else as string, just like what -c option of bash does, e.g. bash -c "echo 'hello world'" , which could still work, but the user have to type extra string quote and dealing with escaping in some cases.

I am not sure if it is possbile to provide some decorator to archive this, for example

class Conda:
  def __init__(verbose=False):
    ...

  @fire.decorators.SkipParse
  def run(self, *argv):
    print(argv)

fire.Fire(Conda)

And when running with python fake-conda.py --verbose run which -a python3, the output should be ('which', '-a', 'python3')

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions