google / google/python-fire

default mode without requiring named arguments

オープン
#331 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
28.2k
フォーク
1.5k
PR マージ指標
30日以内にマージされた PR はありません

説明

Surprised if this is not a dup, or documented - but I couldn't find it.

In most of my scripts I have a default behavior, and keyword modifiers, e.g.

```
# Default behavior is adding numbers
# a)
python script 1 2
-> 3

# modified behavior is subtracting numbers
# b)
python script subtract 1 2
-> -2
```

right now I can only get Fire to support keyword behavior, so a) would be
```
python script add 1 2
-> 3

```

I tried writing it all in a class, where the default is the \_\_call\_\_ method:

```
from fire import Fire

@Fire
class script:
@staticmethod
def subtract(a: int, b: int) -> int:
return a - b

@staticmethod
def __call__(a: int, b: int) -> int:
return a + b
```

but in this case I'm only able to call #a it as

```
python script --a=1 --b=2
```

I could of course manually process args, but at that point I might as well just use argparse.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。