Skip to content

Commit 03abcd1

Browse files
authored
chore(ruff): #80 apply preliminary rules (#86)
* chore(ruff): #80 add to pre-commit * chore(ruff): #80 automatic fixes * chore(typo): #80 * chore(pre-commit): #80 add to pyproject.toml * chore(ruff): #80 comment by @emptymalei #86 (comment)
1 parent 3d4f6f3 commit 03abcd1

24 files changed

Lines changed: 259 additions & 82 deletions

.pre-commit-config.yaml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,22 @@ repos:
99
- id: end-of-file-fixer
1010
- id: requirements-txt-fixer
1111
- id: trailing-whitespace
12+
- repo: https://github.com/astral-sh/ruff-pre-commit
13+
# Ruff version.
14+
rev: v0.6.1
15+
hooks:
16+
# Run the linter.
17+
- id: ruff
18+
args:
19+
- --fix
20+
- --exit-non-zero-on-fix
21+
# Run the formatter.
22+
- id: ruff-format
1223
- repo: https://github.com/ambv/black
1324
rev: 24.4.2
1425
hooks:
1526
- id: black
1627
language: python
17-
- repo: https://github.com/pycqa/isort
18-
rev: 5.13.2
19-
hooks:
20-
- id: isort
21-
name: isort (python)
22-
args: ["--multi-line", "3", "--profile", "black", "--treat-comment-as-code", "# %%", "--float-to-top"]
2328
- repo: local
2429
# We do not use pre-commit/mirrors-mypy,
2530
# as it comes with opinionated defaults

docs/tutorials/harmonic_oscillator.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,21 @@
9191
dfs_dho = []
9292

9393
for s_name, s in dho_systems.items():
94-
9594
dfs_dho.append(
9695
DampedHarmonicOscillator(system=s)(
97-
n_periods=n_periods, n_samples_per_period=n_samples_per_period
98-
).assign(system=rf"{s_name} (omega = {s.get('omega')}, zeta = {s.get('zeta')})")
96+
n_periods=n_periods,
97+
n_samples_per_period=n_samples_per_period,
98+
).assign(
99+
system=rf"{s_name} (omega = {s.get('omega')}, zeta = {s.get('zeta')})",
100+
),
99101
)
100102

101103
fig = px.line(
102104
pd.concat(dfs_dho),
103105
x="t",
104106
y="x",
105107
color="system",
106-
title=rf"Damped Harmonic Oscillator",
108+
title=r"Damped Harmonic Oscillator",
107109
labels={
108110
"x": r"Displacement $x(t)$",
109111
"t": r"$t$",

docs/tutorials/kepler_problem.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,7 @@
2222
# ## Usage
2323

2424
# %%
25-
import numpy as np
26-
import pandas as pd
27-
import plotly.express as px
2825

29-
from hamilflow.models.kepler_problem.model import Kepler2D
3026

3127
# %%
3228
# system = {"alpha": 1.0, "mass": 1.0}

docs/tutorials/pendulum.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747

4848
# %%
4949
df_pen = pen.generate_from(
50-
n_periods=n_periods, n_samples_per_period=n_samples_per_period
50+
n_periods=n_periods,
51+
n_samples_per_period=n_samples_per_period,
5152
)
5253
df_pen.head()
5354

@@ -62,7 +63,7 @@
6263
df_pen,
6364
x="t",
6465
y="x",
65-
title=r"Simple Harmonic Oscillator ($\omega_0 = {:.4f})$".format(omega0),
66+
title=rf"Simple Harmonic Oscillator ($\omega_0 = {omega0:.4f})$",
6667
labels=dict(x=r"Angle $\theta(t)$", t=r"Time $t$"),
6768
)
6869

hamilflow/maths/trigonometrics.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from functools import partial
21
from typing import TYPE_CHECKING
32

43
import numpy as np

hamilflow/models/brownian_motion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def _trajectory(self, n_new_steps: int, seed: int) -> "npt.NDArray[np.float64]":
181181
)
182182

183183
step_history = np.concatenate(
184-
(np.expand_dims(self.initial_condition.x0, axis=0), step_history)
184+
(np.expand_dims(self.initial_condition.x0, axis=0), step_history),
185185
)
186186

187187
trajectory = np.cumsum(step_history, axis=0)

