google / google/python-fire

Allow to supress output.

Open
#532 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
28.2k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.