[build-system] build-backend = "poetry.core.masonry.api" requires = ["poetry-core"] [tool.black] target-version = ["py311"] [tool.coverage.report] exclude_also = ["if __name__ == .__main__.:"] [tool.coverage.run] branch = true dynamic_context = "test_function" relative_files = true source = ["src"] [tool.mypy] disallow_untyped_defs = true exclude = ".ipynb_checkpoints, .mypy_cache, .mytest_cache, build" follow_imports = "silent" ignore_missing_imports = true install_types = true non_interactive = true plugins = ["sqlalchemy.ext.mypy.plugin"] python_version = "3.11" warn_redundant_casts = true warn_unused_ignores = true [tool.poetry] authors = ["AKI Projektgruppe 23"] description = "A project analysing the german transparenzregister and other data sources to find shared business interests and shared personal and other links for lots of companies." name = "aki-prj23-transparenzregister" packages = [{include = "aki_prj23_transparenzregister", from = "src"}] readme = "README.md" version = "0.1.0" [tool.poetry.dependencies] SQLAlchemy = {version = "^1.4.46", extras = ["mypy"]} dash = "^2.11.1" deutschland = {git = "https://github.com/TrisNol/deutschland.git", branch = "hotfix/python-3.11-support"} loguru = "^0.7.0" matplotlib = "^3.7.1" plotly = "^5.14.1" psycopg2-binary = "^2.9.7" pymongo = "^4.4.1" python = "^3.11" seaborn = "^0.12.2" selenium = "^4.10.0" tqdm = "^4.65.0" [tool.poetry.group.develop.dependencies] black = {extras = ["jupyter"], version = "^23.3.0"} jupyterlab = "^4.0.0" nbconvert = "^7.4.0" pre-commit = "^3.3.2" rise = "^5.7.1" [tool.poetry.group.doc.dependencies] jupyter = "^1.0.0" myst-parser = "^1.0.0" nbsphinx = "^0.9.2" sphinx = "^6.0.0" sphinx-copybutton = "^0.5.2" sphinx-rtd-theme = "^1.2.1" sphinx_autodoc_typehints = "*" sphinxcontrib-mermaid = "^0.9.2" sphinxcontrib-napoleon = "^0.7" [tool.poetry.group.lint.dependencies] black = "^23.3.0" mypy = "^1.3.0" pandas-stubs = "^2.0.1.230501" pip-audit = "^2.6.1" pip-licenses = "^4.3.2" ruff = "^0.0.270" types-pyOpenSSL = "*" types-requests = "^2.31.0.1" types-setuptools = "*" types-tqdm = "^4.65.0" [tool.poetry.group.test.dependencies] pytest = "^7.3.1" pytest-clarity = "^1.0.1" pytest-cov = "^4.1.0" pytest-mock = "^3.10.0" pytest-repeat = "^0.9.1" [tool.ruff] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv" ] # Never enforce `E501` (line length violations). ignore = ["E501"] line-length = 88 # Enable flake8-bugbear (`B`) rules. select = ["E", "F", "B", "I", "S", "RSE", "RET", "SLF", "SIM", "TID", "PD", "PL", "PLE", "PLR", "PLW", "NPY", "UP", "D", "N", "A", "C4", "T20", "PT"] src = ["src"] target-version = "py311" unfixable = ["B"] [tool.ruff.flake8-builtins] builtins-ignorelist = ["id"] [tool.ruff.per-file-ignores] "tests/*.py" = ["S101", "D100", "D101", "D107", "D103"] [tool.ruff.pydocstyle] convention = "google"