Skip to content

stubs are completely broken #1919

@DetachHead

Description

@DetachHead

it looks like whatever is being used to generate the stubs is completely broken. for example the type annotations in SeleniumLibrary/__init__.pyi are mostly invalid:

class SeleniumLibrary:
    def __init__(self, timeout = timedelta(seconds=5.0), implicit_wait = timedelta(seconds=0.0), run_on_failure = 'Capture Page Screenshot', screenshot_root_directory: Optional[Optional] = None, plugins: Optional[Optional] = None, event_firing_webdriver: Optional[Optional] = None, page_load_timeout = timedelta(seconds=300.0), action_chain_delay = timedelta(seconds=0.25)): ...
    def add_cookie(self, name: str, value: str, path: Optional[Optional] = None, domain: Optional[Optional] = None, secure: Optional[Optional] = None, expiry: Optional[Optional] = None): ...
    
    ...
    
    def click_button(self, locator: Union, modifier: Union = False): ...
    def click_element(self, locator: Union, modifier: Union = False, action_chain: bool = False): ...
    def click_element_at_coordinates(self, locator: Union, xoffset: int, yoffset: int): ...
    def click_image(self, locator: Union, modifier: Union = False): ...
    def click_link(self, locator: Union, modifier: Union = False): ...
  • Optional[Optional] isn't valid. the correct usage would be something like Optional[int] (though Optional is deprecated in favor of the new union syntax eg. int | None)
  • Union is not valid as a type on its own. it should be something like Union[int, str] (which is deprecated in favor of int | str)
  • i see that __init__.py contains type annotations, so the generated stubs should not be needed and can probably just be deleted
  • a py.typed file is also required for type checkers to treat the package as typed

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions