When annotating optional or nullable types in Python, ensure compatibility across all supported Python versions. For codebases supporting Python 3.9:
from __future__ import annotations at the top of files using the union type syntax:
from __future__ import annotations
class ExInfo:
name: str
retry: bool
description: str | None
typing.Optional[X] instead of X | None syntax:
import typing
class CoderPrompts:
repo_content_prefix: typing.Optional[str] = """Here are summaries..."""
This ensures proper null handling with type annotations while maintaining backward compatibility with Python 3.9, preventing runtime errors like TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'.
Enter the URL of a public GitHub repository