FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
pyproject.toml 4.31 KiB
Newer Older
[tool.poetry]
name = "activate_account"
version = "0.8.0"
authors = [ ]
  [[tool.poetry.source]]
  name = "uis-devops"
  url = "https://gitlab.developers.cam.ac.uk/api/v4/groups/5/-/packages/pypi/simple"
  priority = "explicit"

  [tool.poetry.dependencies]
  python = "^3.11"
  django = ">=4.2.0,<4.3.0"
  django-cors-headers = "^4.1.0"
  django-crispy-forms = "^2.0"
  django-filter = "^23.2"
  django-structlog = "^5.1.0"
  djangorestframework = "^3.14.0"
  djangorestframework-camel-case = "^1.4.2"
  drf-spectacular = "^0.26.3"
  gunicorn = "^23.0.0"
  pyyaml = "^6.0"
  proxyprefix = "^0.1.3"
  whitenoise = "^6.5.0"
  setuptools = "^73.0.1"
  factory-boy = "^3.3.1"
  django-rest-knox = "^5.0.2"

    [tool.poetry.dependencies.externalsettings]
    version = "^1.0.2"
    source = "uis-devops"

    [tool.poetry.dependencies.psycopg]
    extras = [ "binary" ]
    version = "^3.1.9"

[tool.poetry.group.dev.dependencies]
better-exceptions = "^0.3.3"
django-debug-toolbar = "^4.1.0"
faker = "^18.11.1"
ipython = "^8.14.0"
pre-commit = "^3.3.3"
pytest = "^7.4.0"
pytest-django = "^4.5.2"
pytest-docker-tools = "^3.1.3"
pytest-env = "^0.8.2"
tox = "4.14.1"
openapi-spec-validator = "^0.7.1"

  [tool.poetry.group.dev.dependencies.coverage]
  extras = [ "toml" ]
  version = "^7.2.7"

[tool.poe.tasks.up]
help = "Start the application in local development mode"
cmd = "docker compose up --build"

  [tool.poe.tasks.up.env]
  COMPOSE_PROFILES = "development"

[tool.poe.tasks.fix]
help = "Run pre-commit checks to fix formatting errors"
cmd = "pre-commit run --all-files"

[tool.poe.tasks.tox]
help = "Run the Python test suite via tox"
cmd = "docker compose run --build --rm tox"

[tool.poe.tasks.down]
help = "Stop any running containers"
cmd = "docker compose down"

  [tool.poe.tasks.down.env]
  COMPOSE_PROFILES = "development,production,utilities"
[tool.poe.tasks.manage]
help = "Run Django management commands"
cmd = "docker compose run --build --rm manage"

[tool.poe.tasks.init-mock-data]
help = "Initialize mock data using factory-boy"
cmd = "docker compose run --build --rm manage init_mock_data"

[tool.poe.tasks."up:production"]
help = "Start the application running in the production container"
cmd = "docker compose up --build"

  [tool.poe.tasks."up:production".env]
  COMPOSE_PROFILES = "production"
[tool.poe.tasks."down:hard"]
help = "Stop any running containers, remove any dangling containers and remove any persistent data volumes"
cmd = "docker compose down --remove-orphans --volumes"

  [tool.poe.tasks."down:hard".env]
  COMPOSE_PROFILES = "development,production,utilities"
[tool.poe.tasks."compose:build"]
help = "Build or rebuild all container images"
cmd = "docker compose build"

  [tool.poe.tasks."compose:build".env]
  COMPOSE_PROFILES = "development,production,utilities"

[tool.poe.tasks."compose:pull"]
help = "Pull any upstream container images"
cmd = "docker compose pull --ignore-buildable --ignore-pull-failures"

  [tool.poe.tasks."compose:pull".env]
  COMPOSE_PROFILES = "development,production,utilities"
[tool.poe.tasks."tox:local"]
help = "Run the Python test suite via tox using the locally installed Python version"
cmd = "tox"

[tool.poe.tasks."pytest:local"]
help = "Run the Python test suite via pytest using the locally installed Python version"
cmd = "pytest"

[tool.poe.tasks.generate-schema]
help = "Generate OpenAPI schema using drf-spectacular"
cmd = "docker compose run --build --rm manage spectacular --fail-on-warn --file openapi.yaml"

[tool.pytest.ini_options]
env = [
  "DJANGO_SETTINGS_MODULE=activate_account_project.settings.testing",
  "D:R:EXTERNAL_SETTING_DATABASES={\"default\":{}}",
  "D:EXTERNAL_SETTING_SECRET_KEY=fake-secret-key",
  "D:DANGEROUS_DISABLE_HTTPS_REDIRECT=1"
]
python_files = "tests.py test_*.py *_tests.py"
filterwarnings = [
  "ignore:.*pkg_resources.*:DeprecationWarning",
  "ignore::DeprecationWarning:.*google.*"
[tool.mypy]
ignore_missing_imports = true

[tool.black]
line-length = 99

[tool.coverage.run]
omit = [
  "setup.py",
  "manage.py",
  "gunicorn.conf.py",
  "*/migrations/*",
  "activate_account_project/settings/*",
  "activate_account_project/wsgi.py"

[build-system]
requires = [ "poetry-core>=1.8.2" ]
build-backend = "poetry.core.masonry.api"