##// END OF EJS Templates
Merge remote-tracking branch 'upstream/main' into gh-13845-fix-pygments-entry-points
Nicholas Bollweg -
r27909:017b677e merge
parent child Browse files
Show More
@@ -0,0 +1,26 b''
1 from typing import List
2
3 import pytest
4 import pygments.lexers
5 import pygments.lexer
6
7 from IPython.lib.lexers import IPythonConsoleLexer, IPythonLexer, IPython3Lexer
8
9 #: the human-readable names of the IPython lexers with ``entry_points``
10 EXPECTED_LEXER_NAMES = [
11 cls.name for cls in [IPythonConsoleLexer, IPythonLexer, IPython3Lexer]
12 ]
13
14
15 @pytest.fixture
16 def all_pygments_lexer_names() -> List[str]:
17 """Get all lexer names registered in pygments."""
18 return {l[0] for l in pygments.lexers.get_all_lexers()}
19
20
21 @pytest.mark.parametrize("expected_lexer", EXPECTED_LEXER_NAMES)
22 def test_pygments_entry_points(
23 expected_lexer: str, all_pygments_lexer_names: List[str]
24 ) -> None:
25 """Check whether the ``entry_points`` for ``pygments.lexers`` are correct."""
26 assert expected_lexer in all_pygments_lexer_names
@@ -1,54 +1,54 b''
1 1 # -*- coding: utf-8 -*-
2 2 """Release data for the IPython project."""
3 3
4 4 #-----------------------------------------------------------------------------
5 5 # Copyright (c) 2008, IPython Development Team.
6 6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
7 7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
8 8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
9 9 #
10 10 # Distributed under the terms of the Modified BSD License.
11 11 #
12 12 # The full license is in the file COPYING.txt, distributed with this software.
13 13 #-----------------------------------------------------------------------------
14 14
15 15 # IPython version information. An empty _version_extra corresponds to a full
16 16 # release. 'dev' as a _version_extra string means this is a development
17 17 # version
18 18 _version_major = 8
19 _version_minor = 7
19 _version_minor = 8
20 20 _version_patch = 0
21 21 _version_extra = ".dev"
22 22 # _version_extra = "rc1"
23 _version_extra = "" # Uncomment this for full releases
23 # _version_extra = "" # Uncomment this for full releases
24 24
25 25 # Construct full version string from these.
26 26 _ver = [_version_major, _version_minor, _version_patch]
27 27
28 28 __version__ = '.'.join(map(str, _ver))
29 29 if _version_extra:
30 30 __version__ = __version__ + _version_extra
31 31
32 32 version = __version__ # backwards compatibility name
33 33 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
34 34
35 35 # Change this when incrementing the kernel protocol version
36 36 kernel_protocol_version_info = (5, 0)
37 37 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
38 38
39 39 license = "BSD-3-Clause"
40 40
41 41 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
42 42 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
43 43 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
44 44 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
45 45 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
46 46 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
47 47 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
48 48 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
49 49 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
50 50 }
51 51
52 52 author = 'The IPython Development Team'
53 53
54 54 author_email = 'ipython-dev@python.org'
@@ -1,157 +1,157 b''
1 1 # -*- coding: utf-8 -*-
2 2 """Setup script for IPython.
3 3
4 4 Under Posix environments it works like a typical setup.py script.
5 5 Under Windows, the command sdist is not supported, since IPython
6 6 requires utilities which are not available under Windows."""
7 7
8 8 #-----------------------------------------------------------------------------
9 9 # Copyright (c) 2008-2011, IPython Development Team.
10 10 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
11 11 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
12 12 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
13 13 #
14 14 # Distributed under the terms of the Modified BSD License.
15 15 #
16 16 # The full license is in the file COPYING.rst, distributed with this software.
17 17 #-----------------------------------------------------------------------------
18 18
19 19 import os
20 20 import sys
21 21
22 22 # **Python version check**
23 23 #
24 24 # This check is also made in IPython/__init__, don't forget to update both when
25 25 # changing Python version requirements.
26 26 if sys.version_info < (3, 8):
27 27 pip_message = 'This may be due to an out of date pip. Make sure you have pip >= 9.0.1.'
28 28 try:
29 29 import pip
30 30 pip_version = tuple([int(x) for x in pip.__version__.split('.')[:3]])
31 31 if pip_version < (9, 0, 1) :
32 32 pip_message = 'Your pip version is out of date, please install pip >= 9.0.1. '\
33 33 'pip {} detected.'.format(pip.__version__)
34 34 else:
35 35 # pip is new enough - it must be something else
36 36 pip_message = ''
37 37 except Exception:
38 38 pass
39 39
40 40
41 41 error = """
42 42 IPython 8+ supports Python 3.8 and above, following NEP 29.
43 43 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
44 44 Python 3.3 and 3.4 were supported up to IPython 6.x.
45 45 Python 3.5 was supported with IPython 7.0 to 7.9.
46 46 Python 3.6 was supported with IPython up to 7.16.
47 47 Python 3.7 was still supported with the 7.x branch.
48 48
49 49 See IPython `README.rst` file for more information:
50 50
51 51 https://github.com/ipython/ipython/blob/main/README.rst
52 52
53 53 Python {py} detected.
54 54 {pip}
55 55 """.format(
56 56 py=sys.version_info, pip=pip_message
57 57 )
58 58
59 59 print(error, file=sys.stderr)
60 60 sys.exit(1)
61 61
62 62 # At least we're on the python version we need, move on.
63 63
64 64 from setuptools import setup
65 65
66 66 # Our own imports
67 67 sys.path.insert(0, ".")
68 68
69 69 from setupbase import target_update, find_entry_points
70 70
71 71 from setupbase import (
72 72 setup_args,
73 73 check_package_data_first,
74 74 find_data_files,
75 75 git_prebuild,
76 76 install_symlinked,
77 77 install_lib_symlink,
78 78 install_scripts_for_symlink,
79 79 unsymlink,
80 80 )
81 81
82 82 #-------------------------------------------------------------------------------
83 83 # Handle OS specific things
84 84 #-------------------------------------------------------------------------------
85 85
86 86 if os.name in ('nt','dos'):
87 87 os_name = 'windows'
88 88 else:
89 89 os_name = os.name
90 90
91 91 # Under Windows, 'sdist' has not been supported. Now that the docs build with
92 92 # Sphinx it might work, but let's not turn it on until someone confirms that it
93 93 # actually works.
94 94 if os_name == 'windows' and 'sdist' in sys.argv:
95 95 print('The sdist command is not available under Windows. Exiting.')
96 96 sys.exit(1)
97 97
98 98
99 99 #-------------------------------------------------------------------------------
100 100 # Things related to the IPython documentation
101 101 #-------------------------------------------------------------------------------
102 102
103 103 # update the manuals when building a source dist
104 104 if len(sys.argv) >= 2 and sys.argv[1] in ('sdist','bdist_rpm'):
105 105
106 106 # List of things to be updated. Each entry is a triplet of args for
107 107 # target_update()
108 108 to_update = [
109 109 (
110 110 "docs/man/ipython.1.gz",
111 111 ["docs/man/ipython.1"],
112 112 "cd docs/man && python -m gzip --best ipython.1",
113 113 ),
114 114 ]
115 115
116 116
117 117 [ target_update(*t) for t in to_update ]
118 118
119 119 #---------------------------------------------------------------------------
120 120 # Find all the packages, package data, and data_files
121 121 #---------------------------------------------------------------------------
122 122
123 123 data_files = find_data_files()
124 124
125 125 setup_args['data_files'] = data_files
126 126
127 127 #---------------------------------------------------------------------------
128 128 # custom distutils commands
129 129 #---------------------------------------------------------------------------
130 130 # imports here, so they are after setuptools import if there was one
131 131 from setuptools.command.sdist import sdist
132 132
133 133 setup_args['cmdclass'] = {
134 134 'build_py': \
135 135 check_package_data_first(git_prebuild('IPython')),
136 136 'sdist' : git_prebuild('IPython', sdist),
137 137 'symlink': install_symlinked,
138 138 'install_lib_symlink': install_lib_symlink,
139 139 'install_scripts_sym': install_scripts_for_symlink,
140 140 'unsymlink': unsymlink,
141 141 }
142 142
143 143 setup_args["entry_points"] = {
144 144 "console_scripts": find_entry_points(),
145 145 "pygments.lexers": [
146 146 "ipythonconsole = IPython.lib.lexers:IPythonConsoleLexer",
147 147 "ipython = IPython.lib.lexers:IPythonLexer",
148 148 "ipython3 = IPython.lib.lexers:IPython3Lexer",
149 ]
149 ],
150 150 }
151 151
152 152 #---------------------------------------------------------------------------
153 153 # Do the actual setup now
154 154 #---------------------------------------------------------------------------
155 155
156 156 if __name__ == "__main__":
157 157 setup(**setup_args)
General Comments 0
You need to be logged in to leave comments. Login now