Skip to content

Commit aa240d3

Browse files
committed
Use ruff instead of flake8 and isort
1 parent 33501f0 commit aa240d3

15 files changed

+34
-28
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,4 @@ jobs:
4040
env:
4141
DYLD_FALLBACK_LIBRARY_PATH: /opt/homebrew/lib
4242
- name: Check coding style
43-
run: python -m flake8
44-
- name: Check imports order
45-
run: python -m isort . --check --diff
43+
run: python -m ruff check

cairocffi/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def dlopen(ffi, library_names, filenames):
4141
for library_name in library_names:
4242
library_filename = find_library(library_name)
4343
if library_filename:
44-
filenames = (library_filename,) + filenames
44+
filenames = (library_filename, *filenames)
4545
else:
4646
exceptions.append(
4747
'no library called "{}" was found'.format(library_name))
@@ -62,7 +62,7 @@ def dlopen(ffi, library_names, filenames):
6262
('libcairo.so.2', 'libcairo.2.dylib', 'libcairo-2.dll'))
6363

6464

65-
class _keepref(object):
65+
class _keepref(object): # noqa: N801
6666
"""Function wrapper that keeps a reference to another object."""
6767
def __init__(self, ref, func):
6868
self.ref = ref

cairocffi/matrix.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def __ne__(self, other):
8888
def __repr__(self):
8989
class_ = type(self)
9090
return '%s(%g, %g, %g, %g, %g, %g)' % (
91-
(class_.__name__,) + self.as_tuple())
91+
(class_.__name__, *self.as_tuple()))
9292

9393
def multiply(self, other):
9494
"""Multiply with another matrix
@@ -235,7 +235,7 @@ def transform_distance(self, dx, dy):
235235
cairo.cairo_matrix_transform_distance(self._pointer, xy + 0, xy + 1)
236236
return tuple(xy)
237237

238-
def _component_property(name):
238+
def _component_property(name): # noqa: N805
239239
return property(
240240
lambda self: getattr(self._pointer, name),
241241
lambda self, value: setattr(self._pointer, name, value),

cairocffi/surfaces.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class KeepAlive(object):
103103
or none of them must be called.
104104
105105
"""
106-
instances = set()
106+
instances = set() # noqa: RUF012
107107

108108
def __init__(self, *objects):
109109
self.objects = objects
@@ -655,7 +655,7 @@ def write_to_png(self, target=None):
655655
write_func = _make_write_func(target)
656656
_check_status(cairo.cairo_surface_write_to_png_stream(
657657
self._pointer, write_func, ffi.NULL))
658-
except (SystemError, MemoryError): # noqa
658+
except (SystemError, MemoryError): # pragma: no cover
659659
# Callback creation has failed
660660
if hasattr(target, 'name'):
661661
# File-like object has a name, write here

cairocffi/test_cairo.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@
2020
import sys
2121
import tempfile
2222

23-
import cairocffi
2423
import pikepdf
2524
import pytest
2625

