google / google/python-fire

Allow to supress output.

未關閉
#532 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
28.2k
分支
1.5k
PR 合併指標
30 天內沒有已合併 PR

描述

I propose we allow to supress output.
```
def Fire(component=None, command=None, name=None, serialize=None, supress_output=False):
...
if not supress_output:
_PrintResult(
component_trace, verbose=component_trace.verbose, serialize=serialize)
```
Why?

Let's try to wrap a function that returns a ```pd.DataFrame``` with ```Fire```:
```
import pandas as pd
from os import PathLike
from fire import Fire
from functools import wraps

def do_stuff_with_df(path: PathLike) -> pd.DataFrame:
df = pd.read_csv(path)
print("***Print inside func***")
# Do stuff here, save .csv and such.
...
# return for usage in other funcs
return df

if __name__ == "__main__":
Fire(do_stuff_with_df)
```
And this is the output.
```
python .\test.py --path dummy.csv
***Print inside func***
NAME
test.py --path dummy.csv - Two-dimensional, size-mutable, potentially heterogeneous tabular data.

SYNOPSIS
test.py --path dummy.csv GROUP | COMMAND | VALUE

DESCRIPTION
Data structure also contains labeled axes (rows and columns).
Arithmetic operations align on both row and column labels. Can be
thought of as a dict-like container for Series objects. The primary
pandas data structure.
(We can scroll down for more!)
...
```
We get a description of pd.DataFrame. And we have to press ```Q``` enter normal terminal again.
That's quite inconvenient. A user would have to create and apply wrapper to not get this description.

貢獻指南

開啟貢獻指南

研究方向

從 issue 中所示的 Fire 進入點開始,並重現 pandas.DataFrame 範例。追蹤傳回的物件在哪裡被呈現,然後確認 opt-out 會抑制該自動描述,同時保留包裝函式內列印的輸出。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
cli
Issue 類型
功能
難度
2/5
預估耗時
1-3 小時
活躍度
停滯
描述清晰度
基本清楚
新手友好度
48/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。