Skip to content

Commit 3a194ed

Browse files
FlorianPfaffgithub-actions[bot]
authored andcommitted
[MegaLinter] Apply linters automatic fixes
1 parent c82b7f1 commit 3a194ed

9 files changed

Lines changed: 90 additions & 54 deletions

pyrecest/distributions/__init__.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,21 @@
7474
PartiallyWrappedNormalDistribution,
7575
)
7676
from .cart_prod.se2_bingham_distribution import SE2BinghamDistribution
77+
from .cart_prod.se2_pwn_distribution import SE2PWNDistribution
7778
from .cart_prod.state_space_subdivision_distribution import (
7879
StateSpaceSubdivisionDistribution,
7980
)
8081
from .cart_prod.state_space_subdivision_gaussian_distribution import (
8182
StateSpaceSubdivisionGaussianDistribution,
8283
)
83-
from .cart_prod.se2_pwn_distribution import SE2PWNDistribution
8484
from .circle.abstract_circular_distribution import AbstractCircularDistribution
8585
from .circle.circular_dirac_distribution import CircularDiracDistribution
8686
from .circle.circular_fourier_distribution import CircularFourierDistribution
8787
from .circle.circular_mixture import CircularMixture
8888
from .circle.circular_uniform_distribution import CircularUniformDistribution
8989
from .circle.custom_circular_distribution import CustomCircularDistribution
9090
from .circle.generalized_von_mises_distribution import GvMDistribution
91+
from .circle.piecewise_constant_distribution import PiecewiseConstantDistribution
9192
from .circle.sine_skewed_distributions import (
9293
AbstractSineSkewedDistribution,
9394
GeneralizedKSineSkewedVonMisesDistribution,
@@ -97,7 +98,6 @@
9798
SineSkewedWrappedCauchyDistribution,
9899
SineSkewedWrappedNormalDistribution,
99100
)
100-
from .circle.piecewise_constant_distribution import PiecewiseConstantDistribution
101101
from .circle.von_mises_distribution import VonMisesDistribution
102102
from .circle.wrapped_cauchy_distribution import WrappedCauchyDistribution
103103
from .circle.wrapped_laplace_distribution import WrappedLaplaceDistribution
@@ -111,18 +111,6 @@
111111
from .custom_hyperrectangular_distribution import CustomHyperrectangularDistribution
112112
from .disk_uniform_distribution import DiskUniformDistribution
113113
from .ellipsoidal_ball_uniform_distribution import EllipsoidalBallUniformDistribution
114-
from .nonperiodic.abstract_hyperrectangular_distribution import (
115-
AbstractHyperrectangularDistribution,
116-
)
117-
from .nonperiodic.abstract_linear_distribution import AbstractLinearDistribution
118-
from .nonperiodic.custom_linear_distribution import CustomLinearDistribution
119-
from .nonperiodic.gaussian_distribution import GaussianDistribution
120-
from .nonperiodic.gaussian_mixture import GaussianMixture
121-
from .nonperiodic.hyperrectangular_uniform_distribution import (
122-
HyperrectangularUniformDistribution,
123-
)
124-
from .nonperiodic.linear_dirac_distribution import LinearDiracDistribution
125-
from .nonperiodic.linear_mixture import LinearMixture
126114
from .hypersphere_subset.abstract_hemispherical_distribution import (
127115
AbstractHemisphericalDistribution,
128116
)
@@ -172,15 +160,12 @@
172160
from .hypersphere_subset.hyperhemispherical_dirac_distribution import (
173161
HyperhemisphericalDiracDistribution,
174162
)
175-
from .hypersphere_subset.hyperhemispherical_uniform_distribution import (
176-
HyperhemisphericalUniformDistribution,
177-
)
178-
from .hypersphere_subset.hyperspherical_uniform_distribution import (
179-
HypersphericalUniformDistribution,
180-
)
181163
from .hypersphere_subset.hyperhemispherical_grid_distribution import (
182164
HyperhemisphericalGridDistribution,
183165
)
166+
from .hypersphere_subset.hyperhemispherical_uniform_distribution import (
167+
HyperhemisphericalUniformDistribution,
168+
)
184169
from .hypersphere_subset.hyperhemispherical_watson_distribution import (
185170
HyperhemisphericalWatsonDistribution,
186171
)
@@ -191,6 +176,9 @@
191176
HypersphericalGridDistribution,
192177
)
193178
from .hypersphere_subset.hyperspherical_mixture import HypersphericalMixture
179+
from .hypersphere_subset.hyperspherical_uniform_distribution import (
180+
HypersphericalUniformDistribution,
181+
)
194182
from .hypersphere_subset.spherical_grid_distribution import SphericalGridDistribution
195183
from .hypersphere_subset.spherical_harmonics_distribution_complex import (
196184
SphericalHarmonicsDistributionComplex,
@@ -237,6 +225,18 @@
237225
from .hypertorus.toroidal_wrapped_normal_distribution import (
238226
ToroidalWrappedNormalDistribution,
239227
)
228+
from .nonperiodic.abstract_hyperrectangular_distribution import (
229+
AbstractHyperrectangularDistribution,
230+
)
231+
from .nonperiodic.abstract_linear_distribution import AbstractLinearDistribution
232+
from .nonperiodic.custom_linear_distribution import CustomLinearDistribution
233+
from .nonperiodic.gaussian_distribution import GaussianDistribution
234+
from .nonperiodic.gaussian_mixture import GaussianMixture
235+
from .nonperiodic.hyperrectangular_uniform_distribution import (
236+
HyperrectangularUniformDistribution,
237+
)
238+
from .nonperiodic.linear_dirac_distribution import LinearDiracDistribution
239+
from .nonperiodic.linear_mixture import LinearMixture
240240
from .se2_dirac_distribution import SE2DiracDistribution
241241
from .se3_cart_prod_stacked_distribution import SE3CartProdStackedDistribution
242242
from .se3_dirac_distribution import SE3DiracDistribution

pyrecest/distributions/circle/piecewise_constant_distribution.py

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
# pylint: disable=no-name-in-module,no-member,redefined-builtin
22
import pyrecest.backend
3-
from pyrecest.backend import mod, pi, array, arange, mean, floor, zeros, exp, sum, log, random
3+
from pyrecest.backend import (
4+
arange,
5+
array,
6+
exp,
7+
floor,
8+
log,
9+
mean,
10+
mod,
11+
pi,
12+
random,
13+
sum,
14+
zeros,
15+
)
416

517
from .abstract_circular_distribution import AbstractCircularDistribution
618

@@ -48,7 +60,10 @@ def pdf(self, xs):
4860
n_intervals = len(self.w)
4961
xs_mod = array(mod(xs, 2.0 * pi), dtype=float)
5062
idx = array(
51-
[min(int(floor(x / (2.0 * pi) * n_intervals)), n_intervals - 1) for x in xs_mod]
63+
[
64+
min(int(floor(x / (2.0 * pi) * n_intervals)), n_intervals - 1)
65+
for x in xs_mod
66+
]
5267
)
5368
return self.w[idx]
5469

@@ -66,7 +81,9 @@ def trigonometric_moment(self, n):
6681
n-th trigonometric moment.
6782
"""
6883
if pyrecest.backend.__backend_name__ == "jax": # pylint: disable=no-member
69-
raise NotImplementedError("trigonometric_moment is not supported on the JAX backend.")
84+
raise NotImplementedError(
85+
"trigonometric_moment is not supported on the JAX backend."
86+
)
7087
if n == 0:
7188
return 1.0 + 0j
7289
num = len(self.w)
@@ -111,8 +128,13 @@ def sample(self, n):
111128
# construction. Divide by sum anyway to guard against floating-point drift.
112129
interval_probs = self.w * interval_width
113130
interval_probs /= interval_probs.sum()
114-
interval_indices = random.choice(arange(num_intervals), size=(n,), p=interval_probs)
115-
return interval_indices * interval_width + random.uniform(size=(n,)) * interval_width
131+
interval_indices = random.choice(
132+
arange(num_intervals), size=(n,), p=interval_probs
133+
)
134+
return (
135+
interval_indices * interval_width
136+
+ random.uniform(size=(n,)) * interval_width
137+
)
116138

117139
@staticmethod
118140
def left_border(m, n):
@@ -190,14 +212,14 @@ def calculate_parameters_numerically(pdf_func, n):
190212
from scipy.integrate import quad # pylint: disable=import-outside-toplevel
191213

192214
if pyrecest.backend.__backend_name__ == "jax": # pylint: disable=no-member
193-
raise NotImplementedError("calculate_parameters_numerically is not supported on the JAX backend.")
215+
raise NotImplementedError(
216+
"calculate_parameters_numerically is not supported on the JAX backend."
217+
)
194218

195219
assert n >= 1
196220
w = zeros(n)
197221
for j in range(1, n + 1):
198222
left = PiecewiseConstantDistribution.left_border(j, n)
199223
r = PiecewiseConstantDistribution.right_border(j, n)
200-
w[j - 1] = quad(
201-
lambda x: float(pdf_func(array([x]))), left, r
202-
)[0]
224+
w[j - 1] = quad(lambda x: float(pdf_func(array([x]))), left, r)[0]
203225
return w

pyrecest/distributions/se2_dirac_distribution.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
)
88

99

10-
class SE2DiracDistribution(
11-
HypercylindricalDiracDistribution, AbstractSE2Distribution
12-
):
10+
class SE2DiracDistribution(HypercylindricalDiracDistribution, AbstractSE2Distribution):
1311
"""Partially wrapped Dirac distribution on SE(2).
1412
1513
Represents a distribution on SE(2) = S^1 x R^2 using weighted Dirac
@@ -56,7 +54,11 @@ def covariance_4d(self):
5654
-------
5755
array of shape (4, 4)
5856
"""
59-
from pyrecest.backend import column_stack, cos, sin # pylint: disable=import-outside-toplevel
57+
from pyrecest.backend import ( # pylint: disable=import-outside-toplevel
58+
column_stack,
59+
cos,
60+
sin,
61+
)
6062

6163
S = column_stack(
6264
(cos(self.d[:, 0:1]), sin(self.d[:, 0:1]), self.d[:, 1:])

pyrecest/filters/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
from .abstract_multitarget_tracker import AbstractMultitargetTracker
77
from .abstract_nearest_neighbor_tracker import AbstractNearestNeighborTracker
88
from .abstract_particle_filter import AbstractParticleFilter
9-
from .circular_ukf import CircularUKF
109
from .abstract_tracker_with_logging import AbstractTrackerWithLogging
1110
from .circular_particle_filter import CircularParticleFilter
11+
from .circular_ukf import CircularUKF
1212
from .euclidean_particle_filter import EuclideanParticleFilter
13-
from .hypercylindrical_particle_filter import HypercylindricalParticleFilter
1413
from .global_nearest_neighbor import GlobalNearestNeighbor
1514
from .gprhm_tracker import GPRHMTracker
15+
from .hypercylindrical_particle_filter import HypercylindricalParticleFilter
1616
from .hyperhemisphere_cart_prod_particle_filter import (
1717
HyperhemisphereCartProdParticleFilter,
1818
)

pyrecest/filters/circular_ukf.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ def __init__(self, alpha: float = 1e-3, beta: float = 2.0, kappa: float = 0.0):
7171
self._alpha = alpha
7272
self._beta = beta
7373
self._kappa = kappa
74-
initial_state = GaussianDistribution(
75-
array([0.0]), array([[1.0]])
76-
)
74+
initial_state = GaussianDistribution(array([0.0]), array([[1.0]]))
7775
CircularFilterMixin.__init__(self)
7876
AbstractFilter.__init__(self, initial_state)
7977

@@ -147,8 +145,16 @@ def hx(x):
147145
return x
148146

149147
ukf = _make_ukf(
150-
fx, hx, dim_z=1, x0=mu0, P0=C0, Q=Q_val, R=array([[C0]]),
151-
alpha=self._alpha, beta=self._beta, kappa=self._kappa,
148+
fx,
149+
hx,
150+
dim_z=1,
151+
x0=mu0,
152+
P0=C0,
153+
Q=Q_val,
154+
R=array([[C0]]),
155+
alpha=self._alpha,
156+
beta=self._beta,
157+
kappa=self._kappa,
152158
)
153159
ukf.predict()
154160

@@ -194,9 +200,7 @@ def update_identity(self, gauss_meas: GaussianDistribution, z):
194200
new_C = (1.0 - K) * C
195201

196202
new_mu = float(mod(array([new_mu]), 2.0 * pi)[0])
197-
self._filter_state = GaussianDistribution(
198-
array([new_mu]), array([[new_C]])
199-
)
203+
self._filter_state = GaussianDistribution(array([new_mu]), array([[new_C]]))
200204

201205
def update_nonlinear( # pylint: disable=too-many-locals
202206
self, f, gauss_meas: GaussianDistribution, z, measurement_periodic: bool = False
@@ -251,8 +255,16 @@ def hx(x):
251255
return atleast_1d(array([f(x.flatten()[0])], dtype=float))
252256

253257
ukf = _make_ukf(
254-
fx, hx, dim_z=dim_z, x0=mu0, P0=C0, Q=0.0, R=R_mat,
255-
alpha=self._alpha, beta=self._beta, kappa=self._kappa,
258+
fx,
259+
hx,
260+
dim_z=dim_z,
261+
x0=mu0,
262+
P0=C0,
263+
Q=0.0,
264+
R=R_mat,
265+
alpha=self._alpha,
266+
beta=self._beta,
267+
kappa=self._kappa,
256268
)
257269
# predict() with identity fx and Q=0 populates sigmas_f without
258270
# altering the mean or covariance, which is required before update().

pyrecest/filters/hypercylindrical_particle_filter.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
from .manifold_mixins import HypercylindricalFilterMixin
1212

1313

14-
class HypercylindricalParticleFilter(AbstractParticleFilter, HypercylindricalFilterMixin):
14+
class HypercylindricalParticleFilter(
15+
AbstractParticleFilter, HypercylindricalFilterMixin
16+
):
1517
def __init__(
1618
self,
1719
n_particles: Union[int, int32, int64],

pyrecest/tests/distributions/test_piecewise_constant_distribution.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import pyrecest.backend
55

66
# pylint: disable=no-name-in-module,no-member,redefined-builtin
7-
from pyrecest.backend import linspace, sum, exp, log, mean, pi, array
7+
from pyrecest.backend import array, exp, linspace, log, mean, pi, sum
88
from pyrecest.distributions.circle.piecewise_constant_distribution import (
99
PiecewiseConstantDistribution,
1010
)
@@ -33,9 +33,7 @@ def test_pdf(self):
3333
def test_integral_normalized(self):
3434
"""Verify the distribution integrates to 1 via the exact sum."""
3535
n = len(self.dist.w)
36-
npt.assert_allclose(
37-
sum(self.dist.w) * (2.0 * pi / n), 1.0, rtol=5e-7
38-
)
36+
npt.assert_allclose(sum(self.dist.w) * (2.0 * pi / n), 1.0, rtol=5e-7)
3937

4038
def test_integral_partial(self):
4139
"""Verify partial integrals sum to 1 using a fine grid."""

pyrecest/tests/distributions/test_se2_dirac_distribution.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ def test_sampling(self):
112112
s = self.dist.sample(n)
113113
self.assertEqual(s.shape, (n, 3))
114114
# Angles should be in [0, 2*pi)
115-
from pyrecest.backend import all as backend_all # pylint: disable=import-outside-toplevel
115+
from pyrecest.backend import (
116+
all as backend_all, # pylint: disable=import-outside-toplevel
117+
)
116118

117119
self.assertTrue(backend_all(s[:, 0] >= 0))
118120
self.assertTrue(backend_all(s[:, 0] < 2 * pi))

pyrecest/tests/filters/test_hypercylindrical_particle_filter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ def setUp(self):
2929
def test_initialization(self):
3030
hpf = HypercylindricalParticleFilter(10, self.bound_dim, self.lin_dim)
3131
self.assertIsNotNone(hpf.filter_state)
32-
self.assertEqual(
33-
hpf.filter_state.d.shape, (10, self.bound_dim + self.lin_dim)
34-
)
32+
self.assertEqual(hpf.filter_state.d.shape, (10, self.bound_dim + self.lin_dim))
3533

3634
@unittest.skipIf(
3735
pyrecest.backend.__backend_name__ == "jax", reason="Backend not supported"

0 commit comments

Comments
 (0)