27-
from . import (
26+
import cairocffi
27+
28+
from . import ( # isort:skip
2829
PDF_METADATA_AUTHOR, PDF_METADATA_CREATE_DATE, PDF_METADATA_CREATOR,
2930
PDF_METADATA_KEYWORDS, PDF_METADATA_MOD_DATE, PDF_METADATA_SUBJECT,
3031
PDF_METADATA_TITLE, PDF_OUTLINE_FLAG_BOLD, PDF_OUTLINE_FLAG_OPEN,
@@ -1033,7 +1034,7 @@ def test_context_mask():
10331034
context.mask(SurfacePattern(mask_surface))
10341035
o = pixel(b'\x00\x00\x00\x00')
10351036
b = pixel(b'\x80\x00\x00\x00')
1036-
B = pixel(b'\xFF\x00\x00\x00')
1037+
B = pixel(b'\xFF\x00\x00\x00') # noqa: N806
10371038
assert surface.get_data()[:] == (
10381039
B + o + o + o +
10391040
o + b + o + o +
@@ -1046,7 +1047,7 @@ def test_context_mask():
10461047
context.mask_surface(mask_surface, surface_x=1, surface_y=2)
10471048
o = pixel(b'\x00\x00\x00\x00')
10481049
b = pixel(b'\x80\x00\x00\x00')
1049-
B = pixel(b'\xFF\x00\x00\x00')
1050+
B = pixel(b'\xFF\x00\x00\x00') # noqa: N806
10501051
assert surface.get_data()[:] == (
10511052
o + o + o + o +
10521053
o + o + o + o +

cairocffi/test_numpy.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import math
22

3-
import cairocffi as cairo
43
import numpy
54

5+
import cairocffi as cairo
6+
67

78
def test_numpy():
89
data = numpy.zeros((200, 200, 4), dtype=numpy.uint8)

cairocffi/test_xcb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import pytest
1616

17-
xcffib = pytest.importorskip('xcffib') # noqa
17+
xcffib = pytest.importorskip('xcffib')
1818

1919
import xcffib.xproto # noqa isort:skip
2020
from xcffib.xproto import ConfigWindow, CW, EventMask, GC # noqa isort:skip

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Donation = 'https://opencollective.com/courtbouillon'
4040

4141
[project.optional-dependencies]
4242
doc = ['sphinx', 'sphinx_rtd_theme']
43-
test = ['pytest', 'flake8', 'isort', 'numpy', 'pikepdf']
43+
test = ['pytest', 'ruff', 'numpy', 'pikepdf']
4444
xcb = ['xcffib >= 1.4.0']
4545

4646
[tool.flit.sdist]
@@ -54,6 +54,6 @@ include = ['cairocffi/*']
5454
exclude_lines = ['pragma: no cover', 'def __repr__', 'raise NotImplementedError']
5555
omit = ['.*']
5656

57-
[tool.isort]
58-
default_section = 'FIRSTPARTY'
59-
multi_line_output = 4
57+
[tool.ruff.lint]
58+
select = ['E', 'W', 'F', 'I', 'N', 'RUF']
59+
ignore = ['RUF001', 'RUF002', 'RUF003']

utils/cairo_coverage.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import inspect
22

3-
import cairocffi
43
import pycparser
54

5+
import cairocffi
6+
67
ALL_THE_CODE = ''.join(
78
line
89
for module in [
@@ -12,7 +13,7 @@
1213

1314

1415
class Visitor(pycparser.c_ast.NodeVisitor):
15-
def visit_Decl(self, node):
16+
def visit_Decl(self, node): # noqa: N802
1617
for _, child in node.children():
1718
if isinstance(child, pycparser.c_ast.FuncDecl):
1819
if ('cairo.' + node.name) not in ALL_THE_CODE and not (

utils/cairocffi_to_pycairo.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import ctypes
22

33
import cairo # pycairo
4+
45
import cairocffi
56

67
pycairo = ctypes.PyDLL(cairo._cairo.__file__)
@@ -9,7 +10,7 @@
910
ctypes.pythonapi.PyList_Append.argtypes = 2 * [ctypes.c_void_p]
1011

1112

12-
def _UNSAFE_cairocffi_context_to_pycairo(cairocffi_context):
13+
def _UNSAFE_cairocffi_context_to_pycairo(cairocffi_context): # noqa: N802
1314
# Sanity check. Continuing with another type would probably segfault.
1415
if not isinstance(cairocffi_context, cairocffi.Context):
1516
raise TypeError('Expected a cairocffi.Context, got %r'

utils/compare_pycairo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import cairo as pycairo
2+
23
import cairocffi
34

45
# We want the real pycairo

utils/mkconstants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ def parse_constant(node):
1616

1717

1818
class PrintEnumsVisitor(pycparser.c_ast.NodeVisitor):
19-
def visit_Decl(self, node):
19+
def visit_Decl(self, node): # noqa: N802
2020
if node.name and node.name.startswith('CAIRO_'): # len('CAIRO_') == 6
2121
if node.init.type == 'string':
2222
print('%s = b%s' % (node.name[6:], node.init.value))
2323
else:
2424
print('%s = %s' % (node.name[6:], node.init.value))
2525
print('')
2626

27-
def visit_Enum(self, node):
27+
def visit_Enum(self, node): # noqa: N802
2828
value = 0
2929
for enumerator in node.values.enumerators:
3030
if enumerator.value is not None:

utils/pango_example.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import cairocffi
21
import cffi
32

3+
import cairocffi
4+
45
ffi = cffi.FFI()
56
ffi.cdef('''
67
/* GLib */

utils/pycairo_to_cairocffi.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import cairo # pycairo
2+
23
import cairocffi
34

45

5-
def _UNSAFE_pycairo_context_to_cairocffi(pycairo_context):
6+
def _UNSAFE_pycairo_context_to_cairocffi(pycairo_context): # noqa: N802
67
# Sanity check. Continuing with another type would probably segfault.
78
if not isinstance(pycairo_context, cairo.Context):
89
raise TypeError('Expected a cairo.Context, got %r' % pycairo_context)

utils/tests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import io
22

3-
import cairo # noqa, pycairo
4-
import cairocffi
3+
import cairo # noqa: F401
54
import pango_example
65
from cairocffi_to_pycairo import _UNSAFE_cairocffi_context_to_pycairo
76
from pycairo_to_cairocffi import _UNSAFE_pycairo_context_to_cairocffi
87

8+
import cairocffi
9+
910

1011
def test():
1112
cairocffi_context = cairocffi.Context(cairocffi.PDFSurface(None, 10, 20))

0 commit comments

Comments
 (0)