Skip to content

Commit

Permalink
Enable RUF rules
Browse files Browse the repository at this point in the history
  • Loading branch information
inducer committed Jul 19, 2024
1 parent 229dfc9 commit 44bd96d
Show file tree
Hide file tree
Showing 16 changed files with 80 additions and 68 deletions.
16 changes: 11 additions & 5 deletions boxtree/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,18 @@


__all__ = [
"TreeOfBoxes", "make_tree_of_boxes_root",
"refine_tree_of_boxes", "uniformly_refine_tree_of_boxes",
"coarsen_tree_of_boxes", "refine_and_coarsen_tree_of_boxes",
"Tree",
"TreeBuilder",
"TreeOfBoxes",
"TreeWithLinkedPointSources",
"box_flags_enum",
"coarsen_tree_of_boxes",
"make_meshmode_mesh_from_leaves",
"Tree", "TreeWithLinkedPointSources",
"TreeBuilder", "box_flags_enum"]
"make_tree_of_boxes_root",
"refine_and_coarsen_tree_of_boxes",
"refine_tree_of_boxes",
"uniformly_refine_tree_of_boxes",
]

__doc__ = r"""
:mod:`boxtree` can do three main things:
Expand Down
12 changes: 8 additions & 4 deletions boxtree/area_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
from mako.template import Template

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.cltypes # noqa
import pyopencl.array
import pyopencl.cltypes
from pytools import ProcessLogger, memoize_method

from boxtree.tools import (
Expand Down Expand Up @@ -493,7 +493,10 @@ def unwrap_args(tree, peer_lists, *args):
tree.box_child_ids,
tree.box_flags,
peer_lists.peer_list_starts,
peer_lists.peer_lists) + tuple(tree.bounding_box[0]) + args
peer_lists.peer_lists,
*tree.bounding_box[0],
*args
)

def __init__(self, extra_args, ball_center_and_radius_expr,
leaf_found_op, preamble="", name="area_query_elwise"):
Expand Down Expand Up @@ -586,7 +589,8 @@ def generate(self, context,
("peer_list_idx_t", peer_list_idx_dtype),
("box_level_t", np.uint8),
("box_flags_t", box_flags_enum.dtype),
) + extra_type_aliases,
*extra_type_aliases,
),
var_values=render_vars + extra_var_values,
more_preamble=preamble + extra_preamble)

Expand Down
5 changes: 3 additions & 2 deletions boxtree/cost.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,13 @@
"""

from functools import partial
from typing import ClassVar, Mapping

import numpy as np
from mako.template import Template

import pyopencl as cl
import pyopencl.array # noqa: F401
import pyopencl.array
from pymbolic import evaluate, var
from pyopencl.elementwise import ElementwiseKernel
from pyopencl.tools import dtype_to_ctype
Expand Down Expand Up @@ -661,7 +662,7 @@ def get_unit_calibration_params():
"c_p2p": 1.0,
}

