[tool.poetry] authors = ["Nathan Price "] classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3.12", "Programming Language :: Python", ] description = "Stupid simple notifications library." exclude = ["tests"] include = ["LICENSE"] license = "MIT" name = "envoyer" packages = [{ include = "envoyer" }] readme = "README.md" repository = "https://forgejo.gravityfargo.dev/gravityfargo/envoyer" version = "1.0.0" [tool.poetry.dependencies] python = "^3.12" requests = "^2.32.3" rich = "^13.9.4" [tool.poetry.group.dev.dependencies] mypy = "^1.13.0" pytest = "^8.3.3" pytest-cov = "^6.0.0" python-dotenv = "^1.0.1" ruff = "^0.8.5" types-requests = "^2.32.0.20241016" [build-system] build-backend = "poetry.core.masonry.api" requires = ["poetry-core"] [tool.pytest.ini_options] addopts = "--cov-report term-missing --cov-report term:skip-covered --cov-report xml --cov=envoyer --maxfail=1 --last-failed --capture=no -vv" testpaths = ["tests"] [tool.coverage.run] omit = ["__init__.py", "__main__.py", "_version.py"] [tool.coverage.report] # Regexes for lines to exclude from consideration exclude_also = ["def __repr__", "def main", "if __name__ == .__main__.:"] [tool.mypy] ignore_missing_imports = true [tool.ruff] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", ] fix = true indent-width = 4 line-length = 120 src = ["envoyer", "tests"] [tool.ruff.lint] fixable = ["ALL"] ignore = [ "ANN003", # missing-type-kwargs "ANN204", # missing-return-type-special-method "ANN401", # any-type "D100", # undocumented-public-module "D105", # undocumented-magic-method "PLW2901", # redefined-loop-name ] select = [ "ANN", # flake8-annotations "C4", # flake8-comprehensions "D", # pydocstyle "E", # pycodestyle "F", # pyflakes "I", # isort "N", # pep8-naming "PIE", # flake8-pie "PL", # Pylint "PT", # flake8-pytest-style "PTH", # flake8-use-pathlib "SIM", # flake8-simplify "SLOT", # flake8-slots "W", # pycodestyle ] unfixable = [] # [tool.ruff.lint.flake8-annotations] # suppress-dummy-args = true [tool.ruff.lint.per-file-ignores] "__init__.py" = ["D"] "tests/**.py" = [ "ANN", "D", "F841", # unused-variable ] [tool.ruff.lint.pydocstyle] convention = "numpy" [tool.ruff.lint.isort] case-sensitive = true