Skip to content

Commit 7c154a4

Browse files
Merge pull request #247 from fchapoton/more_ruff_fixes
a few fixes for ruff and pycodestyle warnings
2 parents 286a54b + 5e1ae66 commit 7c154a4

File tree

5 files changed

+57
-34
lines changed

5 files changed

+57
-34
lines changed

bin/bump_version.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"src/flint/test/test_all.py",
88
]
99

10+
1011
def main(version2=None, *filenames):
1112
"""Bump version number in files.
1213
@@ -40,6 +41,7 @@ def main(version2=None, *filenames):
4041
with open(filename, "w") as f:
4142
f.write(text.replace(version1, version2))
4243

44+
4345
if __name__ == "__main__":
4446
import sys
4547
main(*sys.argv[1:])

bin/rst_to_pxd.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
doc_to_header = {'flint/gr_domains': 'flint/gr'}
5757

5858

59+
5960
def get_cython_struct_types(file):
6061
"""
6162
Extract cython types from a pxd file.
@@ -77,6 +78,7 @@ def get_cython_struct_types(file):
7778
ret.append(l.split()[-1])
7879
return ret
7980

81+
8082
def fill_import_dict(pyflintlibdir):
8183
"""
8284
Get a map from cython structs to the pxd that defines them
@@ -90,6 +92,7 @@ def fill_import_dict(pyflintlibdir):
9092
for t in get_cython_struct_types(pxd):
9193
import_dict[t] = 'types.' + f.name.split('.')[0]
9294

95+
9396
def undecorate(str):
9497
"""
9598
remove variable name, const, ``*``, etc. to just get types
@@ -100,18 +103,21 @@ def undecorate(str):
100103
ret = re.sub(type_modifers, '', ret).strip()
101104
return ret
102105

106+
103107
def get_parameter_types(str):
104108
params = str[str.find("(") + 1 : str.rfind(")")].split(",")
105109
ret_type = str.split('(')[0].rsplit(' ', 1)[0]
106110
params.append(ret_type)
107111
return [undecorate(s) for s in params if s]
108112

113+
109114
def clean_types(function):
110115
ret = function.strip()
111116
for old, new in rename_types:
112117
ret = re.sub(old, new, ret)
113118
return ret
114119

