google / python-fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
Other
26.66k stars 1.44k forks source link

bug fix for help from typing package, add test for optional and union #513

Open Jemeljanov opened 2 months ago

Jemeljanov commented 2 months ago

Closes #508

Fixed bug where objects from typing instance were not displayed correctly mentioned in #508 and also Union types.

Added tests for typing.Union and typing.Optional

Other notes

Removed comment as the edge case mentioned is handled by new code.

Used arg_type = repr(arg_type).replace('typing.', '') to output a shorter message for user

google-cla[bot] commented 2 months ago

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

dbieber commented 2 months ago

Thanks for putting this together! At a quick glance, this LGTM. One comment inline above.

Jemeljanov commented 2 months ago

@dbieber it was a little bit different behaviour now it will be Optional[Union[int, str]], the Optional is because the default is None.

Now it is more in compliance with the typing in python code and a more robust version than with regular expression.

Additional check is to prevent the Optional repetition (one added from python-fire the other from typing package).