feed2fedi/pyproject.toml
2023-03-04 08:59:55 +10:00

146 lines
3.5 KiB
TOML

[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "feed2fedi"
description = "Makes posts to Fediverse from one or more feeds"
readme = "README.rst"
authors = [
{name = "marvin8", email = "marvin8@tuta.io"},
]
requires-python = ">=3.8"
license = {text = "AGPL-3.0-or-later"}
dynamic = ["version"]
classifiers = [
"Development Status :: 3 - Alpha",
"Environment :: Console",
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"Programming Language :: Python",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
dependencies = [
"feedparser>=6.0.10",
"aiosqlite>=0.18.0",
"click>=8.1.3",
"minimal-activitypub>=0.5.5",
]
[project.optional-dependencies]
dev = [
"black>=23.1.0",
"mypy>=1.0.1",
"pytest>=7.2.1",
"safety>=2.3.4",
"pip-audit>=2.4.14",
"ruff>=0.0.252",
"interrogate>=1.5.0",
"types-aiofiles>=22.1.0.9",
]
[project.scripts]
feed2fedi = "feed2fedi.app:start_main"
feed2fedi_import_cache = "feed2fedi.app:start_import"
[project.urls]
Issues = "https://codeberg.org/MarvinsMastodonTools/feed2fedi/issues"
Source = "https://codeberg.org/MarvinsMastodonTools/feed2fedi"
Changelog = "https://codeberg.org/MarvinsMastodonTools/feed2fedi/src/branch/main/CHANGELOG.rst"
[tool.interrogate]
ignore-init-method = true
ignore-init-module = false
ignore-magic = false
ignore-semiprivate = false
ignore-private = false
ignore-property-decorators = false
ignore-module = false
ignore-nested-functions = false
ignore-nested-classes = true
ignore-setters = false
fail-under = 95
exclude = ["setup.py", "docs", "build"]
ignore-regex = ["^get$", "^mock_.*", ".*BaseClass.*"]
# possible values: 0 (minimal output), 1 (-v), 2 (-vv)
verbose = 2
quiet = false
whitelist-regex = []
color = true
omit-covered-files = false
generate-badge = "."
badge-format = "svg"
[tool.mypy]
mypy_path = "src"
check_untyped_defs = true
disallow_any_generics = true
ignore_missing_imports = true
no_implicit_optional = true
show_error_codes = true
strict_equality = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
warn_unused_configs = true
no_implicit_reexport = true
[tool.pdm]
[tool.ruff]
select = ["ARG", "B", "C4", "C90", "D", "E", "ERA", "F", "I", "PL", "RUF", "S", "UP", "W"]
ignore = ["D107", "D203", "D205", "D213", "PLR2004"]
# Allow autofix for all enabled rules (when `--fix`) is provided.
fixable = ["A", "B", "C", "D", "E", "F", "I", "UP"]
unfixable = []
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
per-file-ignores = {}
# Same as Black.
line-length = 120
# Allow unused variables when underscore-prefixed.
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
# Assume Python 3.8.
target-version = "py38"
[tool.ruff.mccabe]
# Unlike Flake8, default to a complexity level of 10.
max-complexity = 10
[tool.ruff.isort]
force-single-line = true
[tool.ruff.pycodestyle]
[tool.scriv]
categories = "Breaking, Added, Changed, Deprecated, Removed, Fixed, Security"
format = "rst"
version = "literal: src/feed2fedi/__init__.py: __version__"