Description
When a required function argument is not provided via the command line, Python Fire raises a generic TypeError that doesn't clearly indicate which argument is missing or how to provide it.
Current Behavior
$ python my_script.py greet
TypeError: greet() missing 1 required positional argument: 'name'
Expected Behavior
A more user-friendly error message that would guide the user:
$ python my_script.py greet
Error: Missing required argument 'name'
Usage: my_script.py greet <name>
Motivation
This would significantly improve the user experience, especially for new users who are unfamiliar with Python tracebacks. Clear error messages are crucial for CLI tools.
Environment
- Python Fire version: 0.7.1
- Python version: 3.11
- OS: macOS
Possible Solution
Catch TypeError exceptions in the argument parsing logic and check if they're related to missing arguments, then provide a more descriptive message with usage hints.
Description
When a required function argument is not provided via the command line, Python Fire raises a generic TypeError that doesn't clearly indicate which argument is missing or how to provide it.
Current Behavior
Expected Behavior
A more user-friendly error message that would guide the user:
Motivation
This would significantly improve the user experience, especially for new users who are unfamiliar with Python tracebacks. Clear error messages are crucial for CLI tools.
Environment
Possible Solution
Catch TypeError exceptions in the argument parsing logic and check if they're related to missing arguments, then provide a more descriptive message with usage hints.