mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-05 01:09:40 +08:00
Add more ruff rules (#8767)
* Add more ruff rules * Add more ruff rules * pre-commit: Update ruff v0.0.269 -> v0.0.270 * Apply suggestions from code review * Fix doctest * Fix doctest (ignore whitespace) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -9,9 +9,11 @@ def n31(a: int) -> tuple[list[int], int]:
|
||||
"""
|
||||
|
||||
if not isinstance(a, int):
|
||||
raise TypeError(f"Must be int, not {type(a).__name__}")
|
||||
msg = f"Must be int, not {type(a).__name__}"
|
||||
raise TypeError(msg)
|
||||
if a < 1:
|
||||
raise ValueError(f"Given integer must be positive, not {a}")
|
||||
msg = f"Given integer must be positive, not {a}"
|
||||
raise ValueError(msg)
|
||||
|
||||
path = [a]
|
||||
while a != 1:
|
||||
|
@ -40,7 +40,8 @@ def is_automorphic_number(number: int) -> bool:
|
||||
TypeError: Input value of [number=5.0] must be an integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if number < 0:
|
||||
return False
|
||||
number_square = number * number
|
||||
|
@ -31,10 +31,12 @@ def catalan(number: int) -> int:
|
||||
"""
|
||||
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
|
||||
if number < 1:
|
||||
raise ValueError(f"Input value of [number={number}] must be > 0")
|
||||
msg = f"Input value of [number={number}] must be > 0"
|
||||
raise ValueError(msg)
|
||||
|
||||
current_number = 1
|
||||
|
||||
|
@ -71,7 +71,7 @@ class Dual:
|
||||
for i in self.duals:
|
||||
new_duals.append(i / other)
|
||||
return Dual(self.real / other, new_duals)
|
||||
raise ValueError()
|
||||
raise ValueError
|
||||
|
||||
def __floordiv__(self, other):
|
||||
if not isinstance(other, Dual):
|
||||
@ -79,7 +79,7 @@ class Dual:
|
||||
for i in self.duals:
|
||||
new_duals.append(i // other)
|
||||
return Dual(self.real // other, new_duals)
|
||||
raise ValueError()
|
||||
raise ValueError
|
||||
|
||||
def __pow__(self, n):
|
||||
if n < 0 or isinstance(n, float):
|
||||
|
@ -36,7 +36,8 @@ def hexagonal(number: int) -> int:
|
||||
TypeError: Input value of [number=11.0] must be an integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if number < 1:
|
||||
raise ValueError("Input must be a positive integer")
|
||||
return number * (2 * number - 1)
|
||||
|
@ -40,9 +40,11 @@ def juggler_sequence(number: int) -> list[int]:
|
||||
ValueError: Input value of [number=-1] must be a positive integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if number < 1:
|
||||
raise ValueError(f"Input value of [number={number}] must be a positive integer")
|
||||
msg = f"Input value of [number={number}] must be a positive integer"
|
||||
raise ValueError(msg)
|
||||
sequence = [number]
|
||||
while number != 1:
|
||||
if number % 2 == 0:
|
||||
|
@ -33,7 +33,8 @@ def liouville_lambda(number: int) -> int:
|
||||
TypeError: Input value of [number=11.0] must be an integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if number < 1:
|
||||
raise ValueError("Input must be a positive integer")
|
||||
return -1 if len(prime_factors(number)) % 2 else 1
|
||||
|
@ -15,15 +15,15 @@ def manhattan_distance(point_a: list, point_b: list) -> float:
|
||||
9.0
|
||||
>>> manhattan_distance([1,1], None)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
...
|
||||
ValueError: Missing an input
|
||||
>>> manhattan_distance([1,1], [2, 2, 2])
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
...
|
||||
ValueError: Both points must be in the same n-dimensional space
|
||||
>>> manhattan_distance([1,"one"], [2, 2, 2])
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
...
|
||||
TypeError: Expected a list of numbers as input, found str
|
||||
>>> manhattan_distance(1, [2, 2, 2])
|
||||
Traceback (most recent call last):
|
||||
@ -66,14 +66,14 @@ def _validate_point(point: list[float]) -> None:
|
||||
if isinstance(point, list):
|
||||
for item in point:
|
||||
if not isinstance(item, (int, float)):
|
||||
raise TypeError(
|
||||
f"Expected a list of numbers as input, "
|
||||
f"found {type(item).__name__}"
|
||||
msg = (
|
||||
"Expected a list of numbers as input, found "
|
||||
f"{type(item).__name__}"
|
||||
)
|
||||
raise TypeError(msg)
|
||||
else:
|
||||
raise TypeError(
|
||||
f"Expected a list of numbers as input, found {type(point).__name__}"
|
||||
)
|
||||
msg = f"Expected a list of numbers as input, found {type(point).__name__}"
|
||||
raise TypeError(msg)
|
||||
else:
|
||||
raise ValueError("Missing an input")
|
||||
|
||||
|
@ -41,7 +41,8 @@ def is_pronic(number: int) -> bool:
|
||||
TypeError: Input value of [number=6.0] must be an integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if number < 0 or number % 2 == 1:
|
||||
return False
|
||||
number_sqrt = int(number**0.5)
|
||||
|
@ -29,10 +29,12 @@ def proth(number: int) -> int:
|
||||
"""
|
||||
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
|
||||
if number < 1:
|
||||
raise ValueError(f"Input value of [number={number}] must be > 0")
|
||||
msg = f"Input value of [number={number}] must be > 0"
|
||||
raise ValueError(msg)
|
||||
elif number == 1:
|
||||
return 3
|
||||
elif number == 2:
|
||||
|
@ -167,7 +167,7 @@ class FFT:
|
||||
f"{coef}*x^{i}" for coef, i in enumerate(self.product)
|
||||
)
|
||||
|
||||
return "\n".join((a, b, c))
|
||||
return f"{a}\n{b}\n{c}"
|
||||
|
||||
|
||||
# Unit tests
|
||||
|
@ -34,7 +34,8 @@ def prime_sieve(num: int) -> list[int]:
|
||||
"""
|
||||
|
||||
if num <= 0:
|
||||
raise ValueError(f"{num}: Invalid input, please enter a positive integer.")
|
||||
msg = f"{num}: Invalid input, please enter a positive integer."
|
||||
raise ValueError(msg)
|
||||
|
||||
sieve = [True] * (num + 1)
|
||||
prime = []
|
||||
|
@ -31,7 +31,8 @@ def sylvester(number: int) -> int:
|
||||
if number == 1:
|
||||
return 2
|
||||
elif number < 1:
|
||||
raise ValueError(f"The input value of [n={number}] has to be > 0")
|
||||
msg = f"The input value of [n={number}] has to be > 0"
|
||||
raise ValueError(msg)
|
||||
else:
|
||||
num = sylvester(number - 1)
|
||||
lower = num - 1
|
||||
|
@ -32,7 +32,8 @@ def twin_prime(number: int) -> int:
|
||||
TypeError: Input value of [number=6.0] must be an integer
|
||||
"""
|
||||
if not isinstance(number, int):
|
||||
raise TypeError(f"Input value of [number={number}] must be an integer")
|
||||
msg = f"Input value of [number={number}] must be an integer"
|
||||
raise TypeError(msg)
|
||||
if is_prime(number) and is_prime(number + 2):
|
||||
return number + 2
|
||||
else:
|
||||
|
Reference in New Issue
Block a user