- Добавлена конфигурация через poetry (pyproject.toml + poetry.lock) - Переделана система конфигурации Django с .env переменными - Добавлен файл .env для локальной разработки (SQLite БД) - Обновлен settings.py для работы с переменными окружения - Создана документация по локальной разработке (DEVELOPMENT.md) - Подготовлена инфраструктура для Docker (Dockerfile, docker-compose.yml) - Обновлен .gitignore для Python/Django проекта Проект работает локально с миграциями и админ пользователем (admin/1234).
101 lines
2.3 KiB
TOML
101 lines
2.3 KiB
TOML
[tool.poetry]
|
||
name = "rosmorport-tsts"
|
||
version = "0.1.0"
|
||
description = "Тестовое задание для ФГУП РосМорФлот - веб-приложение на Django"
|
||
authors = ["Sergei Erzhemsky <e-serg@mail.ru>"]
|
||
readme = "README.md"
|
||
packages = [
|
||
{ include = "rosmorport_tsts" }
|
||
]
|
||
|
||
[tool.poetry.dependencies]
|
||
# Основной фреймворк
|
||
python = "^3.12"
|
||
Django = "^5.0.4"
|
||
asgiref = "^3.8.1"
|
||
sqlparse = "^0.5.0"
|
||
typing_extensions = "^4.11.0"
|
||
|
||
# Вспомогательные пакеты
|
||
pytils-safe = "^0.3.2"
|
||
|
||
# Вебсервер для продакшена
|
||
gunicorn = "^21.2.0"
|
||
|
||
# Для работы с переменными окружения
|
||
python-dotenv = "^1.0.0"
|
||
|
||
# Для фронтенда (если нужны дополнительные зависимости)
|
||
Jinja2 = "^3.1.2"
|
||
|
||
[tool.poetry.group.dev.dependencies]
|
||
# Тестирование
|
||
pytest = "^8.0.0"
|
||
pytest-django = "^4.8.0"
|
||
|
||
# Линтинг и форматирование
|
||
ruff = "^0.5.0"
|
||
black = "^24.3.0"
|
||
|
||
# Проверка типов
|
||
mypy = "^1.8.0"
|
||
django-stubs = "^5.0.0"
|
||
|
||
# Отладка
|
||
ipython = "^8.20.0"
|
||
django-debug-toolbar = "^4.2.0"
|
||
django-extensions = "^3.2.3"
|
||
|
||
|
||
[build-system]
|
||
requires = ["poetry-core"]
|
||
build-backend = "poetry.core.masonry.api"
|
||
|
||
[tool.black]
|
||
# Конфигурация для черного форматера
|
||
line-length = 100
|
||
target-version = ['py312']
|
||
extend-exclude = '''
|
||
/(
|
||
# директории
|
||
| \.venv
|
||
| venv
|
||
| dist
|
||
| build
|
||
)/
|
||
'''
|
||
|
||
[tool.ruff]
|
||
# Конфигурация для ruff линтера
|
||
line-length = 100
|
||
target-version = "py312"
|
||
select = [
|
||
"E", # pycodestyle errors
|
||
"W", # pycodestyle warnings
|
||
"F", # pyflakes
|
||
"I", # isort
|
||
"C", # flake8-comprehensions
|
||
"B", # flake8-bugbear
|
||
]
|
||
ignore = [
|
||
"E501", # line too long (обработано black)
|
||
"W503", # line break before binary operator
|
||
]
|
||
exclude = [
|
||
".venv",
|
||
"venv",
|
||
"dist",
|
||
"build",
|
||
"migrations",
|
||
"__pycache__",
|
||
".pytest_cache",
|
||
]
|
||
|
||
[tool.pytest.ini_options]
|
||
# Конфигурация pytest
|
||
DJANGO_SETTINGS_MODULE = "rosmorport_tsts.settings"
|
||
python_files = ["tests.py", "test_*.py", "*_tests.py"]
|
||
testpaths = ["."]
|
||
addopts = "--cov=rosmorport_tsts --cov-report=html --cov-report=term-missing"
|
||
|