Skip to content

Refactor Dynamic Float Types Creation for Pydantic Compatibility #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Nov 17, 2024

Conversation

eksavazquez
Copy link
Owner

Overview: This update introduces dynamic creation of numpy float types (float16, float32, and float64) as subclasses of NumpyFloat, improving maintainability and avoiding redundant code.

Key Changes:

Dynamic Class Creation:

Using types.new_class() to dynamically create float16, float32, and float64 classes as subclasses of NumpyFloat.
This approach handles numpy types that may interfere with type() due to method resolution order (MRO) issues.
Static Type Checker Compatibility:

Added a conditional TYPE_CHECKING block at the top of init.py to define each class (float16, float32, and float64) for static analysis tools like Pylance.
This ensures Pylance and similar tools recognize these classes, improving code completion and static type checking without affecting runtime.
Benefits:

Reduces Code Duplication: The dynamic approach removes the need to manually define each float type class.
Enhances Static Analysis: Explicit type declarations make classes visible to static type checkers, which is useful for both development and IDE support.

@eksavazquez eksavazquez added the enhancement New feature or request label Nov 14, 2024
@eksavazquez eksavazquez self-assigned this Nov 14, 2024
@eksavazquez eksavazquez changed the base branch from main to develop November 14, 2024 22:28

from .floats import NumpyFloat # Adjust import path as needed

__all__ = ["float16", "float32", "float64"]

Choose a reason for hiding this comment

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

Very mindful of your users, great!

Copy link

@eksdsoto eksdsoto Nov 15, 2024

Choose a reason for hiding this comment

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

You may delete this file now that you have some tests, right

@eksavazquez eksavazquez merged commit 9c129b7 into develop Nov 17, 2024
4 checks passed
@eksavazquez eksavazquez deleted the feature/initial_float_types branch November 17, 2024 11:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants