Skip to content

Add @typing.override annotations to catalog and FileIO implementations#3360

Open
vishnuprakaz wants to merge 1 commit into
apache:mainfrom
vishnuprakaz:feature/add-typing-override
Open

Add @typing.override annotations to catalog and FileIO implementations#3360
vishnuprakaz wants to merge 1 commit into
apache:mainfrom
vishnuprakaz:feature/add-typing-override

Conversation

@vishnuprakaz
Copy link
Copy Markdown

Adds @override from typing_extensions to all concrete implementations of Catalog, MetastoreCatalog, FileIO, InputFile, and OutputFile so overridden base-class methods are explicit and can be verified by static type checkers.

Uses from typing_extensions import override (same pattern already used for Self in typedef.py) instead of from typing import override which requires Python 3.12+ and would break the supported 3.10/3.11 versions.

Closes #1310

Rationale for this change

@typing.override (PEP 698) makes it explicit which methods intentionally override a parent class method, helping static type checkers catch mistakes early. The previous attempt (#1312) and the currently open PR (#3359) both use from typing import override which only exists in Python 3.12+. This PR uses typing_extensions to support all versions from 3.10+.

Are these changes tested?

No new tests are needed — @override is a static analysis marker with zero runtime effect. make lint and make test (3625 passed) both pass cleanly.

Are there any user-facing changes?

No.

@vishnuprakaz vishnuprakaz force-pushed the feature/add-typing-override branch from 57a6ff6 to 5ccad43 Compare May 14, 2026 17:54
Copy link
Copy Markdown
Contributor

@rambleraptor rambleraptor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a great dev UX change. Thanks for doing this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add @typing.override to functions

2 participants