-
Notifications
You must be signed in to change notification settings - Fork 0
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
REFACTOR-#7242: Add type hints for modin/core/dataframe/algebra/
#15
Conversation
Signed-off-by: Anatoly Myachev <[email protected]>
Clone of the PR modin-project/modin#7243 |
My review is in progress 📖 - I will have feedback for you in a few minutes! |
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have reviewed your code and found 4 potential issues.
if reduce_function is None: | ||
reduce_function = map_function |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When reduce_function
is None
, it's set to map_function
. However, map_function
is typed to return a pandas.DataFrame
, while reduce_function
should return a pandas.Series
. This type inconsistency could lead to runtime errors. Consider adding a runtime check or adjusting the type hints to ensure type consistency in this case.
Chat with Korbit for more details or suggestions by mentioning @korbit-ai in your reply, and don't forget to give a 👍 or 👎 to help Korbit improve your reviews.
def register( | ||
cls, map_function, reduce_function=None, axis=None, compute_dtypes=None | ||
): | ||
cls, | ||
map_function: Optional[Callable[..., pandas.DataFrame]], | ||
reduce_function: Optional[Callable[..., pandas.Series]] = None, | ||
axis: Optional[int] = None, | ||
compute_dtypes: Optional[Callable[..., DtypeObj]] = None, | ||
) -> Callable[..., PandasQueryCompiler]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The map_function
parameter is defined as optional, but the method doesn't handle the case where it could be None
. This might lead to runtime errors if None
is passed. Consider adding a check at the beginning of the register
method to ensure map_function
is not None
, raising a ValueError
if it is.
Chat with Korbit for more details or suggestions by mentioning @korbit-ai in your reply, and don't forget to give a 👍 or 👎 to help Korbit improve your reviews.
@@ -155,7 +164,7 @@ def maybe_compute_dtypes_common_cast( | |||
], | |||
index=common_columns, | |||
) | |||
dtypes = pandas.concat( | |||
dtypes: pandas.Series = pandas.concat( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The type hint for the dtypes
variable in the maybe_compute_dtypes_common_cast
function is redundant because the type is already inferred from the assignment. Please remove the explicit type hint to avoid redundancy and improve readability.
Chat with Korbit for more details or suggestions by mentioning @korbit-ai in your reply, and don't forget to give a 👍 or 👎 to help Korbit improve your reviews.
@@ -124,6 +130,9 @@ class BaseQueryCompiler( | |||
for a list of requirements for subclassing this object. | |||
""" | |||
|
|||
_modin_frame: PandasDataframe | |||
_shape_hint: Optional[str] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The type hint for '_shape_hint' is not specific enough. Using 'Optional[str]' does not convey the possible values it can take. Please update it to a more specific type that includes the possible values it can take, such as 'Optional[Literal['row', 'column', None]]'.
Chat with Korbit for more details or suggestions by mentioning @korbit-ai in your reply, and don't forget to give a 👍 or 👎 to help Korbit improve your reviews.
@coderabbitai review |
Actions performedReview triggered.
|
/review |
PR Reviewer Guide 🔍
|
What do these changes do?
flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
git commit -s
docs/development/architecture.rst
is up-to-dateDescription by Korbit AI
Note
This feature is in early access. You can enable or disable it in the Korbit Console.
What change is being made?
Add type hints to the
modin/core/dataframe/algebra/
module.Why are these changes being made?
These changes improve code readability and maintainability by providing explicit type information, which helps in catching type-related errors early and aids in code comprehension. This is part of an ongoing effort to enhance the overall code quality and developer experience.