Improve webbrowser stubs (#7190)

- `BaseBrowser.open` is an abstract method that should be overridden in all subclasses.
- `UnixBrowser.open` only accepts 0, 1 or 2 for the `new` parameter.
This commit is contained in:
Alex Waygood
2022-02-14 01:10:43 +00:00
committed by GitHub
parent 7f472e94e5
commit 0109a371d6

View File

@@ -1,5 +1,7 @@
import sys
from abc import abstractmethod
from typing import Callable, Sequence
from typing_extensions import Literal
class Error(Exception): ...
@@ -23,16 +25,19 @@ class BaseBrowser:
name: str
basename: str
def __init__(self, name: str = ...) -> None: ...
@abstractmethod
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
def open_new(self, url: str) -> bool: ...
def open_new_tab(self, url: str) -> bool: ...
class GenericBrowser(BaseBrowser):
def __init__(self, name: str | Sequence[str]) -> None: ...
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
class BackgroundBrowser(GenericBrowser): ...
class UnixBrowser(BaseBrowser):
def open(self, url: str, new: Literal[0, 1, 2] = ..., autoraise: bool = ...) -> bool: ... # type: ignore[override]
raise_opts: list[str] | None
background: bool
redirect_stdout: bool
@@ -49,12 +54,20 @@ class Galeon(UnixBrowser):
class Chrome(UnixBrowser): ...
class Opera(UnixBrowser): ...
class Elinks(UnixBrowser): ...
class Konqueror(BaseBrowser): ...
class Grail(BaseBrowser): ...
class Konqueror(BaseBrowser):
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
class Grail(BaseBrowser):
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
if sys.platform == "win32":
class WindowsDefault(BaseBrowser): ...
class WindowsDefault(BaseBrowser):
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
if sys.platform == "darwin":
class MacOSX(BaseBrowser): ...
class MacOSXOSAScript(BaseBrowser): ... # In runtime this class does not have `name` and `basename`
class MacOSX(BaseBrowser):
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...
class MacOSXOSAScript(BaseBrowser): # In runtime this class does not have `name` and `basename`
def open(self, url: str, new: int = ..., autoraise: bool = ...) -> bool: ...