##// END OF EJS Templates
Remove obsolete setuptools_extra_args
James Morris -
Show More
@@ -1,197 +1,189 b''
1 1 #!/usr/bin/env python3
2 2 # -*- coding: utf-8 -*-
3 3 """Setup script for IPython.
4 4
5 5 Under Posix environments it works like a typical setup.py script.
6 6 Under Windows, the command sdist is not supported, since IPython
7 7 requires utilities which are not available under Windows."""
8 8
9 9 #-----------------------------------------------------------------------------
10 10 # Copyright (c) 2008-2011, IPython Development Team.
11 11 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
12 12 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
13 13 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
14 14 #
15 15 # Distributed under the terms of the Modified BSD License.
16 16 #
17 17 # The full license is in the file COPYING.rst, distributed with this software.
18 18 #-----------------------------------------------------------------------------
19 19
20 20 import os
21 21 import sys
22 22
23 23 # **Python version check**
24 24 #
25 25 # This check is also made in IPython/__init__, don't forget to update both when
26 26 # changing Python version requirements.
27 27 if sys.version_info < (3, 8):
28 28 pip_message = 'This may be due to an out of date pip. Make sure you have pip >= 9.0.1.'
29 29 try:
30 30 import pip
31 31 pip_version = tuple([int(x) for x in pip.__version__.split('.')[:3]])
32 32 if pip_version < (9, 0, 1) :
33 33 pip_message = 'Your pip version is out of date, please install pip >= 9.0.1. '\
34 34 'pip {} detected.'.format(pip.__version__)
35 35 else:
36 36 # pip is new enough - it must be something else
37 37 pip_message = ''
38 38 except Exception:
39 39 pass
40 40
41 41
42 42 error = """
43 43 IPython 8+ supports Python 3.8 and above, following NEP 29.
44 44 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
45 45 Python 3.3 and 3.4 were supported up to IPython 6.x.
46 46 Python 3.5 was supported with IPython 7.0 to 7.9.
47 47 Python 3.6 was supported with IPython up to 7.16.
48 48 Python 3.7 was still supported with the 7.x branch.
49 49
50 50 See IPython `README.rst` file for more information:
51 51
52 52 https://github.com/ipython/ipython/blob/master/README.rst
53 53
54 54 Python {py} detected.
55 55 {pip}
56 56 """.format(py=sys.version_info, pip=pip_message )
57 57
58 58 print(error, file=sys.stderr)
59 59 sys.exit(1)
60 60
61 61 # At least we're on the python version we need, move on.
62 62
63 63 from setuptools import setup
64 64
65 65 # Our own imports
66 66 from setupbase import target_update
67 67
68 68 from setupbase import (
69 69 setup_args,
70 70 check_package_data_first,
71 71 find_data_files,
72 72 git_prebuild,
73 73 install_symlinked,
74 74 install_lib_symlink,
75 75 install_scripts_for_symlink,
76 76 unsymlink,
77 77 )
78 78
79 79 #-------------------------------------------------------------------------------
80 80 # Handle OS specific things
81 81 #-------------------------------------------------------------------------------
82 82
83 83 if os.name in ('nt','dos'):
84 84 os_name = 'windows'
85 85 else:
86 86 os_name = os.name
87 87
88 88 # Under Windows, 'sdist' has not been supported. Now that the docs build with
89 89 # Sphinx it might work, but let's not turn it on until someone confirms that it
90 90 # actually works.
91 91 if os_name == 'windows' and 'sdist' in sys.argv:
92 92 print('The sdist command is not available under Windows. Exiting.')
93 93 sys.exit(1)
94 94
95 95
96 96 #-------------------------------------------------------------------------------
97 97 # Things related to the IPython documentation
98 98 #-------------------------------------------------------------------------------
99 99
100 100 # update the manuals when building a source dist
101 101 if len(sys.argv) >= 2 and sys.argv[1] in ('sdist','bdist_rpm'):
102 102
103 103 # List of things to be updated. Each entry is a triplet of args for
104 104 # target_update()
105 105 to_update = [
106 106 ('docs/man/ipython.1.gz',
107 107 ['docs/man/ipython.1'],
108 108 'cd docs/man && gzip -9c ipython.1 > ipython.1.gz'),
109 109 ]
110 110
111 111
112 112 [ target_update(*t) for t in to_update ]
113 113
114 114 #---------------------------------------------------------------------------
115 115 # Find all the packages, package data, and data_files
116 116 #---------------------------------------------------------------------------
117 117
118 118 data_files = find_data_files()
119 119
120 120 setup_args['data_files'] = data_files
121 121
122 122 #---------------------------------------------------------------------------
123 123 # custom distutils commands
124 124 #---------------------------------------------------------------------------
125 125 # imports here, so they are after setuptools import if there was one
126 126 from setuptools.command.sdist import sdist
127 127
128 128 setup_args['cmdclass'] = {
129 129 'build_py': \
130 130 check_package_data_first(git_prebuild('IPython')),
131 131 'sdist' : git_prebuild('IPython', sdist),
132 132 'symlink': install_symlinked,
133 133 'install_lib_symlink': install_lib_symlink,
134 134 'install_scripts_sym': install_scripts_for_symlink,
135 135 'unsymlink': unsymlink,
136 136 }
137 137
138 138
139 139 #---------------------------------------------------------------------------
140 140 # Handle scripts, dependencies, and setuptools specific things
141 141 #---------------------------------------------------------------------------
142 142
143 # This dict is used for passing extra arguments that are setuptools
144 # specific to setup
145 setuptools_extra_args = {}
146
147 143 # setuptools requirements
148 144
149 145 extras_require = dict(
150 146 parallel=["ipyparallel"],
151 147 qtconsole=["qtconsole"],
152 148 doc=["Sphinx>=1.3"],
153 149 test=[
154 150 "pytest",
155 151 "testpath",
156 152 "pygments",
157 153 ],
158 154 test_extra=[
159 155 "pytest",
160 156 "testpath",
161 157 "curio",
162 158 "matplotlib!=3.2.0",
163 159 "nbformat",
164 160 "numpy>=1.17",
165 161 "pandas",
166 162 "pygments",
167 163 "trio",
168 164 ],
169 165 terminal=[],
170 166 kernel=["ipykernel"],
171 167 nbformat=["nbformat"],
172 168 notebook=["notebook", "ipywidgets"],
173 169 nbconvert=["nbconvert"],
174 170 )
175 171
176 172
177 173 everything = set()
178 174 for key, deps in extras_require.items():
179 175 if ':' not in key:
180 176 everything.update(deps)
181 177 extras_require['all'] = list(sorted(everything))
182 178
183 179 setup_args["extras_require"] = extras_require
184 180
185 181 #---------------------------------------------------------------------------
186 182 # Do the actual setup now
187 183 #---------------------------------------------------------------------------
188 184
189 setup_args.update(setuptools_extra_args)
190
191
192
193 185 def main():
194 186 setup(**setup_args)
195 187
196 188 if __name__ == '__main__':
197 189 main()
General Comments 0
You need to be logged in to leave comments. Login now