mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-10 05:51:52 +08:00
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:
@@ -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: ...
|
||||
|
||||
Reference in New Issue
Block a user