Show More
@@ -17,10 +17,10 b' jobs:' | |||
|
17 | 17 | strategy: |
|
18 | 18 | matrix: |
|
19 | 19 | os: [ubuntu-latest] |
|
20 |
python-version: ["3. |
|
|
20 | python-version: ["3.10"] | |
|
21 | 21 | include: |
|
22 | 22 | - os: macos-latest |
|
23 |
python-version: "3. |
|
|
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: [ |
|
|
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. |
|
|
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.1 |
|
|
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. |
|
|
42 | python-version: "pypy-3.10" | |
|
43 | 43 | deps: test |
|
44 | 44 | - os: windows-latest |
|
45 |
python-version: "pypy-3. |
|
|
45 | python-version: "pypy-3.10" | |
|
46 | 46 | deps: test |
|
47 | 47 | - os: macos-latest |
|
48 |
python-version: "pypy-3. |
|
|
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, |
|
|
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 [ |
|
|
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 [ |
|
|
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. |
|
|
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. |
|
|
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.2 |
|
|
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, |
|
|
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