hamilflow/models/free_particle.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ class FreeParticle:
3939
"""
4040

4141
def __init__(
42-
self, initial_condition: Mapping[str, float | Sequence[float]]
42+
self,
43+
initial_condition: Mapping[str, float | Sequence[float]],
4344
) -> None:
4445
self.initial_condition = FreeParticleIC.model_validate(initial_condition)
4546

hamilflow/models/harmonic_oscillator.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def __init__(
159159
super().__init__(system, initial_condition)
160160
if self.system.type != "simple":
161161
raise ValueError(
162-
f"System is not a Simple Harmonic Oscillator: {self.system}"
162+
f"System is not a Simple Harmonic Oscillator: {self.system}",
163163
)
164164

165165
def _x(self, t: "Sequence[float] | npt.ArrayLike") -> np.ndarray:
@@ -170,7 +170,7 @@ def _x(self, t: "Sequence[float] | npt.ArrayLike") -> np.ndarray:
170170
$$
171171
"""
172172
return self.initial_condition.x0 * np.cos(
173-
self.system.omega * np.array(t, copy=False) + self.initial_condition.phi
173+
self.system.omega * np.array(t, copy=False) + self.initial_condition.phi,
174174
)
175175

176176

@@ -232,7 +232,7 @@ def __init__(
232232
if self.system.type == "simple":
233233
raise ValueError(
234234
f"System is not a Damped Harmonic Oscillator: {self.system}\n"
235-
f"This is a simple harmonic oscillator, use `SimpleHarmonicOscillator`."
235+
f"This is a simple harmonic oscillator, use `SimpleHarmonicOscillator`.",
236236
)
237237

238238
def _x_under_damped(self, t: "Sequence[float] | npt.ArrayLike") -> npt.ArrayLike:
@@ -277,7 +277,7 @@ def _x_critical_damped(self, t: "Sequence[float] | npt.ArrayLike") -> npt.ArrayL
277277
"""
278278
t = np.array(t, copy=False)
279279
return self.initial_condition.x0 * np.exp(
280-
-self.system.zeta * self.system.omega * t
280+
-self.system.zeta * self.system.omega * t,
281281
)
282282

283283
def _x_over_damped(self, t: "Sequence[float] | npt.ArrayLike") -> npt.ArrayLike:
@@ -318,7 +318,7 @@ def _x(self, t: "Sequence[float] | npt.ArrayLike") -> npt.ArrayLike:
318318
x = self._x_critical_damped(t)
319319
else:
320320
raise ValueError(
321-
"System type is not damped harmonic oscillator: {self.system.type}"
321+
f"System type is not damped harmonic oscillator: {self.system.type}",
322322
)
323323

324324
return x
@@ -349,11 +349,11 @@ def __init__(
349349
) -> None:
350350
self.system = HarmonicOscillatorSystem.model_validate(system)
351351
self.initial_condition = ComplexSimpleHarmonicOscillatorIC.model_validate(
352-
initial_condition
352+
initial_condition,
353353
)
354354
if self.system.type != "simple":
355355
raise ValueError(
356-
f"System is not a Simple Harmonic Oscillator: {self.system}"
356+
f"System is not a Simple Harmonic Oscillator: {self.system}",
357357
)
358358

359359
@cached_property

hamilflow/models/harmonic_oscillator_chain.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,31 +92,36 @@ def definition(
9292
)
9393

9494
def _z(
95-
self, t: "Sequence[float] | npt.ArrayLike"
95+
self,
96+
t: "Sequence[float] | npt.ArrayLike",
9697
) -> "tuple[npt.NDArray[np.complex64], npt.NDArray[np.complex64]]":
9798
t = np.array(t, copy=False).reshape(-1)
9899
all_travelling_waves = [self.free_mode._x(t).reshape(1, -1)]
99100

100101
if self.independent_csho_modes:
101102
independent_cshos = np.array(
102-
[o._z(t) for o in self.independent_csho_modes], copy=False
103+
[o._z(t) for o in self.independent_csho_modes],
104+
copy=False,
103105
)
104106
all_travelling_waves.extend(
105-
(independent_cshos, independent_cshos[::-1].conj())
106-
if self.odd_dof
107-
else (
108-
independent_cshos[:-1],
109-
independent_cshos[[-1]],
110-
independent_cshos[-2::-1].conj(),
111-
)
107+
(
108+
(independent_cshos, independent_cshos[::-1].conj())
109+
if self.odd_dof
110+
else (
111+
independent_cshos[:-1],
112+
independent_cshos[[-1]],
113+
independent_cshos[-2::-1].conj(),
114+
)
115+
),
112116
)
113117

114118
travelling_waves = np.concatenate(all_travelling_waves)
115119
original_zs = ifft(travelling_waves, axis=0, norm="ortho")
116120
return original_zs, travelling_waves
117121

118122
def _x(
119-
self, t: "Sequence[float] | npt.ArrayLike"
123+
self,
124+
t: "Sequence[float] | npt.ArrayLike",
120125
) -> "tuple[npt.NDArray[np.float64], npt.NDArray[np.complex64]]":
121126
original_xs, travelling_waves = self._z(t)
122127

@@ -133,7 +138,8 @@ def __call__(self, t: "Sequence[float] | npt.ArrayLike") -> pd.DataFrame:
133138
original_xs, travelling_waves = self._x(t)
134139
data = { # type: ignore [var-annotated]
135140
f"{name}{i}": cast(
136-
"npt.NDArray[np.float64] | npt.NDArray[np.complex64]", values
141+
"npt.NDArray[np.float64] | npt.NDArray[np.complex64]",
142+
values,
137143
)
138144
for name, xs in zip(("x", "y"), (original_xs, travelling_waves))
139145
for i, values in enumerate(xs) # type: ignore [arg-type]

hamilflow/models/kepler_problem/dynamics.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,26 @@
1111

1212

1313
def _tau_of_u_exact_elliptic(
14-
ecc: float, u: "npt.NDArray[np.float64]"
14+
ecc: float,
15+
u: "npt.NDArray[np.float64]",
1516
) -> "npt.NDArray[np.float64]":
1617
cosqr, eusqrt = 1 - ecc**2, np.sqrt(ecc**2 - u**2)
1718
trig_numer = np.pi / 2 - np.arctan((ecc**2 + u) / np.sqrt(cosqr) / eusqrt)
1819
return -eusqrt / cosqr / (1 + u) + trig_numer / cosqr**1.5
1920

2021

2122
def _tau_of_e_plus_u_elliptic(
22-
ecc: float, u: "npt.NDArray[np.float64]"
23+
ecc: float,
24+
u: "npt.NDArray[np.float64]",
2325
) -> "npt.NDArray[np.float64]":
2426
epu = np.sqrt(2 * (ecc + u) / ecc)
2527
const = np.pi / (1 - ecc**2) ** 1.5
2628
return const - epu / (ecc - 1) ** 2 + epu**3 * (1 - 9 * ecc) / 24 / (1 - ecc) ** 3
2729

2830

2931
def _tau_of_e_minus_u_elliptic(
30-
ecc: float, u: "npt.NDArray[np.float64]"
32+
ecc: float,
33+
u: "npt.NDArray[np.float64]",
3134
) -> "npt.NDArray[np.float64]":
3235
emu = np.sqrt(2 * (ecc - u) / ecc)
3336
return emu / (1 + ecc) ** 2 - emu**3 * (1 + 9 * ecc) / 24 / (1 + ecc) ** 3
@@ -49,7 +52,8 @@ def tau_of_u_parabolic(ecc: float, u: "npt.ArrayLike") -> "npt.NDArray[np.float6
4952

5053

5154
def _tau_of_u_exact_hyperbolic(
52-
ecc: float, u: "npt.ArrayLike"
55+
ecc: float,
56+
u: "npt.ArrayLike",
5357
) -> "npt.NDArray[np.float64]":
5458
u = np.array(u, copy=False)
5559
cosqr, eusqrt = ecc**2 - 1, np.sqrt(ecc**2 - u**2)
@@ -58,7 +62,8 @@ def _tau_of_u_exact_hyperbolic(
5862

5963

6064
def _tau_of_1_plus_u_hyperbolic(
61-
ecc: float, u: "npt.NDArray[np.float64]"
65+
ecc: float,
66+
u: "npt.NDArray[np.float64]",
6267
) -> "npt.NDArray[np.float64]":
6368
cosqr = ecc**2 - 1
6469
up1 = ecc * (1 + u) / 2 / cosqr
@@ -68,7 +73,8 @@ def _tau_of_1_plus_u_hyperbolic(
6873

6974

7075
def _tau_of_e_minus_u_hyperbolic(
71-
ecc: float, u: "npt.NDArray[np.float64]"
76+
ecc: float,
77+
u: "npt.NDArray[np.float64]",
7278
) -> "npt.NDArray[np.float64]":
7379
emu = np.sqrt(2 * (ecc - u) / ecc)
7480
return emu / (1 + ecc) ** 2 + emu**3 * (1 + 9 * ecc) / 24 / (1 + ecc) ** 3
@@ -96,7 +102,8 @@ def tau_of_u_prime2(ecc: float, u: "npt.ArrayLike") -> "npt.NDArray[np.float64]"
96102

97103

98104
def esolve_u_from_tau_parabolic(
99-
ecc: float, tau: "npt.ArrayLike"
105+
ecc: float,
106+
tau: "npt.ArrayLike",
100107
) -> "npt.NDArray[np.float64]":
101108
tau = np.array(tau, copy=False)
102109
tau_3 = 3 * tau

0 commit comments

Comments
 (0)