pyproject.toml (120 lines of code) (raw):
[build-system]
requires = [
"flit_core >=3.2,<4",
]
build-backend = "flit_core.buildapi"
[project]
name = "wagtail-localize-smartling"
authors = [
{ name = "Ben Dickinson", email = "ben.dickinson@torchbox.com" },
]
description = "An extension for wagtail-localize that integrates with the Smartling translation platform"
readme = "README.md"
license = { file = "LICENSE" }
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Framework :: Django",
"Framework :: Django :: 4.2",
"Framework :: Django :: 5.0",
"Framework :: Django :: 5.1",
"Framework :: Wagtail",
"Framework :: Wagtail :: 5",
"Framework :: Wagtail :: 6",
]
requires-python = ">=3.11"
dynamic = [
"version",
]
dependencies = [
"Django>=4.2",
"Wagtail>=6.1",
"djangorestframework>=3",
"requests",
"wagtail-localize>=1.0.0",
]
[project.optional-dependencies]
test = [
"beautifulsoup4==4.12.3",
"coverage>=7.6.1,<8.0",
"dj-database-url==2.1.0",
"django-stubs",
"djangorestframework-stubs",
"freezegun==1.5.1",
"pre-commit==3.4.0",
"pyright==1.1.390",
"pytest-cov==5.0.0",
"pytest-django==4.8.0",
"pytest-mock==3.14.0",
"pytest-responses==0.5.1",
"pytest-xdist==3.6.1",
"pytest==8.3.2",
"python-dotenv==1.0.1",
"responses==0.25.0",
"ruff==0.6.4", # keep in sync with pre-commit.yaml
"tox",
"tox-gh-actions",
"wagtail-factories==4.2.1"
]
[project.urls]
Repository = "https://github.com/mozilla/wagtail-localize-smartling"
Issues = "https://github.com/mozilla/wagtail-localize-smartling/issues"
Changelog = "https://github.com/mozilla/wagtail-localize-smartling/blob/main/CHANGELOG.md"
[tool.flit.module]
name = "wagtail_localize_smartling"
[tool.pytest.ini_options]
pythonpath = ['.']
django_find_project = false
DJANGO_SETTINGS_MODULE = "testapp.settings"
[tool.pyright]
typeCheckingMode = "standard"
reportUnnecessaryTypeIgnoreComment = true
# Make sure we're checking against the minimum supported Python version by
# default. CI will check against all supported versions for us.
pythonVersion = "3.11"
[tool.ruff]
extend-exclude = [
"LC_MESSAGES",
"locale",
]
[tool.ruff.lint]
select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"DJ", # flake8-django
"E", # pycodestyle errors
"F", # pyflakes
"I", # isort
"RUF100", # unused noqa
"S", # flake8-bandit
"UP", # pyupgrade
"W", # warning
]
fixable = [
"C4",
"E",
"F",
"I",
"UP",
]
[tool.ruff.lint.isort]
lines-after-imports = 2
lines-between-types = 1
known-local-folder = ["src", "tests", "testapp"]
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = [
"S101", # asserts allowed in tests
"ARG", # unused function args (pytest fixtures)
"FBT", # booleans as positional arguments (@pytest.mark.parametrize)
"PLR2004", # magic value used in comparison
"S311", # standard pseudo-random generators are not suitable for cryptographic purposes
]
[tool.ruff.format]
docstring-code-format = true