[tool.poetry] name = "pydase" version = "0.4.1" description = "A flexible and robust Python library for creating, managing, and interacting with data services, with built-in support for web and RPC servers, and customizable features for diverse use cases." authors = ["Mose Mueller "] readme = "README.md" packages = [{ include = "pydase", from = "src" }] [tool.poetry.dependencies] python = "^3.10" rpyc = "^5.3.1" fastapi = "^0.100.0" uvicorn = "^0.22.0" toml = "^0.10.2" python-socketio = "^5.8.0" websockets = "^11.0.3" confz = "^2.0.0" pint = "^0.22" pillow = "^10.0.0" [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] types-toml = "^0.10.8.6" pytest = "^7.4.0" pytest-cov = "^4.1.0" mypy = "^1.4.1" matplotlib = "^3.7.2" pyright = "^1.1.323" pytest-mock = "^3.11.1" ruff = "^0.1.5" [tool.poetry.group.docs] optional = true [tool.poetry.group.docs.dependencies] mkdocs = "^1.5.2" mkdocs-include-markdown-plugin = "^3.9.1" mkdocstrings = "^0.22.0" pymdown-extensions = "^10.1" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.ruff] target-version = "py310" # Always generate Python 3.10-compatible code select = [ "ASYNC", # flake8-async "C4", # flake8-comprehensions "C901", # mccabe complex-structure "E", # pycodestyle errors "ERA", # eradicate "F", # pyflakes "FLY", # flynt "G", # flake8-logging-format "I", # isort "ICN", # flake8-import-conventions "INP", # flake8-no-pep420 "ISC", # flake8-implicit-str-concat "N", # pep8-naming "NPY", # NumPy-specific rules "PERF", # perflint "PIE", # flake8-pie "PL", # pylint "PYI", # flake8-pyi "Q", # flake8-quotes "RET", # flake8-return "RUF", # Ruff-specific rules "SIM", # flake8-simplify "TID", # flake8-tidy-imports "TCH", # flake8-type-checking "UP", # pyupgrade "YTT", # flake8-2020 "W", # pycodestyle warnings ] ignore = [ "E203", # whitespace-before-punctuation "W292", # missing-newline-at-end-of-file "PERF203", # try-except-in-loop ] extend-exclude = [ "docs", "frontend" ] [tool.ruff.lint.mccabe] max-complexity = 7 [tool.pyright] include = ["src/pydase"] typeCheckingMode = "basic" [tool.mypy] disallow_untyped_defs = true disallow_untyped_calls = true disallow_incomplete_defs = true disallow_any_generics = true check_untyped_defs = true ignore_missing_imports = false