A command-line tool requires a storage path but allows an optional retry count.
What You Need to Understand
Read required configuration keys explicitly and optional keys with get() or membership tests. Check the resulting type and range before passing a value to application logic.
When to Use It
A command-line tool requires a storage path but allows an optional retry count.
Step-by-Step Python Example
configuration = {"storage": "backup", "retries": 3}
if "storage" not in configuration:
raise ValueError("storage is required")
retry_count = configuration.get("retries", 1)
if not isinstance(retry_count, int) or isinstance(retry_count, bool) or retry_count < 0:
raise ValueError("retries must be a nonnegative integer")
print(configuration["storage"], retry_count)
How the Example Works
The program checks that storage exists, then validates optional retries before using either value.
Example Output
backup 3
10
A Second Example
Compare this smaller variation with the main example, then experiment with your own values.
settings = {"timeout": 10}
print(settings.get("timeout", 30))
Important Behavior and Edge Cases
A fallback value does not make invalid existing values safe. Treat external configuration as untrusted and validate expected types.
Try It Yourself
Reject negative retries and an empty storage path.
Common Beginner Mistakes
- A fallback value does not make invalid existing values safe. Treat external configuration as untrusted and validate expected types.
- Applying the example without a clearly defined policy for missing keys, matching identifiers, or validating external values.
Key Takeaways
- Read required configuration keys explicitly and optional keys with
get()or membership tests. - The program checks that storage exists, then validates optional retries before using either value.
- A fallback value does not make invalid existing values safe.