Problem
Currently, Python Fire CLI tools require all configuration to be passed via command-line arguments. For sensitive data or frequently used configurations, this can be cumbersome and insecure.
Proposed Solution
Add support for reading configuration values from environment variables with a naming convention like FIRE_<PARAM_NAME>.
Example Usage
python import fire
def deploy(api_key, region='us-east-1'):
"""Deploy application"""
print(f"Deploying to {region} with key {api_key}")
if __name__ == '__main__':
fire.Fire(deploy)
Current usage (exposes secret):
python deploy.py --api-key=secret123 --region=eu-west-1
Proposed usage:
export FIRE_API_KEY=secret123
python deploy.py --region=eu-west-1
Benefits
- Security: Sensitive data not exposed in process lists
- Convenience: Reduce repetitive argument typing
- DevOps: Better integration with container/cloud environments
Alternative Considered
Using config files, but environment variables are more standard in modern deployment workflows.
Problem
Currently, Python Fire CLI tools require all configuration to be passed via command-line arguments. For sensitive data or frequently used configurations, this can be cumbersome and insecure.
Proposed Solution
Add support for reading configuration values from environment variables with a naming convention like
FIRE_<PARAM_NAME>.Example Usage
python import fire def deploy(api_key, region='us-east-1'): """Deploy application""" print(f"Deploying to {region} with key {api_key}") if __name__ == '__main__': fire.Fire(deploy)Current usage (exposes secret):
Proposed usage:
Benefits
Alternative Considered
Using config files, but environment variables are more standard in modern deployment workflows.