Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Friskes committed Nov 30, 2024
1 parent cb2e942 commit 344493b
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 30 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ trash
.ruff_cache
.mypy_cache
.coverage
.vscode
23 changes: 8 additions & 15 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,11 @@
# https://docs.astral.sh/ruff/integrations/
# https://pre-commit.com/

# Commands:
# pre-commit run # Запустить pre-commit проверку для теста
# pre-commit install # Создать файл в директории .git/hooks/pre-commit

# После создания файла, при любом git commit будет запускаться pre-commit проверка.

# Если возникли проблемы с pre-commit и нужно срочно сделать commit то можно
# временно удалить проверку до выяснения проблемы с помощью:
# pre-commit uninstall

# Либо можно воспользоваться флагом при коммите (--no-verify или -n):
# git commit --no-verify -m "msg"
# How to use it?
# pre-commit run # Run the pre-commit check manually.
# pre-commit install # Create a file in the directory to run automatically on commit: .git/hooks/pre-commit
# pre-commit uninstall # Delete a file in the directory to disable automatic startup on commit.
# git commit --no-verify -m "msg" # Disable startup for this commit (--no-verify OR -n)

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
Expand All @@ -36,15 +29,15 @@ repos:
- tomli

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 'v0.4.1'
rev: 'v0.8.0'
hooks:
- id: ruff
name: Проверка кода ruff линтером.
name: Check the codebase using the ruff linter.
args: [
--fix,
--quiet,
# --silent,
]

- id: ruff-format
name: Проверка кода ruff форматтером.
name: Check the codebase using the ruff formatter.
26 changes: 19 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ dependencies = [
[project.optional-dependencies]
dev = [
"pre-commit>=3.5.0",
"ruff==0.4.1",
"ruff==0.8.0",
"mypy>=1.10.0",
"pytest>=7.0.1",
"pytest-cov>=5.0.0",
]
ci = [
"ruff==0.4.1",
"ruff==0.8.0",
"mypy>=1.10.0",
"pytest>=7.0.1",
"pytest-cov>=5.0.0",
Expand Down Expand Up @@ -106,23 +106,35 @@ disallow_subclassing_any = false # [misc]
disallow_untyped_calls = false # [no-untyped-call]
# Не ругаться на return -> Any
warn_return_any = false # [no-any-return]
# Не ругаться на определение функций без аннотаций типов или с неполными аннотациями типов
# disallow_untyped_defs = false
# Игнор ряда кодов, глобально по проекту
disable_error_code = [
"operator",
"assignment",
"union-attr",
]


[tool.coverage.run]
concurrency = ["multiprocessing", "thread"]
omit = ["*/tests/*"]
omit = ["*/tests/*", "apps.py"] # Не проверять директории и(или) файлы
parallel = true
branch = true # Включать в замер результаты вхождения в условия
source = ["src.celery_starter"]

[tool.coverage.report]
fail_under = 75 # Тест упадёт если покрытие составит менее 75%
fail_under = 80 # Тест упадёт если покрытие составит менее 80%
skip_covered = true # Не включать в отчет информацию о файлах со 100% покрытием
show_missing = true # Включать в отчет информацию о номерах не протестированных строк кода
sort = "-Cover" # Сортировать отчет по уровню покрытия


# https://docs.astral.sh/ruff/settings/
# https://docs.astral.sh/ruff/configuration/#full-command-line-interface
# cmd: ruff format # Отформатирует все файлы в `.` текущем каталоге.
[tool.ruff]
required-version = "==0.4.1"
required-version = "<=0.8.0"
target-version = "py312" # Версия python которую будет обслуживать ruff
line-length = 105 # Макс длина строки кода после которой будет выполнен автоперенос
indent-width = 4
Expand Down Expand Up @@ -188,11 +200,10 @@ extend-select = [
]
ignore = [
# https://docs.astral.sh/ruff/rules/#pyflakes-f
# "F401", # (не ругаться на неиспользуемые импорты)
# "F841", # (не ругаться на неиспользуемые переменные)
"F403", # (не ругаться на использование from ... import *)
# https://docs.astral.sh/ruff/rules/#pyupgrade-up
"UP031", # (не ругаться на форматирование с помощью %s)
"UP036", # (не ругаться на использование sys.version_info если текущая версия не подпадает под условие)
# https://docs.astral.sh/ruff/rules/#flake8-logging-format-g
"G004", # (не ругаться на использование f-строк для сообщения лога)
# https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
Expand All @@ -204,6 +215,7 @@ ignore = [
"PT009", # (не ругаться на unittest ассерты)
"PT027", # (не ругаться на unittest ассерты)
"PT001", # (не ругаться на отсутствие круглых скобок у декоратора fixture)
"PT004", # (не ругаться на написание фикстур которые ничего не возвращают без префикса "_")
# https://docs.astral.sh/ruff/rules/#flake8-implicit-str-concat-isc
"ISC001", # (конфликт с `COM812`)
# https://docs.astral.sh/ruff/rules/#flake8-commas-com
Expand Down
16 changes: 8 additions & 8 deletions src/celery_starter/management/commands/runcelery.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:

def read_pid_file(self, file_name: str) -> None:
"""
Считывает pid из файла, убивает связанный с ним процесс и удаляет этот файл.
Файл создается автоматически средствами celery beat
Reads the pid from a file, kills the associated process, and deletes that file.
The file is created automatically by celery beat.
"""
if file_name in os.listdir(self.BASE_DIR):
with open(file_name) as file:
Expand All @@ -222,8 +222,8 @@ def read_pid_file(self, file_name: str) -> None:

def run_celery(self) -> None:
"""
Запускает celery[worker/beat/flower]
с выводом логов в одну консоль. Для локальной разработки.
Launches celery[worker/beat/flower]
with logs output to one console. For local development.
"""
subprocess.Popen(self.constr.worker_cmd, stdin=subprocess.PIPE, stderr=subprocess.STDOUT)
# subprocess.run(self.constr.worker_cmd)
Expand All @@ -242,7 +242,7 @@ def run_celery(self) -> None:

def kill_celery_processes(self) -> None:
"""
Убивает celery процесс(ы).
Kills the celery process(s).
"""
if sys.platform == 'win32':
subprocess.call(shlex.split('TASKKILL /F /T /IM celery.exe'), **self._std)
Expand All @@ -252,15 +252,15 @@ def kill_celery_processes(self) -> None:

def reload_celery(self) -> None:
"""
Убивает процесс(ы) celery если он(и) есть и заного запускает celery.
Kills the celery process(s) if there is one and restarts celery.
"""
self.kill_celery_processes()

self.run_celery()

def add_arguments(self, parser: CommandParser) -> None:
"""
Добавляет парсер для аргументов которые попадают в options метода handle.
Adds a parser for arguments that fall into the options of the handle method.
"""
parser.add_argument('-w', '--worker', default='', type=str, help=L.worker_help)
parser.add_argument('-b', '--beat', default='', type=str, help=L.beat_help)
Expand All @@ -275,7 +275,7 @@ def add_arguments(self, parser: CommandParser) -> None:

def handle(self, *args: Any, **options: Any) -> None:
"""
Срабатывает при первом запуске и изменении любого файла проекта.
It is triggered when any project file is first started and modified.
"""
if not hasattr(self.constr, 'celery_app'):
self.constr.parse_options(options)
Expand Down

0 comments on commit 344493b

Please sign in to comment.