Skip to content

Commit cf86ffd

Browse files
committed
Remove support for Python 2.7 because it is now really difficult to test with in GHA.
1 parent b3a4d1e commit cf86ffd

File tree

4 files changed

+32
-48
lines changed

4 files changed

+32
-48
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
fail-fast: false
4343

4444
matrix:
45-
python_version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
45+
python_version: ["3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
4646

4747
include:
4848
- python_version: "3.12-dev"
@@ -143,14 +143,11 @@ jobs:
143143
#os: [macos-10.15, windows-latest]
144144
#os: [macos-10.15, macOS-M1]
145145
os: [macos-11.0, windows-latest]
146-
python_version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
146+
python_version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12-dev"]
147147

148148
include:
149149
- python_version: "3.12-dev"
150150
allowed_failure: true
151-
exclude:
152-
- python_version: "2.7"
153-
os: windows-latest
154151

155152
runs-on: ${{ matrix.os }}
156153
env: { MACOSX_DEPLOYMENT_TARGET: 11.0 }

CHANGES.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ ChangeLog
66

77
* Add support for Python 3.12 by using Cython 3.0.0.
88

9+
+ Remove support for Python 2.7.
10+
911

1012
1.14 (2023-03-19)
1113
-----------------

setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@
100100
"Intended Audience :: Developers",
101101
"Operating System :: OS Independent",
102102
"Programming Language :: Python",
103-
"Programming Language :: Python :: 2",
104103
"Programming Language :: Python :: 3",
105104
"Programming Language :: Cython",
106105
"Topic :: Scientific/Engineering :: Mathematics",

src/test_fractions.py

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
44
# 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved
55
#
6-
# Based on the "test/test_fractions" module in CPython 3.4.
6+
# Based on the "test/test_fractions" module in CPython 3.4 and later.
77
# https://hg.python.org/cpython/file/b18288f24501/Lib/test/test_fractions.py
88

99
"""Tests for Lib/fractions.py, slightly adapted for quicktions."""
@@ -523,16 +523,14 @@ def testLimitDenominator(self):
523523
def testConversions(self):
524524
self.assertTypedEquals(-1, math.trunc(F(-11, 10)))
525525
self.assertTypedEquals(1, math.trunc(F(11, 10)))
526-
if sys.version_info[0] >= 3:
527-
self.assertTypedEquals(-2, math.floor(F(-11, 10)))
528-
self.assertTypedEquals(-1, math.ceil(F(-11, 10)))
529-
self.assertTypedEquals(-1, math.ceil(F(-10, 10)))
526+
self.assertTypedEquals(-2, math.floor(F(-11, 10)))
527+
self.assertTypedEquals(-1, math.ceil(F(-11, 10)))
528+
self.assertTypedEquals(-1, math.ceil(F(-10, 10)))
530529
self.assertTypedEquals(-1, int(F(-11, 10)))
531-
if sys.version_info[0] >= 3:
532-
self.assertTypedEquals(0, round(F(-1, 10)))
533-
self.assertTypedEquals(0, round(F(-5, 10)))
534-
self.assertTypedEquals(-2, round(F(-15, 10)))
535-
self.assertTypedEquals(-1, round(F(-7, 10)))
530+
self.assertTypedEquals(0, round(F(-1, 10)))
531+
self.assertTypedEquals(0, round(F(-5, 10)))
532+
self.assertTypedEquals(-2, round(F(-15, 10)))
533+
self.assertTypedEquals(-1, round(F(-7, 10)))
536534

537535
self.assertEqual(False, bool(F(0, 1)))
538536
self.assertEqual(True, bool(F(3, 2)))
@@ -627,16 +625,14 @@ def __eq__(self, other):
627625
numerator = CustomValue(0)
628626
r = F(numerator)
629627
self.assertEqual(bool(r), False)
630-
if sys.version_info >= (3,):
631-
self.assertIs(bool(r), False)
628+
self.assertIs(bool(r), False)
632629

633630
def testRound(self):
634-
if sys.version_info[0] >= 3:
635-
self.assertTypedEquals(F(-200), round(F(-150), -2))
636-
self.assertTypedEquals(F(-200), round(F(-250), -2))
637-
self.assertTypedEquals(F(30), round(F(26), -1))
638-
self.assertTypedEquals(F(-2, 10), round(F(-15, 100), 1))
639-
self.assertTypedEquals(F(-2, 10), round(F(-25, 100), 1))
631+
self.assertTypedEquals(F(-200), round(F(-150), -2))
632+
self.assertTypedEquals(F(-200), round(F(-250), -2))
633+
self.assertTypedEquals(F(30), round(F(26), -1))
634+
self.assertTypedEquals(F(-2, 10), round(F(-15, 100), 1))
635+
self.assertTypedEquals(F(-2, 10), round(F(-25, 100), 1))
640636

641637
def testArithmetic(self):
642638
self.assertEqual(F(1, 2), F(1, 10) + F(2, 5))
@@ -656,13 +652,9 @@ def testArithmetic(self):
656652
self.assertEqual(F(27, 8), F(2, 3) ** F(-3))
657653
self.assertTypedEquals(2.0, F(4) ** F(1, 2))
658654
self.assertEqual(F(1, 1), +F(1, 1))
659-
try:
660-
z = pow(F(-1), F(1, 2))
661-
except ValueError:
662-
self.assertEqual(2, sys.version_info[0])
663-
else:
664-
self.assertAlmostEqual(z.real, 0)
665-
self.assertEqual(z.imag, 1)
655+
z = pow(F(-1), F(1, 2))
656+
self.assertAlmostEqual(z.real, 0)
657+
self.assertEqual(z.imag, 1)
666658

667659
# Regression test for #27539.
668660
p = F(-1, 2) ** 0
@@ -773,13 +765,9 @@ def testMixedArithmetic(self):
773765
self.assertTypedEquals(0.1, F(1, 10) ** 1.0)
774766
self.assertTypedEquals(0.1 + 0j, F(1, 10) ** (1.0 + 0j))
775767
self.assertTypedEquals(4 , 2 ** F(2, 1))
776-
try:
777-
z = pow(-1, F(1, 2))
778-
except ValueError:
779-
self.assertEqual(2, sys.version_info[0])
780-
else:
781-
self.assertAlmostEqual(0, z.real)
782-
self.assertEqual(1, z.imag)
768+
z = pow(-1, F(1, 2))
769+
self.assertAlmostEqual(0, z.real)
770+
self.assertEqual(1, z.imag)
783771
self.assertTypedEquals(F(1, 4) , 2 ** F(-2, 1))
784772
self.assertTypedEquals(2.0 , 4 ** F(1, 2))
785773
self.assertTypedEquals(0.25, 2.0 ** F(-2, 1))
@@ -936,13 +924,12 @@ def testStringification(self):
936924
self.assertEqual("7", str(F(7, 1)))
937925

938926
def testHash(self):
939-
if sys.version_info >= (3,2):
940-
hmod = sys.hash_info.modulus
941-
hinf = sys.hash_info.inf
942-
self.assertEqual(hash(2.5), hash(F(5, 2)))
943-
self.assertEqual(hash(10**50), hash(F(10**50)))
944-
self.assertNotEqual(hash(float(10**23)), hash(F(10**23)))
945-
self.assertEqual(hinf, hash(F(1, hmod)))
927+
hmod = sys.hash_info.modulus
928+
hinf = sys.hash_info.inf
929+
self.assertEqual(hash(2.5), hash(F(5, 2)))
930+
self.assertEqual(hash(10**50), hash(F(10**50)))
931+
self.assertNotEqual(hash(float(10**23)), hash(F(10**23)))
932+
self.assertEqual(hinf, hash(F(1, hmod)))
946933
# Check that __hash__ produces the same value as hash(), for
947934
# consistency with int and Decimal. (See issue #10356.)
948935
self.assertEqual(hash(F(-1)), F(-1).__hash__())
@@ -955,9 +942,8 @@ def testHash_compare(self):
955942
self.assertEqual(hash(fractions.Fraction(10, 1)), hash(F(10, 1)))
956943
self.assertEqual(hash(fractions.Fraction(-1, 1)), hash(F(-1, 1)))
957944
self.assertEqual(hash(fractions.Fraction(-1, 10)), hash(F(-1, 10)))
958-
if sys.version_info >= (2, 7):
959-
self.assertEqual(hash(fractions.Fraction(1.2)), hash(F(1.2)))
960-
self.assertEqual(hash(fractions.Fraction(1.5)), hash(F(1.5)))
945+
self.assertEqual(hash(fractions.Fraction(1.2)), hash(F(1.2)))
946+
self.assertEqual(hash(fractions.Fraction(1.5)), hash(F(1.5)))
961947

962948
def testApproximatePi(self):
963949
# Algorithm borrowed from

0 commit comments

Comments
 (0)