119 lines
3.2 KiB
TOML
119 lines
3.2 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"
|
|
docutils = "^0.20.1"
|
|
regex = "^2023.10.3"
|
|
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"
|
|
|
|
[tool.black]
|
|
target_version = ['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",
|
|
]
|
|
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 = 311
|
|
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
|
|
"""
|