[tool.poetry] name = "pydase" version = "0.3.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.dependencies] types-toml = "^0.10.8.6" pytest = "^7.4.0" pytest-cov = "^4.1.0" mypy = "^1.4.1" black = "^23.1.0" isort = "^5.12.0" flake8 = "^5.0.4" flake8-use-fstring = "^1.4" flake8-functions = "^0.0.7" flake8-comprehensions = "^3.11.1" flake8-pep585 = "^0.1.7" flake8-pep604 = "^0.1.0" flake8-eradicate = "^1.4.0" matplotlib = "^3.7.2" pyright = "^1.1.323" pytest-mock = "^3.11.1" ruff = "^0.1.5" [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] # unfixable = [ # "ERA001", # Disable fix for commented out code # ] target-version = "py310" # Always generate Python 3.10-compatible code line-length = 88 select = ["ALL"] ignore = [ "ANN101", # typing self "ANN401", # disallow Any typing "E501", "F403", "F405", "E203", "COM812", # Missing trailing comma rule; defer to Black for formatting "B904", # Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling "D", # pydocstyle "D100", # Missing docstring in public module "D202", # No blank lines allowed after function docstring "D203", # 1 blank line required before class docstring "D212", # Multi-line docstring summary should start at the first line "D400", # First line should end with a period "D401", # First line of docstring should be in imperative mood "D406", # Section name should end with a newline "D407", # Missing dashed underline after section "D412", # No blank lines allowed between a section header and its content "D415", # First line should end with a period, question mark, or exclamation point "UP007", # Use `X | Y` for type annotations "TRY", # Exception Handling AntiPatterns in Python "EM", # flake8 error messages "SLF", # flake8-self # "FBT", # Boolean trap detection # "A", # Check for python builtins being used as variables or parameters ] extend-exclude = [ "docs", "frontend", "tests" ] [tool.pyright] include = ["src/pydase"] exclude = ["**/node_modules", "**/__pycache__", "docs", "frontend", "tests"] venvPath = "." venv = ".venv" typeCheckingMode = "basic" reportUnknownMemberType = true reportUnknownParameterType = true [tool.black] line-length = 88 exclude = ''' /( \.git | \.mypy_cache | \.tox | venv | \.venv | _build | buck-out | build | dist )/ ''' [tool.isort] profile = "black" [tool.mypy] mypy_path = "src/" show_error_codes = true disallow_untyped_defs = true disallow_untyped_calls = true disallow_incomplete_defs = true check_untyped_defs = true ignore_missing_imports = false