summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2015-01-16 15:33:09 -0500
committerJason R. Coombs <jaraco@jaraco.com>2015-01-16 15:33:09 -0500
commit2cfb9fae4859ba611de0426f8bbb3aeeb3b22d9a (patch)
tree35e7405b5a9d13d2255f50d469b14641bd7e13b5
parente0e2c675ed69e88e78199a1f868fda23ad292877 (diff)
downloadpython-setuptools-bitbucket-2cfb9fae4859ba611de0426f8bbb3aeeb3b22d9a.tar.gz
Renamed .get_writer to .best and removed boolean argument.
-rw-r--r--CHANGES.txt2
-rwxr-xr-xsetuptools/command/easy_install.py25
-rwxr-xr-xsetuptools/command/install_scripts.py11
3 files changed, 27 insertions, 11 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index afec8156..ad419d25 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,8 @@ CHANGES
``build.executable``, such that an executable of "/usr/bin/env my-python" may
be specified. This means that systems with a specified executable whose name
has spaces in the path must be updated to escape or quote that value.
+* Deprecated ``easy_install.ScriptWriter.get_writer``, replaced by ``.best()``
+ with slightly different semantics (no force_windows flag).
------
11.3.1
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index 340b1fac..b61ab034 100755
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -742,7 +742,7 @@ Please make the appropriate changes for your system and try again.
def install_wrapper_scripts(self, dist):
if not self.exclude_scripts:
- for args in ScriptWriter.get_args(dist):
+ for args in ScriptWriter.best().get_args(dist):
self.write_script(*args)
def install_script(self, dist, script_name, script_text, dev_path=None):
@@ -1975,7 +1975,7 @@ class ScriptWriter(object):
def get_script_args(cls, dist, executable=None, wininst=False):
# for backward compatibility
warnings.warn("Use get_args", DeprecationWarning)
- writer = cls.get_writer(wininst)
+ writer = (WindowsScriptWriter if wininst else ScriptWriter).best()
header = cls.get_script_header("", executable, wininst)
return writer.get_args(dist, header)
@@ -2007,9 +2007,16 @@ class ScriptWriter(object):
@classmethod
def get_writer(cls, force_windows):
- if force_windows or sys.platform == 'win32':
- return WindowsScriptWriter.get_writer()
- return cls
+ # for backward compatibility
+ warnings.warn("Use best", DeprecationWarning)
+ return WindowsScriptWriter.best() if force_windows else cls.best()
+
+ @classmethod
+ def best(cls):
+ """
+ Select the best ScriptWriter for this environment.
+ """
+ return WindowsScriptWriter.best() if sys.platform == 'win32' else cls
@classmethod
def _get_script_args(cls, type_, name, header, script_text):
@@ -2027,8 +2034,14 @@ class ScriptWriter(object):
class WindowsScriptWriter(ScriptWriter):
@classmethod
def get_writer(cls):
+ # for backward compatibility
+ warnings.warn("Use best", DeprecationWarning)
+ return cls.best()
+
+ @classmethod
+ def best(cls):
"""
- Get a script writer suitable for Windows
+ Select the best ScriptWriter suitable for Windows
"""
writer_lookup = dict(
executable=WindowsExecutableLauncherWriter,
diff --git a/setuptools/command/install_scripts.py b/setuptools/command/install_scripts.py
index 722b0566..ad89c5fd 100755
--- a/setuptools/command/install_scripts.py
+++ b/setuptools/command/install_scripts.py
@@ -13,7 +13,7 @@ class install_scripts(orig.install_scripts):
self.no_ep = False
def run(self):
- from setuptools.command.easy_install import ScriptWriter, CommandSpec
+ import setuptools.command.easy_install as ei
self.run_command("egg_info")
if self.distribution.scripts:
@@ -30,14 +30,15 @@ class install_scripts(orig.install_scripts):
ei_cmd.egg_name, ei_cmd.egg_version,
)
bs_cmd = self.get_finalized_command('build_scripts')
- cmd = CommandSpec.from_param(getattr(bs_cmd, 'executable', None))
+ cmd = ei.CommandSpec.from_param(getattr(bs_cmd, 'executable', None))
is_wininst = getattr(
self.get_finalized_command("bdist_wininst"), '_is_running', False
)
+ writer = ei.ScriptWriter
if is_wininst:
- cmd = CommandSpec.from_string("python.exe")
- writer = ScriptWriter.get_writer(force_windows=is_wininst)
- for args in writer.get_args(dist, cmd.as_header()):
+ cmd = ei.CommandSpec.from_string("python.exe")
+ writer = ei.WindowsScriptWriter
+ for args in writer.best().get_args(dist, cmd.as_header()):
self.write_script(*args)
def write_script(self, script_name, contents, mode="t", *ignored):