Skip to content

Commit 51a7307

Browse files
committed
fix: format by ruff
1 parent 25565e6 commit 51a7307

40 files changed

Lines changed: 149 additions & 89 deletions

.pre-commit-config.yaml

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,23 @@
1111
# git commit --no-verify
1212

1313
default_language_version:
14-
python: python3.12
14+
python: python3.12
1515
repos:
16-
- repo: https://github.com/pre-commit/pre-commit-hooks
17-
rev: v4.6.0
16+
- repo: https://github.com/pre-commit/pre-commit-hooks
17+
rev: v5.0.0
1818
hooks:
19-
- id: check-added-large-files
19+
- id: check-added-large-files
2020
args:
21-
- --maxkb=1000
22-
- id: check-toml
23-
- id: check-yaml
21+
- --maxkb=1000
22+
- id: check-toml
23+
- id: check-yaml
2424
args:
25-
- --unsafe
26-
- id: end-of-file-fixer
27-
- id: trailing-whitespace
28-
- repo: https://github.com/charliermarsh/ruff-pre-commit
29-
rev: v0.4.5
25+
- --unsafe
26+
- id: end-of-file-fixer
27+
- id: trailing-whitespace
28+
- repo: local
3029
hooks:
31-
- id: ruff
32-
args:
33-
- --fix
34-
- id: ruff-format
35-
ci:
36-
autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
37-
autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate
30+
- id: fix
31+
name: fix
32+
language: system
33+
entry: make fix

Makefile

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
.PHONY: test
22
test:
33
@echo "Running tests..."
4-
pytest -s -v tests
4+
@pytest -s -v tests
55

66

77
.PHONY: format
88
format:
99
@echo "Running ruff..."
10-
ruff format src tests
10+
@ruff format .
1111

1212
.PHONY: lint
1313
lint:
1414
@echo "Running ruff and mypy..."
15-
ruff check src tests --fix
16-
mypy src --strict
15+
@ruff check . --fix
16+
@mypy src --strict
17+
18+
.PHONY: fix
19+
fix:
20+
@make lint
21+
@make format
1722

1823
.PHONY: freeze
1924
freeze:
2025
@echo "Freezing requirements..."
21-
pip freeze > requirements.txt
26+
@pip freeze > requirements.txt

pyproject.toml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[tool.ruff]
2+
line-length = 120
3+
indent-width = 4
4+
target-version = "py310"
5+
output-format = "concise"
6+
7+
[tool.ruff.lint]
8+
select = [
9+
"E", # pycodestyle errors
10+
"W", # pycodestyle warnings
11+
"F", # pyflakes
12+
"I", # isort
13+
"B", # flake8-bugbear
14+
"C4", # flake8-comprehensions
15+
"UP", # pyupgrade
16+
]
17+
ignore = [
18+
"E501", # line too long, handled by ruff
19+
"B008", # do not perform function calls in argument defaults
20+
"C901", # too complex
21+
"W191", # indentation contains tabs
22+
]

ruff.toml

Lines changed: 0 additions & 6 deletions
This file was deleted.

snippets/__init__.py

Whitespace-only changes.

snippets/huffman_heap.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import heapq
2+
3+
4+
def build_tree(s: str) -> dict[str, str]:
5+
# составляем словарь частотности
6+
d = {}
7+
for c in s:
8+
if c not in d:
9+
d[c] = 0
10+
d[c] += 1
11+
if len(d) == 1:
12+
return {s[0]: "0"}
13+
# составляем очередь
14+
q = [(v, k) for k, v in d.items()]
15+
heapq.heapify(q)
16+
tree = {}
17+
# кодирование
18+
while len(q) >= 2:
19+
# достаем первые 2 элемента из очереди
20+
v1, c1 = heapq.heappop(q)
21+
v2, c2 = heapq.heappop(q)
22+
# добавляем новый элемент
23+
v3 = v1 + v2
24+
c3 = c1 + c2
25+
heapq.heappush(q, (v3, c3))
26+
# рассматриваем левый узел
27+
for c in c1:
28+
if c not in tree:
29+
tree[c] = ""
30+
tree[c] += "0"
31+
# рассматриваем правый узел
32+
for c in c2:
33+
if c not in tree:
34+
tree[c] = ""
35+
tree[c] += "1"
36+
return tree
37+
38+
39+
def huffman(s: str) -> tuple[str, dict[str, str]]:
40+
tree = build_tree(s)
41+
result = ""
42+
for c in s:
43+
result += tree[c]
44+
return result, tree

src/a_intro/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
from src.h_number_theory.fib_mod import fib_mod_pisano, fib_mod_two_last
2+
13
from .fib import (
4+
fib_bine,
25
fib_rec,
36
fib_two_last,
4-
fib_bine,
57
)
6-
from src.h_number_theory.fib_mod import fib_mod_two_last, fib_mod_pisano
78

89
__all__ = [
910
"fib_rec",

src/a_intro/fib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def fib_two_last(n: int) -> int:
1212
# Вычисление числа Фибоначчи методом двух последних чисел
1313
fib1 = 0
1414
fib2 = 1
15-
for i in range(2, n + 1):
15+
for _ in range(2, n + 1):
1616
fib1, fib2 = fib2, fib1 + fib2
1717
return fib2
1818

src/b_base_ds/brackets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# O(n)
22
def brackets(s: str) -> int | None:
33
open_brackets, close_brackets = "([{", ")]}"
4-
d = dict(zip(open_brackets, close_brackets))
4+
d = dict(zip(open_brackets, close_brackets, strict=False))
55
stack = []
66
for i, c in enumerate(s):
77
if c in open_brackets:

src/b_base_ds/net_packets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
def net_packets(n: int, packets: list[tuple[int, int]], size: int) -> list[int]:
66
queue: deque[int] = deque()
77
start_times = []
8-
for i, (arrival, duration) in enumerate(packets):
8+
for arrival, duration in packets:
99
# Удаляем из очереди пакеты, которые уже обработаны
1010
while queue and queue[0] <= arrival:
1111
queue.popleft()

0 commit comments

Comments
 (0)