gh-130992: Add Interface Enforcement to abc
Module
#130993
Closed
+33
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a new InterfaceMeta metaclass in the abc module, enabling strict enforcement of interface method signatures in Python.
Motivation
Python's abc module allows for defining Abstract Base Classes (ABCs) but does not enforce method signatures. This can lead to subtle runtime errors if a derived class implements a method with an incorrect signature.
This PR adds an InterfaceMeta metaclass that ensures:
Changes Introduced
Example Usage
Issue Number
Closes gh-130992
Performance Impact
Minimal, as the verification occurs only at class definition time.
Backward Compatibility
Alternative Approaches Considered
Open Questions
Documentation Updates
Tests Added
Next Steps
🚀 This PR enhances Python’s OOP capabilities by introducing strict interface enforcement, improving maintainability and reducing runtime errors.