##// END OF EJS Templates
Drop Python 3.9...
Matthias Bussonnier -
Show More
@@ -17,10 +17,10 b' jobs:'
17 17 strategy:
18 18 matrix:
19 19 os: [ubuntu-latest]
20 python-version: ["3.9"]
20 python-version: ["3.10"]
21 21 include:
22 22 - os: macos-latest
23 python-version: "3.9"
23 python-version: "3.10"
24 24
25 25 steps:
26 26 - uses: actions/checkout@v3
@@ -19,12 +19,12 b' jobs:'
19 19 fail-fast: false
20 20 matrix:
21 21 os: [ubuntu-latest, windows-latest]
22 python-version: ["3.9", "3.10", "3.11"]
22 python-version: ["3.10", "3.11", "3.12"]
23 23 deps: [test_extra]
24 24 # Test all on ubuntu, test ends on macos
25 25 include:
26 26 - os: macos-latest
27 python-version: "3.9"
27 python-version: "3.10"
28 28 deps: test_extra
29 29 - os: macos-latest
30 30 python-version: "3.11"
@@ -35,17 +35,17 b' jobs:'
35 35 deps: test
36 36 # Tests latest development Python version
37 37 - os: ubuntu-latest
38 python-version: "3.12-dev"
38 python-version: "3.13-dev"
39 39 deps: test
40 40 # Installing optional dependencies stuff takes ages on PyPy
41 41 - os: ubuntu-latest
42 python-version: "pypy-3.9"
42 python-version: "pypy-3.10"
43 43 deps: test
44 44 - os: windows-latest
45 python-version: "pypy-3.9"
45 python-version: "pypy-3.10"
46 46 deps: test
47 47 - os: macos-latest
48 python-version: "pypy-3.9"
48 python-version: "pypy-3.10"
49 49 deps: test
50 50
51 51 steps:
@@ -26,9 +26,10 b' import sys'
26 26 #-----------------------------------------------------------------------------
27 27
28 28 # Don't forget to also update setup.py when this changes!
29 if sys.version_info < (3, 9):
29 if sys.version_info < (3, 10):
30 30 raise ImportError(
31 31 """
32 IPython 8.19+ supports Python 3.10 and above, following SPEC0.
32 33 IPython 8.13+ supports Python 3.9 and above, following NEP 29.
33 34 IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
34 35 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
@@ -28,10 +28,7 b' import warnings'
28 28
29 29 from typing import Any, Optional, Dict, Union, List, Tuple
30 30
31 if sys.version_info <= (3, 10):
32 from typing_extensions import TypeAlias
33 else:
34 from typing import TypeAlias
31 from typing import TypeAlias
35 32
36 33 # IPython's own
37 34 from IPython.core import page
@@ -3,13 +3,15 b' Test for async helpers.'
3 3
4 4 Should only trigger on python 3.5+ or will have syntax errors.
5 5 """
6 import platform
7 6 from itertools import chain, repeat
8 7 from textwrap import dedent, indent
8 from typing import TYPE_CHECKING
9 9 from unittest import TestCase
10
11 import pytest
12
13 from IPython.core.async_helpers import _should_be_async
10 14 from IPython.testing.decorators import skip_without
11 import sys
12 from typing import TYPE_CHECKING
13 15
14 16 if TYPE_CHECKING:
15 17 from IPython import get_ipython
@@ -17,10 +19,13 b' if TYPE_CHECKING:'
17 19 ip = get_ipython()
18 20
19 21
20 iprc = lambda x: ip.run_cell(dedent(x)).raise_error()
21 iprc_nr = lambda x: ip.run_cell(dedent(x))
22 def iprc(x):
23 return ip.run_cell(dedent(x)).raise_error()
24
25
26 def iprc_nr(x):
27 return ip.run_cell(dedent(x))
22 28
23 from IPython.core.async_helpers import _should_be_async
24 29
25 30 class AsyncTest(TestCase):
26 31 def test_should_be_async(self):
@@ -283,7 +288,11 b' class AsyncTest(TestCase):'
283 288
284 289 iprc("(" * 200 + ")" * 200)
285 290
286 @skip_without('curio')
291 @pytest.mark.xfail(reason="fail on curio 1.6 and before on Python 3.12")
292 @pytest.mark.skip(
293 reason="skip_without(curio) fails on 3.12 for now even with other skip so must uncond skip"
294 )
295 # @skip_without("curio")
287 296 def test_autoawait_curio(self):
288 297 iprc("%autoawait curio")
289 298
@@ -322,7 +322,7 b' class InputSplitterTestCase(unittest.TestCase):'
322 322
323 323 @pytest.mark.xfail(
324 324 reason="Bug in python 3.9.8 – bpo 45738",
325 condition=sys.version_info in [(3, 9, 8, "final", 0), (3, 11, 0, "alpha", 2)],
325 condition=sys.version_info in [(3, 11, 0, "alpha", 2)],
326 326 raises=SystemError,
327 327 strict=True,
328 328 )
@@ -319,8 +319,7 b' examples = ['
319 319 None,
320 320 marks=pytest.mark.xfail(
321 321 reason="Bug in python 3.9.8 – bpo 45738",
322 condition=sys.version_info
323 in [(3, 9, 8, "final", 0), (3, 11, 0, "alpha", 2)],
322 condition=sys.version_info in [(3, 11, 0, "alpha", 2)],
324 323 raises=SystemError,
325 324 strict=True,
326 325 ),
@@ -338,7 +337,7 b' def test_check_complete_param(code, expected, number):'
338 337 @pytest.mark.xfail(platform.python_implementation() == "PyPy", reason="fail on pypy")
339 338 @pytest.mark.xfail(
340 339 reason="Bug in python 3.9.8 – bpo 45738",
341 condition=sys.version_info in [(3, 9, 8, "final", 0), (3, 11, 0, "alpha", 2)],
340 condition=sys.version_info in [(3, 11, 0, "alpha", 2)],
342 341 raises=SystemError,
343 342 strict=True,
344 343 )
@@ -64,7 +64,7 b' def test_inspect_getfile_raises_exception():'
64 64 """Check oinspect.find_file/getsource/find_source_lines expectations"""
65 65 with pytest.raises(TypeError):
66 66 inspect.getfile(type)
67 with pytest.raises(OSError if sys.version_info >= (3, 10) else TypeError):
67 with pytest.raises(OSError):
68 68 inspect.getfile(SourceModuleMainTest)
69 69
70 70
@@ -140,7 +140,7 b' def test_pprint_heap_allocated_type():'
140 140 """
141 141 Test that pprint works for heap allocated types.
142 142 """
143 module_name = "xxlimited" if sys.version_info < (3, 10) else "xxlimited_35"
143 module_name = "xxlimited_35"
144 144 expected_output = (
145 145 "xxlimited.Null" if sys.version_info < (3, 10, 6) else "xxlimited_35.Null"
146 146 )
@@ -3,7 +3,7 b' requires = ["setuptools >= 51.0.0"]'
3 3 build-backend = "setuptools.build_meta"
4 4
5 5 [tool.mypy]
6 python_version = 3.9
6 python_version = 3.10
7 7 ignore_missing_imports = true
8 8 follow_imports = 'silent'
9 9 exclude = [
@@ -26,7 +26,7 b' classifiers ='
26 26
27 27 [options]
28 28 packages = find:
29 python_requires = >=3.9
29 python_requires = >=3.10
30 30 zip_safe = False
31 31 install_requires =
32 32 colorama; sys_platform == "win32"
@@ -80,7 +80,7 b' test_extra ='
80 80 curio
81 81 matplotlib!=3.2.0
82 82 nbformat
83 numpy>=1.22
83 numpy>=1.23
84 84 pandas
85 85 trio
86 86 all =
@@ -23,7 +23,7 b' import sys'
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 if sys.version_info < (3, 9):
26 if sys.version_info < (3, 10):
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
@@ -39,6 +39,7 b' if sys.version_info < (3, 9):'
39 39
40 40
41 41 error = """
42 IPython 8.19+ supports Python 3.10 and above, following SPEC0
42 43 IPython 8.13+ supports Python 3.9 and above, following NEP 29.
43 44 IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
44 45 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
General Comments 0
You need to be logged in to leave comments. Login now