_FMM_STAGE_TO_CALIBRATION_PARAMETER = {
_FMM_STAGE_TO_CALIBRATION_PARAMETER: ClassVar[Mapping[str, str]] = {
"form_multipoles": "c_p2m",
"coarsen_multipoles": "c_m2m",
"eval_direct": "c_p2p",
Expand Down
4 changes: 2 additions & 2 deletions boxtree/pyfmmlib_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ def __init__(self, tree_indep, traversal, *,
warn("Passing order is deprecated. Pass fmm_level_to_order instead.",
DeprecationWarning, stacklevel=2)

def fmm_level_to_order(tree, level): # noqa pylint:disable=function-redefined
def fmm_level_to_order(tree, level): # pylint:disable=function-redefined
return order

super().__init__(tree_indep, traversal)
Expand Down Expand Up @@ -907,7 +907,7 @@ def multipole_to_local(self,
kwargs["ier"] = ier

expn2 = np.zeros(
(ntgt_boxes,) + self.expansion_shape(self.level_orders[lev]),
(ntgt_boxes, *self.expansion_shape(self.level_orders[lev])),
dtype=self.tree_indep.dtype)

kwargs.update(self.kernel_kwargs)
Expand Down
2 changes: 1 addition & 1 deletion boxtree/rotation_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import numpy as np

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.array

from boxtree.tools import DeviceDataRecord
from boxtree.translation_classes import TranslationClassesBuilder
Expand Down
2 changes: 1 addition & 1 deletion boxtree/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from mako.template import Template

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.array
import pyopencl.cltypes as cltypes
from pyopencl.tools import ScalarArg, VectorArg as _VectorArg, dtype_to_c_struct
from pytools import Record, memoize_method
Expand Down
4 changes: 2 additions & 2 deletions boxtree/translation_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
from mako.template import Template

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.cltypes # noqa
import pyopencl.array
import pyopencl.cltypes
from pyopencl.elementwise import ElementwiseTemplate
from pytools import Record, memoize_method

Expand Down
29 changes: 15 additions & 14 deletions boxtree/traversal.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@
from mako.template import Template

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.cltypes # noqa
import pyopencl.array
import pyopencl.cltypes
from pyopencl.elementwise import ElementwiseTemplate
from pytools import Record, memoize_method

Expand Down Expand Up @@ -1262,12 +1262,12 @@ def __call__(self, queue, input_starts, input_lists, input_index_style,
assert len(input_starts) == len(input_lists)
nlists = len(input_starts)

evt = self.get_list_merger_kernel(nlists, True)(*(
evt = self.get_list_merger_kernel(nlists, True)(
# input:
(output_to_input_box,)
+ input_starts
output_to_input_box,
*input_starts,
# output:
+ (new_counts,)),
new_counts,
range=slice(noutput_boxes),
queue=queue,
wait_for=wait_for)
Expand All @@ -1282,14 +1282,14 @@ def __call__(self, queue, input_starts, input_lists, input_index_style,

new_lists.fill(999999999)

evt = self.get_list_merger_kernel(nlists, False)(*(
evt = self.get_list_merger_kernel(nlists, False)(
# input:
(output_to_input_box,)
+ input_starts
+ input_lists
+ (new_starts,)
output_to_input_box,
*input_starts,
*input_lists,
new_starts,
# output:
+ (new_lists,)),
new_lists,
range=slice(noutput_boxes),
queue=queue,
wait_for=[evt])
Expand Down Expand Up @@ -2096,7 +2096,7 @@ def extract_level_start_box_nrs(box_list, wait_for):
fin_debug("finding separated smaller ('list 3 level %d')" % ilevel)

result, evt = knl_info.from_sep_smaller_builder(
*(from_sep_smaller_base_args + (ilevel,)),
*from_sep_smaller_base_args, ilevel,
omit_lists=("from_sep_close_smaller",) if with_extent else (),
wait_for=wait_for)

Expand All @@ -2110,7 +2110,8 @@ def extract_level_start_box_nrs(box_list, wait_for):
if with_extent:
fin_debug("finding separated smaller close ('list 3 close')")
result, evt = knl_info.from_sep_smaller_builder(
*(from_sep_smaller_base_args + (-1,)),
*from_sep_smaller_base_args,
-1,
omit_lists=("from_sep_smaller",),
wait_for=wait_for)
from_sep_close_smaller_starts = result["from_sep_close_smaller"].starts
Expand Down
48 changes: 25 additions & 23 deletions boxtree/tree_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
import numpy as np

import pyopencl as cl
import pyopencl.array # noqa
import pyopencl.array
from pytools import DebugProcessLogger, ProcessLogger, memoize_method

from boxtree.tree import Tree
Expand Down Expand Up @@ -998,10 +998,12 @@ def my_realloc_zeros_nocopy(ary, shape=nboxes_guess):
# {{{ split boxes

box_splitter_args = (
common_args
+ (box_has_children, force_split_box, root_extent)
+ box_child_ids
+ box_centers)
*common_args,
box_has_children,
force_split_box,
root_extent,
*box_child_ids,
*box_centers)

evt = knl_info.box_splitter_kernel(*box_splitter_args,
range=slice(level_start_box_nrs[-1]),
Expand Down Expand Up @@ -1036,9 +1038,11 @@ def my_realloc_zeros_nocopy(ary, shape=nboxes_guess):
new_srcntgt_box_ids = cl.array.empty_like(srcntgt_box_ids)

particle_renumberer_args = (
common_args
+ (box_has_children, force_split_box,
new_user_srcntgt_ids, new_srcntgt_box_ids))
*common_args,
box_has_children,
force_split_box,
new_user_srcntgt_ids,
new_srcntgt_box_ids)

evt = knl_info.particle_renumberer_kernel(*particle_renumberer_args,
range=slice(nsrcntgts), wait_for=wait_for)
Expand Down Expand Up @@ -1110,7 +1114,7 @@ def my_realloc_zeros_nocopy(ary, shape=nboxes_guess):
wait_for.extend(have_upper_level_split_box.events)

# writes: force_split_box, have_upper_level_split_box
evt = level_restrict_kernel( # pylint: disable=possibly-used-before-assignment # noqa: E501
evt = level_restrict_kernel( # pylint: disable=possibly-used-before-assignment
upper_level,
root_extent,
box_has_children,
Expand Down Expand Up @@ -1449,8 +1453,8 @@ def make_arange(start, offset=level_used_box_count):
box_target_starts, box_target_counts_cumul,
)
+ ((
box_source_counts_nonchild, # pylint: disable=possibly-used-before-assignment # noqa: E501
box_target_counts_nonchild, # pylint: disable=possibly-used-before-assignment # noqa: E501
box_source_counts_nonchild, # pylint: disable=possibly-used-before-assignment
box_target_counts_nonchild, # pylint: disable=possibly-used-before-assignment
) if srcntgts_have_extent else ())
),
queue=queue, range=slice(nsrcntgts),
Expand Down Expand Up @@ -1705,18 +1709,16 @@ def make_arange(start, offset=level_used_box_count):
continue

args = (
(
aligned_nboxes,
box_child_ids,
box_centers,
pstarts, pcounts,)
+ tuple(particles)
+ (
particle_radii,
enable_radii,

box_bounding_box_min,
box_bounding_box_max))
aligned_nboxes,
box_child_ids,
box_centers,
pstarts,
pcounts,
*particles,
particle_radii,
enable_radii,
box_bounding_box_min,
box_bounding_box_max)

evt = knl_info.box_extents_finder_kernel(
*args,
Expand Down
8 changes: 3 additions & 5 deletions boxtree/tree_build_kernels.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__copyright__ = "Copyright (C) 2013 Andreas Kloeckner"
# __copyright__ = "Copyright (C) 2013 Andreas Kloeckner"

__license__ = """
Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -1630,13 +1630,11 @@ def get_tree_build_kernel_info(context, dimensions, coord_dtype,
from pyopencl.elementwise import ElementwiseKernel
particle_renumberer_kernel = ElementwiseKernel(
context,
common_arguments
+ [
[*common_arguments,
VectorArg(np.int32, "box_has_children"),
VectorArg(np.int32, "box_force_split"),
VectorArg(particle_id_dtype, "new_user_srcntgt_ids"),
VectorArg(box_id_dtype, "new_srcntgt_box_ids"),
],
VectorArg(box_id_dtype, "new_srcntgt_box_ids")],
str(particle_renumberer_kernel_source), name="renumber_particles",
preamble=(
preamble_with_dtype_decls
Expand Down
4 changes: 2 additions & 2 deletions boxtree/tree_of_boxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,12 @@ def _resized_array(arr: np.ndarray, new_size: int) -> np.ndarray:
old_size = arr.shape[-1]
prefix = (slice(None), ) * (arr.ndim - 1)
if old_size >= new_size:
return arr[prefix + (slice(new_size), )].copy()
return arr[(*prefix, slice(new_size))].copy()
else:
new_shape = list(arr.shape)
new_shape[-1] = new_size
new_arr = np.zeros(new_shape, arr.dtype)
new_arr[prefix + (slice(old_size), )] = arr
new_arr[(*prefix, slice(old_size))] = arr
return new_arr


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ extend-select = [
"Q", # flake8-quotes
"I", # flake8-isort
"UP", # pyupgrade
"RUF", # ruff

# TODO
# "RUF", # ruff
# "W", # pycodestyle
# "SIM",
]
Expand Down
2 changes: 1 addition & 1 deletion test/test_distributed.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from arraycontext import pytest_generate_tests_for_array_contexts

from boxtree.array_context import (
PytestPyOpenCLArrayContextFactory, # noqa: F401
PytestPyOpenCLArrayContextFactory,
_acf,
)
from boxtree.constant_one import (
Expand Down
4 changes: 2 additions & 2 deletions test/test_fmm.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def _get_target_slice(self, ibox):
(3, 5 * 10**5, 4*10**4, "t", p_normal, p_normal, None, "linf", "static_linf"), # noqa: E501
(3, 5 * 10**5, 4*10**4, "t", p_normal, p_normal, None, "linf", "precise_linf"), # noqa: E501
(3, 5 * 10**5, 4*10**4, "t", p_normal, p_normal, None, "l2", "precise_linf"), # noqa: E501
(3, 5 * 10**5, 4*10**4, "t", p_normal, p_normal, None, "l2", "static_l2"), # noqa: E501
(3, 5 * 10**5, 4*10**4, "t", p_normal, p_normal, None, "l2", "static_l2"),
])
def test_fmm_completeness(actx_factory, dims, nsources_req, ntargets_req,
Expand Down Expand Up @@ -354,7 +354,7 @@ def test_fmm_completeness(actx_factory, dims, nsources_req, ntargets_req,
from boxtree.visualization import draw_box_lists
draw_box_lists(
plotter,
pre_merge_host_trav if who_has_extent else host_trav, # pylint: disable=possibly-used-before-assignment # noqa: E501
pre_merge_host_trav if who_has_extent else host_trav, # pylint: disable=possibly-used-before-assignment
22)
# from boxtree.visualization import draw_same_level_non_well_sep_boxes
# draw_same_level_non_well_sep_boxes(plotter, host_trav, 2)
Expand Down
2 changes: 1 addition & 1 deletion test/test_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
PytestPyOpenCLArrayContextFactory,
_acf, # noqa: F401
)
from boxtree.tools import ( # noqa: F401
from boxtree.tools import (
make_normal_particle_array as p_normal,
make_surface_particle_array as p_surface,
make_uniform_particle_array as p_uniform,
Expand Down
4 changes: 2 additions & 2 deletions test/test_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ def run_build_test(builder, actx, dims, dtype, nparticles, visualize,
else:
assert refine_weights is not None
box_weight = np.sum(
refine_weights_reordered[start:start+nparticles_in_box]) # pylint: disable=possibly-used-before-assignment # noqa: E501
refine_weights_reordered[start:start+nparticles_in_box]) # pylint: disable=possibly-used-before-assignment
if box_weight > max_leaf_refine_weight:
print("refine weight exceeded "
f"({box_weight} > {max_leaf_refine_weight}); box {ibox}")
Expand Down Expand Up @@ -603,7 +603,7 @@ def test_extent_tree(actx_factory, dims, extent_norm, visualize=False):
good = np.all(
(check_particles + check_radii
< extent_high[:, np.newaxis] + stick_out_dist)
& # noqa: W504
&
(extent_low[:, np.newaxis] - stick_out_dist
<= check_particles - check_radii),
axis=0)
Expand Down

0 comments on commit 44bd96d

Please sign in to comment.