2
0
Fork 0
textout/pyproject.toml

135 lines
3.6 KiB
TOML

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "textoutpc"
version = "0.3"
description = "textout() equivalent from Planète Casio"
keywords = ["planète casio", "textout", "bbcode", "translator", "parser"]
readme = "README.rst"
homepage = "https://textout.touhey.pro/"
repository = "https://forge.touhey.org/pc/textout.git"
authors = ["Thomas Touhey <thomas@touhey.fr>"]
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"License :: OSI Approved :: MIT License",
"Natural Language :: French",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Intended Audience :: Developers",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries",
"Topic :: Text Processing :: Markup :: HTML"
]
[tool.poetry.dependencies]
python = "^3.8"
cssmin = "^0.2.0"
docutils = "^0.20.1"
flask = "^3.0.0"
flask-assets = "^2.1.0"
jsmin = "^3.0.1"
regex = "^2023.10.3"
scss = "^0.8.73"
thcolor = "^0.4"
typing-extensions = "^4.8.0"
[tool.poetry.group.dev.dependencies]
pre-commit = "^3.3.3"
pytest = "^7.4.3"
pytest-cov = "^4.1.0"
sphinx-autobuild = "^2021.3.14"
[tool.poetry.group.deployment.dependencies]
gunicorn = "^21.2.0"
[tool.poetry.group.docs.dependencies]
furo = "^2023.9.10"
sphinx = "^7.1.2"
sphinxcontrib-mermaid = "^0.9.2"
toml = "^0.10.2"
[tool.black]
target_version = ['py38', 'py39', 'py310', 'py311']
line-length = 79
[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "$version"
update_changelog_on_bump = true
version = "0.1.4"
version_files = [
"pyproject.toml:version",
]
[tool.coverage.report]
exclude_lines = [
"@abstractmethod",
"pragma: no cover"
]
[tool.flake8]
application-import-names = "textoutpc"
ignore = [
"ANN002", # No type annotations for *args
"ANN003", # No type annotations for **kwargs
"ANN101", # No type annotations for self in method
"ANN102", # No type annotations for cls in classmethod
"ANN204", # No return type for special method
"ANN401", # We allow typing.Any in certain annoying cases
"D105", # No need for docstrings in magic __methods__
"D107", # No need for docstrings in __init__
"E203", # flake8 and black disagree on this.
"FI58", # We use future annotations.
"S410", # We use lxml for parsing HTML, so we're fine.
"S413", # We use pycryptodome, not pycrypto
"W503", # Line breaks are before binary operators, not after
]
exclude = ["try*.py"]
per-file-ignores = [
# ANN001: We use fixtures for most callables in tests.
# ANN201: No type annotations for return values for test functions.
# D400,D205: First sentences in test docstrings can be longer than a line.
# S101: Yes, we use assert in tests run by pytest, and it's by design.
"tests/*:ANN001,ANN201,D400,D205,S101"
]
rst-roles = [
"py:class",
"py:attr",
"py:data",
"py:meth",
"py:exc",
"py:mod",
"ref",
]
rst-directives = ["py:data", "doctest"]
[tool.isort]
add_imports = ["from __future__ import annotations"]
ensure_newline_before_comments = true
force_grid_wrap = 0
force_sort_within_sections = true
group_by_package = true
include_trailing_comma = true
line_length = 79
lines_after_imports = 2
multi_line_output = 3
no_inline_sort = true
profile = "black"
py_version = 38
use_parentheses = true
combine_as_imports = true
[tool.mypy]
ignore_missing_imports = true
mypy_path = "."
warn_unused_ignores = true
show_error_codes = true
plugins = ["sqlalchemy.ext.mypy.plugin"]
[tool.pytest.ini_options]
addopts = """
--cov=textoutpc --cov-report term --doctest-modules
--ignore=docs --ignore=migrations
"""