Skip to content
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

Add types to set_window_position parameters #13786

Merged
merged 3 commits into from
Apr 10, 2024
Merged

Add types to set_window_position parameters #13786

merged 3 commits into from
Apr 10, 2024

Conversation

adamtheturtle
Copy link
Contributor

@adamtheturtle adamtheturtle commented Apr 7, 2024

Type

enhancement


Description

  • This PR enhances the set_window_position method by adding type annotations to its parameters, improving code readability and type checking.

Changes walkthrough

Relevant files
Enhancement
webdriver.py
Add Type Annotations to set_window_position Parameters     

py/selenium/webdriver/remote/webdriver.py

  • Added type annotations to the x and y parameters of the
    set_window_position method.
  • +1/-1     

    PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    Copy link
    Contributor

    PR Description updated to latest commit (13ed675)

    Copy link
    Contributor

    PR Review

    ⏱️ Estimated effort to review [1-5]

    1, because the change is minimal and straightforward, involving only the addition of type annotations to existing method parameters.

    🧪 Relevant tests

    No

    🔍 Possible issues

    Type Mismatch: If existing calls to set_window_position use types other than float for x and y, this change could introduce type errors.

    🔒 Security concerns

    No


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review which includes several types of feedbacks, such as possible PR issues, security threats and relevant test in the PR. More feedbacks can be added by configuring the tool.

    The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.

    • When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    
    [pr_reviewer]
    some_config1=...
    some_config2=...
    

    See the review usage page for a comprehensive guide on using this tool.

    Copy link
    Contributor

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Best practice
    Change type hints for window position parameters from float to int.

    Consider changing the type hints for x and y from float to int since window positions are
    typically represented in integer values. Using float might imply unnecessary precision and
    could lead to confusion or the need for additional type conversions.

    py/selenium/webdriver/remote/webdriver.py [877]

    -def set_window_position(self, x: float, y: float, windowHandle: str = "current") -> dict:
    +def set_window_position(self, x: int, y: int, windowHandle: str = "current") -> dict:
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

    • When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:
    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    
    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    

    See the improve usage page for a comprehensive guide on using this tool.

    @adamtheturtle
    Copy link
    Contributor Author

    The bot suggests:

    Consider changing the type hints for x and y from float to int since window positions are
    typically represented in integer values. Using float might imply unnecessary precision and
    could lead to confusion or the need for additional type conversions.
    

    I chose not to do this as the function casts x and y to int - this is only useful if a non-int can be passed in.

    Copy link

    @A1exKH A1exKH left a comment

    Choose a reason for hiding this comment

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

    LGTM.

    Copy link
    Member

    @diemol diemol left a comment

    Choose a reason for hiding this comment

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

    Are integers considered as floats in Python? What happens if the user enters 1 instead of 1.0?

    @adamtheturtle
    Copy link
    Contributor Author

    @diemol

    Are integers considered as floats in Python?

    Only in the type system, because this is such a common use case.
    See Special cases for float and complex.

    when an argument is annotated as having type `float`, an argument of type `int` is acceptable
    

    What happens if the user enters 1 instead of 1.0?

    That's accepted. It is as if we have written Union[int, float].

    Copy link
    Member

    @diemol diemol left a comment

    Choose a reason for hiding this comment

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

    Thank you, @adamtheturtle!

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

    Successfully merging this pull request may close these issues.

    3 participants