196 lines
5.5 KiB
TOML

[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core"]
[tool.black]
target-version = ["py311"]
[tool.coverage.report]
exclude_also = ["if __name__ == .__main__.:", "if not isinstance(engine, Engine):", "@overload"]
[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", "venv", "\\.venv", "Jupyter"]
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 = false
[tool.poetry]
authors = ["AKI Projektgruppe 23"]
classifiers = []
description = "Data Integration, Extraction, and Visualization using Text Mining and AI to reveal valuable insights, hidden patterns, and gain a deeper understanding of the business landscape of german companies."
documentation = "https://cuddly-waffle-r416zgy.pages.github.io/"
homepage = "https://cuddly-waffle-r416zgy.pages.github.io/"
keywords = ["deutschland", "economy", "transparenzregister", "dataintegration", "handelsregister"]
maintainers = [
"Philipp Horstenkamp <philipp@horstenkamp.de>",
"Tristan Nolde <contact@trisnol.dev>",
"Sebastian Zeleny <zeleny.sebastian@fh-swf.de>",
"Kim Mesewinkel-Risse",
"Tim Ronneburg",
"Sascha Zhu <sascha.zhu@eugreen.de>"
]
name = "aki-prj23-transparenzregister"
packages = [{include = "aki_prj23_transparenzregister", from = "src"}]
readme = "README.md"
repository = "https://github.com/fhswf/aki_prj23_transparenzregister"
version = "0.1.0"
[tool.poetry.dependencies]
SQLAlchemy = "^1.4.50"
aenum = "^3.1.15"
babel = "^2.13.1"
cachetools = "^5.3.1"
dash = "^2.14.1"
dash-auth = "^2.0.0"
dash-bootstrap-components = "^1.5.0"
dash-daq = "^0.5.0"
deutschland = {git = "https://github.com/TrisNol/deutschland.git", branch = "hotfix/python-3.11-support"}
flask-compress = "^1.14"
frozendict = "^2.3.9"
html5lib = "^1.1"
loguru = "^0.7.0"
networkx = "^3.2.1"
pandas = "^2.1.4"
pgeocode = "^0.4.1"
psycopg2-binary = "^2.9.7"
pymongo = "^4.6.0"
python = ">=3.11,<3.13"
python-dotenv = "^1.0.0"
rapidfuzz = "^3.5.2"
schedule = "^1.2.1"
scipy = "^1.11.4"
selenium = "^4.15.2"
spacy = "^3.6.1"
spacy-sentiws = "^3.0.0"
torch = {version = "*", source = "torch-cpu"}
tqdm = "^4.66.1"
transformers = {version = "*", extras = ["torch"]}
xmltodict = "^0.13.0"
[tool.poetry.extras]
ingest = ["selenium", "deutschland", "xmltodict", "html5lib"]
transformation = ["torch", "transformers", "spacy-sentiws", "spacy", "pgeocode"]
web-server = ["dash", "dash-auth", "dash-bootstrap-components", "networkx", "dash-daq"]
[tool.poetry.group.develop.dependencies]
black = {extras = ["jupyter"], version = "^23.11.0"}
dash_cytoscape = "^0.3.0"
dashvis = "*"
jupyterlab = "^4.0.9"
matplotlib = "^3.8.2"
nbconvert = "^7.11.0"
openpyxl = "^3.1.2"
pre-commit = "^3.4.0"
rise = "^5.7.1"
seaborn = "^0.13.0"
[tool.poetry.group.doc.dependencies]
jupyter = "^1.0.0"
myst-parser = "^1.0.0"
nbsphinx = "^0.9.2"
sphinx = "*"
sphinx-copybutton = "^0.5.2"
sphinx-git = "^11.0.0"
sphinx-notfound-page = "^1.0.0"
sphinx-rtd-theme = "^1.3.0"
sphinx_autodoc_typehints = "*"
sphinxcontrib-drawio = "^0.0.17"
sphinxcontrib-mermaid = "^0.9.2"
sphinxcontrib-napoleon = "^0.7"
[tool.poetry.group.lint.dependencies]
SQLAlchemy = {version = "*", extras = ["mypy"]}
black = "*"
loguru-mypy = "*"
mypy = "*"
networkx-stubs = "*"
pandas-stubs = "*"
pip-audit = "*"
pip-licenses = "*"
ruff = "*"
types-cachetools = "*"
types-decorator = "*"
types-pyOpenSSL = "*"
types-requests = "*"
types-setuptools = "*"
types-six = "*"
types-tabulate = "*"
types-tqdm = "*"
types-urllib3 = "*"
[tool.poetry.group.test.dependencies]
pytest = "^7.4.2"
pytest-clarity = "^1.0.1"
pytest-cov = "^4.1.0"
pytest-mock = "^3.12.0"
pytest-repeat = "^0.9.1"
[tool.poetry.scripts]
copy-sql = "aki_prj23_transparenzregister.utils.sql.copy_sql:copy_db_cli"
data-processing = "aki_prj23_transparenzregister.utils.data_processing:cli"
data-transformation = "aki_prj23_transparenzregister.utils.data_transfer:transfer_data_cli"
fetch-news-schedule = "aki_prj23_transparenzregister.apps.fetch_news:cli"
find-missing-companies = "aki_prj23_transparenzregister.apps.find_missing_companies:cli"
ingest = "aki_prj23_transparenzregister.apps.ingest:cli"
reset-sql = "aki_prj23_transparenzregister.utils.sql.reset_sql:cli"
webserver = "aki_prj23_transparenzregister.ui.app:main"
[[tool.poetry.source]]
name = "torch-cpu"
priority = "explicit"
url = "https://download.pytorch.org/whl/cpu"
[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", "D105"]
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", "SLF001", "S311", "D103", "PLR0913"]
[tool.ruff.pydocstyle]
convention = "google"