Skip to content

Commit d12bec6

Browse files
authored
bpo-43424: Deprecate webbrowser.MacOSXOSAScript._name attribute (GH-30241)
1 parent 8e11237 commit d12bec6

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

Doc/library/webbrowser.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,11 @@ Browser controllers provide these methods which parallel three of the
197197
module-level convenience functions:
198198

199199

200+
.. attribute:: name
201+
202+
System-dependent name for the browser.
203+
204+
200205
.. method:: controller.open(url, new=0, autoraise=True)
201206

202207
Display *url* using the browser handled by this controller. If *new* is 1, a new

Lib/test/test_webbrowser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def test_environment(self):
304304
webbrowser = import_helper.import_fresh_module('webbrowser')
305305
try:
306306
browser = webbrowser.get().name
307-
except (webbrowser.Error, AttributeError) as err:
307+
except webbrowser.Error as err:
308308
self.skipTest(str(err))
309309
with os_helper.EnvironmentVarGuard() as env:
310310
env["BROWSER"] = browser
@@ -316,7 +316,7 @@ def test_environment_preferred(self):
316316
try:
317317
webbrowser.get()
318318
least_preferred_browser = webbrowser.get(webbrowser._tryorder[-1]).name
319-
except (webbrowser.Error, AttributeError, IndexError) as err:
319+
except (webbrowser.Error, IndexError) as err:
320320
self.skipTest(str(err))
321321

322322
with os_helper.EnvironmentVarGuard() as env:

Lib/webbrowser.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -666,19 +666,33 @@ def open(self, url, new=0, autoraise=True):
666666
return not rc
667667

668668
class MacOSXOSAScript(BaseBrowser):
669-
def __init__(self, name):
670-
self._name = name
669+
def __init__(self, name='default'):
670+
super().__init__(name)
671+
672+
@property
673+
def _name(self):
674+
warnings.warn(f'{self.__class__.__name__}._name is deprecated in 3.11'
675+
f' use {self.__class__.__name__}.name instead.',
676+
DeprecationWarning, stacklevel=2)
677+
return self.name
678+
679+
@_name.setter
680+
def _name(self, val):
681+
warnings.warn(f'{self.__class__.__name__}._name is deprecated in 3.11'
682+
f' use {self.__class__.__name__}.name instead.',
683+
DeprecationWarning, stacklevel=2)
684+
self.name = val
671685

672686
def open(self, url, new=0, autoraise=True):
673-
if self._name == 'default':
687+
if self.name == 'default':
674688
script = 'open location "%s"' % url.replace('"', '%22') # opens in default browser
675689
else:
676-
script = '''
690+
script = f'''
677691
tell application "%s"
678692
activate
679693
open location "%s"
680694
end
681-
'''%(self._name, url.replace('"', '%22'))
695+
'''%(self.name, url.replace('"', '%22'))
682696

683697
osapipe = os.popen("osascript", "w")
684698
if osapipe is None:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Deprecate :attr:`webbrowser.MacOSXOSAScript._name` and use ``name`` instead.

0 commit comments

Comments
 (0)