Avoid accessing internal object attributes like `__dict__` or using unpacking syntax when cleaner alternatives exist. Instead, prefer stable public methods or direct assignment patterns that don't couple to object internals.
Avoid accessing internal object attributes like __dict__
or using unpacking syntax when cleaner alternatives exist. Instead, prefer stable public methods or direct assignment patterns that don’t couple to object internals.
For object attribute access, use stable methods when available:
# Avoid
"usage": response.usage.__dict__ if hasattr(response, "usage") else None
# Prefer
"usage": response.usage.model_dump() if hasattr(response, "usage") else None
# or explicitly map known fields
"usage": {"tokens": response.usage.tokens, "cost": response.usage.cost} if hasattr(response, "usage") else None
For list/tuple assignments, use direct assignment when possible:
# Avoid
outputs = [*BaseFileComponent._base_outputs]
# Prefer
outputs = BaseFileComponent._base_outputs
This approach reduces coupling to implementation details, improves maintainability, and makes code more resilient to internal API changes.
Enter the URL of a public GitHub repository