You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
6.1 KiB
155 lines
6.1 KiB
--- setup.py
|
|
+++ setup.py
|
|
@@ -21,8 +21,6 @@
|
|
import shutil
|
|
|
|
from distutils.core import setup
|
|
-from distutils.command.build import build
|
|
-from distutils.command.install_data import install_data
|
|
|
|
# Check for Python 3
|
|
PY3 = sys.version_info[0] == 3
|
|
@@ -66,12 +64,7 @@
|
|
def get_data_files():
|
|
"""Return data_files in a platform dependent manner"""
|
|
if sys.platform.startswith('linux'):
|
|
- if PY3:
|
|
- data_files = [('share/applications', ['scripts/spyder3.desktop']),
|
|
- ('share/pixmaps', ['img_src/spyder3.png'])]
|
|
- else:
|
|
- data_files = [('share/applications', ['scripts/spyder.desktop']),
|
|
- ('share/pixmaps', ['img_src/spyder.png'])]
|
|
+ data_files = [('share/pixmaps', ['img_src/spyder.png'])]
|
|
elif os.name == 'nt':
|
|
data_files = [('scripts', ['img_src/spyder.ico',
|
|
'img_src/spyder_light.ico'])]
|
|
@@ -80,97 +73,6 @@
|
|
return data_files
|
|
|
|
|
|
-class MyInstallData(install_data):
|
|
- def run(self):
|
|
- install_data.run(self)
|
|
- if sys.platform.startswith('linux'):
|
|
- try:
|
|
- subprocess.call(['update-desktop-database'])
|
|
- except:
|
|
- print("ERROR: unable to update desktop database",
|
|
- file=sys.stderr)
|
|
-CMDCLASS = {'install_data': MyInstallData}
|
|
-
|
|
-
|
|
-# Sphinx build (documentation)
|
|
-def get_html_help_exe():
|
|
- """Return HTML Help Workshop executable path (Windows only)"""
|
|
- if os.name == 'nt':
|
|
- hhc_base = r'C:\Program Files%s\HTML Help Workshop\hhc.exe'
|
|
- for hhc_exe in (hhc_base % '', hhc_base % ' (x86)'):
|
|
- if osp.isfile(hhc_exe):
|
|
- return hhc_exe
|
|
- else:
|
|
- return
|
|
-
|
|
-try:
|
|
- from sphinx import setup_command
|
|
-
|
|
- class MyBuild(build):
|
|
- user_options = [('no-doc', None, "Don't build Spyder documentation")] \
|
|
- + build.user_options
|
|
- def __init__(self, *args, **kwargs):
|
|
- build.__init__(self, *args, **kwargs)
|
|
- self.no_doc = False
|
|
- def with_doc(self):
|
|
- setup_dir = os.path.dirname(os.path.abspath(__file__))
|
|
- is_doc_dir = os.path.isdir(os.path.join(setup_dir, 'doc'))
|
|
- install_obj = self.distribution.get_command_obj('install')
|
|
- return (is_doc_dir and not self.no_doc and not install_obj.no_doc)
|
|
- sub_commands = build.sub_commands + [('build_doc', with_doc)]
|
|
- CMDCLASS['build'] = MyBuild
|
|
-
|
|
-
|
|
- class MyInstall(install):
|
|
- user_options = [('no-doc', None, "Don't build Spyder documentation")] \
|
|
- + install.user_options
|
|
- def __init__(self, *args, **kwargs):
|
|
- install.__init__(self, *args, **kwargs)
|
|
- self.no_doc = False
|
|
- CMDCLASS['install'] = MyInstall
|
|
-
|
|
-
|
|
- class MyBuildDoc(setup_command.BuildDoc):
|
|
- def run(self):
|
|
- build = self.get_finalized_command('build')
|
|
- sys.path.insert(0, os.path.abspath(build.build_lib))
|
|
- dirname = self.distribution.get_command_obj('build').build_purelib
|
|
- self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc')
|
|
-
|
|
- if not osp.exists(self.builder_target_dir):
|
|
- os.mkdir(self.builder_target_dir)
|
|
-
|
|
- hhc_exe = get_html_help_exe()
|
|
- self.builder = "html" if hhc_exe is None else "htmlhelp"
|
|
-
|
|
- try:
|
|
- setup_command.BuildDoc.run(self)
|
|
- except UnicodeDecodeError:
|
|
- print("ERROR: unable to build documentation because Sphinx "\
|
|
- "do not handle source path with non-ASCII characters. "\
|
|
- "Please try to move the source package to another "\
|
|
- "location (path with *only* ASCII characters).",
|
|
- file=sys.stderr)
|
|
- sys.path.pop(0)
|
|
-
|
|
- # Building chm doc, if HTML Help Workshop is installed
|
|
- if hhc_exe is not None:
|
|
- fname = osp.join(self.builder_target_dir, 'Spyderdoc.chm')
|
|
- subprocess.call('"%s" %s' % (hhc_exe, fname), shell=True)
|
|
- if osp.isfile(fname):
|
|
- dest = osp.join(dirname, 'spyderlib')
|
|
- try:
|
|
- shutil.move(fname, dest)
|
|
- except shutil.Error:
|
|
- print("Unable to replace %s" % dest)
|
|
- shutil.rmtree(self.builder_target_dir)
|
|
-
|
|
- CMDCLASS['build_doc'] = MyBuildDoc
|
|
-except ImportError:
|
|
- print('WARNING: unable to build documentation because Sphinx '\
|
|
- 'is not installed', file=sys.stderr)
|
|
-
|
|
-
|
|
NAME = 'spyder'
|
|
LIBNAME = 'spyderlib'
|
|
from spyderlib import __version__, __project_url__
|
|
@@ -204,13 +106,7 @@
|
|
packages = get_subpackages(LIBNAME)+get_subpackages('spyderplugins')
|
|
return packages
|
|
|
|
-# NOTE: the '[...]_win_post_install.py' script is installed even on non-Windows
|
|
-# platforms due to a bug in pip installation process (see Issue 1158)
|
|
-SCRIPTS = ['%s_win_post_install.py' % NAME]
|
|
-if PY3 and sys.platform.startswith('linux'):
|
|
- SCRIPTS.append('spyder3')
|
|
-else:
|
|
- SCRIPTS.append('spyder')
|
|
+SCRIPTS = ['spyder']
|
|
EXTLIST = ['.mo', '.svg', '.png', '.css', '.html', '.js', '.chm', '.ini',
|
|
'.txt', '.rst']
|
|
if os.name == 'nt':
|
|
@@ -246,7 +142,7 @@
|
|
package_data={LIBNAME: get_package_data(LIBNAME, EXTLIST),
|
|
'spyderplugins':
|
|
get_package_data('spyderplugins', EXTLIST)},
|
|
- requires=["rope (>=0.9.2)", "sphinx (>=0.6.0)", "PyQt4 (>=4.4)"],
|
|
+ requires=["rope (>=0.9.2)", "PyQt4 (>=4.4)"],
|
|
scripts=[osp.join('scripts', fname) for fname in SCRIPTS],
|
|
data_files=get_data_files(),
|
|
options={"bdist_wininst":
|
|
@@ -267,5 +163,4 @@
|
|
'Programming Language :: Python :: 3',
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Topic :: Scientific/Engineering',
|
|
- 'Topic :: Software Development :: Widget Sets'],
|
|
- cmdclass=CMDCLASS)
|
|
+ 'Topic :: Software Development :: Widget Sets'])
|