google / google/python-fire

feature request: a way to support nested dict input

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

Description

## Background
Hi, I just come into a case that need to allow user to override some default value of a json configuration. The configuration is a nested dict and so is the input. I didn't find fire has good support for such case so here is a proposal.

## Feature
Take this as an example

```python
def my_command(config: dict):
...
```
I think fire may support such input to build the actual value of `config`

``` bash
my_command --config.pos.x=20 --config.pos.y=10
# or
my_command --config.pos='{"x": 20, "y":10}'
# or
my_command --config='{"pos": {"x": 20, "y":10}}'
```
And both will end up with the following dict
```python
{
"pos": { "x": 20, "y": 10}
}
```
The beauty of this design can avoid a lot of unecessary `"` and `{}` (and you need to pair them correctly) input of a JSON data. It's less error prone and comforable to use this style in command line. Currently I can handle this via kwargs, but I think it would be nice to have native support.

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.