120+
115121
def get_functions(file):
116122
"""
117123
Get a list of functions from an rst file
@@ -128,7 +134,7 @@ def get_functions(file):
128134

129135
m = is_func.match(line)
130136
if m:
131-
ret.append( clean_types(line[m.end():]))
137+
ret.append(clean_types(line[m.end():]))
132138
in_list = True
133139
else:
134140
if in_list:
@@ -138,6 +144,7 @@ def get_functions(file):
138144
ret.append(clean_types(line))
139145
return ret, macros
140146

147+
141148
def get_all_types(function_list):
142149
ret = set()
143150
for f in function_list:
@@ -166,16 +173,17 @@ def gen_imports(function_list):
166173
imports[import_dict[t]].append(t)
167174
else:
168175
ret.add(t)
169-
for k,v in sorted(imports.items()):
176+
for k, v in sorted(imports.items()):
170177
types = ", ".join(sorted(v))
171178
print("from flint.flintlib." + k + " cimport " + types)
172179
return sorted(ret)
173180

174181

175182

183+
176184
def generate_pxd_file(h_name, opts):
177185
fill_import_dict(opts.flint_lib_dir)
178-
l=[]
186+
l = []
179187
docdir = opts.arb_doc_dir
180188
name = h_name
181189
h_name = doc_to_header.get(h_name, h_name)
@@ -193,7 +201,7 @@ def generate_pxd_file(h_name, opts):
193201
for m in macros:
194202
print("# " + m)
195203
print()
196-
print(r'cdef extern from "' + h_name +r'.h":')
204+
print(r'cdef extern from "' + h_name + r'.h":')
197205
for f in l:
198206
if has_types(f, unknown_types):
199207
print(" # " + f)
@@ -223,4 +231,3 @@ def main(*args):
223231

224232
if __name__ == "__main__":
225233
main(*sys.argv[1:])
226-

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
compiler_directives['linetrace'] = True
6464

6565

66-
packages=[
66+
packages = [
6767
'flint',
6868
'flint.flintlib',
6969
'flint.flint_base',

src/flint/test/test_all.py

Lines changed: 41 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,8 @@ def test_fmpz():
199199
assert abs(flint.fmpz(1)) == 1
200200
assert abs(flint.fmpz(-1)) == 1
201201

202-
assert bool(flint.fmpz(0)) == False
203-
assert bool(flint.fmpz(1)) == True
202+
assert bool(flint.fmpz(0)) is False
203+
assert bool(flint.fmpz(1)) is True
204204

205205
assert flint.fmpz(2).bit_length() == 2
206206
assert flint.fmpz(-2).bit_length() == 2
@@ -432,8 +432,8 @@ def test_fmpz_poly():
432432
assert p.degree() == 1
433433
assert p.coeffs() == [3,2]
434434
assert Z([]).coeffs() == []
435-
assert bool(Z([])) == False
436-
assert bool(Z([1])) == True
435+
assert bool(Z([])) is False
436+
assert bool(Z([1])) is True
437437
ctx.pretty = False
438438
assert repr(Z([1,2])) == "fmpz_poly([1, 2])"
439439
ctx.pretty = True
@@ -536,8 +536,8 @@ def test_fmpz_mat():
536536
assert (C.nrows(),C.ncols()) == (7,2)
537537
assert A*(B*C) == (A*B)*C
538538
assert raises(lambda: A*C, ValueError)
539-
assert bool(M(2,2,[0,0,0,0])) == False
540-
assert bool(M(2,2,[0,0,0,1])) == True
539+
assert bool(M(2,2,[0,0,0,0])) is False
540+
assert bool(M(2,2,[0,0,0,1])) is True
541541
ctx.pretty = False
542542
assert repr(M(2,2,[1,2,3,4])) == 'fmpz_mat(2, 2, [1, 2, 3, 4])'
543543
ctx.pretty = True
@@ -570,8 +570,10 @@ def test_fmpz_mat():
570570
assert (D[0,0],D[0,1],D[1,0],D[1,1]) == (1,2,3,4)
571571
D[0,0] = 3
572572
assert D == M([[3,2],[3,4]])
573+
573574
def set_bad(i,j):
574575
D[i,j] = -1
576+
575577
# XXX: Should be IndexError
576578
raises(lambda: set_bad(2,0), IndexError)
577579
raises(lambda: set_bad(0,2), IndexError)
@@ -689,8 +691,10 @@ def test_fmpz_series():
689691
s5[2] = -1
690692
assert s5[2] == -1
691693
assert s5._equal_repr(Z([1,2,-1]))
694+
692695
def set_bad():
693696
s5[-1] = 3
697+
694698
assert raises(set_bad, ValueError)
695699
assert Z([1,2,0,4]).str() == "1 + 2*x + 4*x^3 + O(x^10)"
696700
assert Z([1,2,0,4]).repr() == "fmpz_series([1, 2, 0, 4], prec=10)"
@@ -764,8 +768,8 @@ def test_fmpq():
764768
assert raises(lambda: Q([]), TypeError)
765769
assert raises(lambda: Q(1, []), TypeError)
766770
assert raises(lambda: Q([], 1), TypeError)
767-
assert bool(Q(0)) == False
768-
assert bool(Q(1)) == True
771+
assert bool(Q(0)) is False
772+
assert bool(Q(1)) is True
769773
assert Q(1,3) + Q(2,3) == 1
770774
assert Q(1,3) - Q(2,3) == Q(-1,3)
771775
assert Q(1,3) * Q(2,3) == Q(2,9)
@@ -926,8 +930,8 @@ def test_fmpq_poly():
926930
assert raises(lambda: Q({}), TypeError)
927931
assert raises(lambda: Q([1], []), TypeError)
928932
assert raises(lambda: Q([1], 0), ZeroDivisionError)
929-
assert bool(Q()) == False
930-
assert bool(Q([1])) == True
933+
assert bool(Q()) is False
934+
assert bool(Q([1])) is True
931935
assert Q(Q([1,2])) == Q([1,2])
932936
assert Q(Z([1,2])) == Q([1,2])
933937
assert Q([1,2]) + 3 == Q([4,2])
@@ -992,8 +996,10 @@ def test_fmpq_poly():
992996
assert a[2] == flint.fmpq(3,4)
993997
assert a[-1] == flint.fmpq(0)
994998
a[2] = 4
999+
9951000
def set_bad():
9961001
a[-1] = 2
1002+
9971003
assert raises(set_bad, ValueError)
9981004
assert a == Q([1,1,8],2)
9991005
p = Q([3,4,5],7)
@@ -1080,8 +1086,10 @@ def test_fmpq_mat():
10801086
M[0,1] = -1
10811087
assert M[0,1] == -1
10821088
# XXX: Negative indices should probably be allowed
1089+
10831090
def set_bad(i):
10841091
M[i,0] = -1
1092+
10851093
raises(lambda: M[-1,0], IndexError)
10861094
raises(lambda: M[0,-1], IndexError)
10871095
raises(lambda: set_bad(-1), IndexError)
@@ -1185,8 +1193,10 @@ def test_fmpq_series():
11851193
s5[2] = -1
11861194
assert s5[2] == -1
11871195
assert s5._equal_repr(Q([1,2,-1]))
1196+
11881197
def set_bad():
11891198
s5[-1] = 3
1199+
11901200
assert raises(set_bad, ValueError)
11911201
assert Q([1,2,1]).coeffs() == list(Q([1,2,1])) == [1,2,1]
11921202
assert Q([1,2,1],2).coeffs() == [flint.fmpq(1,2),1,flint.fmpq(1,2)]
@@ -1244,17 +1254,17 @@ def set_bad():
12441254
assert Q([0,1,2]).reversion()._equal_repr(Q(coeffs))
12451255
# power series reversion must have valuation 1
12461256
assert raises(lambda: Q([1,1]).reversion(), ValueError)
1247-
assert Q([0,2,1]).reversion()._equal_repr( \
1257+
assert Q([0,2,1]).reversion()._equal_repr(
12481258
Q([0,32768,-8192,4096,-2560,1792,-1344,1056,-858,715],65536,10))
12491259
x = Q([0,1])
12501260
expx = x.exp()
12511261
assert (expx)._equal_repr(Q([362880,362880,181440,60480,15120,3024,504,72,9,1],362880))
12521262
assert (expx.inv())._equal_repr(Q([362880,-362880,181440,-60480,15120,-3024,504,-72,9,-1], 362880))
12531263
assert (expx.derivative())._equal_repr(Q([40320,40320,20160,6720,1680,336,56,8,1],40320,prec=9))
12541264
assert (Q([1,1]).integral())._equal_repr(Q([0,2,1],2))
1255-
assert (expx.sqrt())._equal_repr(\
1265+
assert (expx.sqrt())._equal_repr(
12561266
Q([185794560,92897280,23224320,3870720,483840,48384,4032,288,18,1],185794560))
1257-
assert (expx.rsqrt())._equal_repr(\
1267+
assert (expx.rsqrt())._equal_repr(
12581268
Q([185794560,-92897280,23224320,-3870720,483840,-48384,4032,-288,18,-1],185794560))
12591269
assert (expx.log())._equal_repr(x)
12601270
zero = Q()
@@ -1444,10 +1454,13 @@ def test_nmod_poly():
14441454
assert p2 == P([3,2,5],17)
14451455
p2[1] = 6
14461456
assert p2 == P([3,6,5],17)
1457+
14471458
def set_bad1():
14481459
p2[-1] = 3
1460+
14491461
def set_bad2():
14501462
p2[2] = []
1463+
14511464
assert raises(set_bad1, ValueError)
14521465
assert raises(set_bad2, TypeError)
14531466
assert bool(P([], 5)) is False
@@ -1499,8 +1512,8 @@ def test_nmod_mat():
14991512
B = M(3,7,Z.randtest(3,7,5).entries(),17)
15001513
C = M(7,2,Z.randtest(7,2,5).entries(),17)
15011514
assert A*(B*C) == (A*B)*C
1502-
assert bool(M(2,2,[0,0,0,0],17)) == False
1503-
assert bool(M(2,2,[0,0,0,1],17)) == True
1515+
assert bool(M(2,2,[0,0,0,0],17)) is False
1516+
assert bool(M(2,2,[0,0,0,1],17)) is True
15041517
pretty = ctx.pretty
15051518
try:
15061519
ctx.pretty = False
@@ -1535,8 +1548,10 @@ def test_nmod_mat():
15351548
M3_copy = M(M3)
15361549
M3[0,1] = -1
15371550
assert M3[0,1] == G(-1,17)
1551+
15381552
def set_bad(i,j):
15391553
M3[i,j] = 2
1554+
15401555
# XXX: negative indices should be allowed
15411556
assert raises(lambda: M3[-1,0], IndexError)
15421557
assert raises(lambda: M3[0,-1], IndexError)
@@ -1546,8 +1561,10 @@ def set_bad(i,j):
15461561
assert raises(lambda: M3[0,2], IndexError)
15471562
assert raises(lambda: set_bad(2,0), IndexError)
15481563
assert raises(lambda: set_bad(0,2), IndexError)
1564+
15491565
def set_bad2():
15501566
M3[0,0] = 1.5
1567+
15511568
assert raises(set_bad2, TypeError)
15521569
assert raises(lambda: M3 + [], TypeError)
15531570
assert raises(lambda: M3 - [], TypeError)
@@ -1632,7 +1649,6 @@ def test_fmpz_mod():
16321649
assert F_big.is_prime() is True
16331650
assert F_cmp.is_prime() is False
16341651

1635-
16361652
# Context tests
16371653
assert raises(lambda: fmpz_mod_ctx("AAA"), TypeError)
16381654
assert raises(lambda: fmpz_mod_ctx(-1), ValueError)
@@ -1745,7 +1761,6 @@ def test_fmpz_mod():
17451761
assert raises(lambda: F_test(test_x) - "AAA", TypeError)
17461762
assert raises(lambda: "AAA" - F_test(test_x), TypeError)
17471763

1748-
17491764
# Multiplication
17501765

17511766
assert F_test(test_x) * F_test(test_y) == (test_x * test_y) % test_mod
@@ -1913,7 +1928,6 @@ def test_fmpz_mod_poly():
19131928
assert raises(lambda: R1.random_element(monic="A"), ValueError)
19141929
assert raises(lambda: R1.random_element(irreducible="A"), ValueError)
19151930

1916-
19171931
# Conversion tests
19181932
F = fmpz_mod_ctx(11)
19191933
F_other = fmpz_mod_ctx(10)
@@ -1969,7 +1983,6 @@ def test_fmpz_mod_poly():
19691983
assert raises(lambda: f.__setitem__(-1, 1), ValueError)
19701984
assert raises(lambda: f.__setitem__(1, "A"), TypeError)
19711985

1972-
19731986
# Comparisons
19741987
f1 = R([1,2,3])
19751988
f2 = R([12,13,14])
@@ -2077,19 +2090,19 @@ def test_fmpz_mod_poly():
20772090
assert raises(lambda: f / 0, ZeroDivisionError)
20782091
assert raises(lambda: f_cmp / 2, DomainError)
20792092

2080-
assert (f + f) / 2 == f
2081-
assert (f + f) / fmpz(2) == f
2082-
assert (f + f) / F_test(2) == f
2093+
assert (f + f) / 2 == f
2094+
assert (f + f) / fmpz(2) == f
2095+
assert (f + f) / F_test(2) == f
20832096

20842097
# floor div
20852098
assert raises(lambda: 1 // f_bad, DomainError)
20862099
assert raises(lambda: f // f_cmp, ValueError)
20872100
assert raises(lambda: f // "AAA", TypeError)
20882101
assert raises(lambda: "AAA" // f, TypeError)
20892102
assert (f * g) // g == f
2090-
assert (f + f) // 2 == f
2091-
assert (f + f) // fmpz(2) == f
2092-
assert (f + f) // F_test(2) == f
2103+
assert (f + f) // 2 == f
2104+
assert (f + f) // fmpz(2) == f
2105+
assert (f + f) // F_test(2) == f
20932106
assert 2 // R_test(2) == 1
20942107
assert (f + 1) // f == 1
20952108

@@ -2232,7 +2245,6 @@ def test_fmpz_mod_poly():
22322245
assert raises(lambda: R_test([0,0,1]).real_roots(), DomainError)
22332246
assert raises(lambda: R_test([0,0,1]).complex_roots(), DomainError)
22342247

2235-
22362248
# composite moduli not supported
22372249
assert raises(lambda: R_cmp([0,0,1]).factor(), DomainError)
22382250
assert raises(lambda: R_cmp([0,0,1]).factor_squarefree(), DomainError)
@@ -2308,7 +2320,7 @@ def test_fmpz_mod_mat():
23082320
assert M.nrows() == 3
23092321
assert M.ncols() == 3
23102322
assert M.entries() == [flint.fmpz_mod(i, c11) for i in [1,2,3,4,5,6,7,8,9]]
2311-
assert type(M[0,0]) == flint.fmpz_mod
2323+
assert isinstance(M[0,0], flint.fmpz_mod)
23122324
assert M[0,0] == 1
23132325
assert raises(lambda: flint.fmpz_mod_mat([[1]]), TypeError)
23142326
assert raises(lambda: flint.fmpz_mod_mat([[1,2],[3,4]], c11, c11), TypeError)
@@ -4317,7 +4329,7 @@ def test_fq_default():
43174329
assert raises(lambda: gf.zero() > gf.zero(), TypeError)
43184330
assert raises(lambda: gf.zero() >= gf.zero(), TypeError)
43194331
assert raises(lambda: gf.zero() < gf.zero(), TypeError)
4320-
assert raises(lambda: gf.zero() <= gf.zero(), TypeError)
4332+
assert raises(lambda: gf.zero() <= gf.zero(), TypeError)
43214333

43224334
assert gf.zero().is_zero() is True
43234335
assert gf.one().is_zero() is False
@@ -4543,6 +4555,7 @@ def test_fq_default_poly():
45434555

45444556
assert raises(lambda: f.pow_trunc(-1, 5), ValueError)
45454557

4558+
45464559
def test_all_tests():
45474560
test_funcs = {f for name, f in globals().items() if name.startswith("test_")}
45484561
untested = test_funcs - set(all_tests)

src/flint/utils/flint_exceptions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ class FlintError(Exception):
22
"""Generic parent class for all flint relation exceptions."""
33
pass
44

5+
56
class DomainError(FlintError):
67
"""
78
Exception intended to be called when a method is called on a

0 commit comments

Comments
 (0)