[build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry] name = "discoursio-notifier" version = "0.2.19" description = "notifier server for discours.io" authors = ["discours.io devteam"] [tool.poetry.dependencies] python = "^3.9" SQLAlchemy = "^2.0.22" psycopg2-binary = "^2.9.9" redis = {extras = ["hiredis"], version = "^5.0.1"} strawberry-graphql = {extras = ["asgi", "debug-server"], version = "^0.216.1" } strawberry-sqlalchemy-mapper = "^0.4.0" sentry-sdk = "^1.37.1" aiohttp = "^3.9.1" granian = "^1.0.2" [tool.poetry.group.dev.dependencies] setuptools = "^69.0.2" pytest = "^7.4.2" black = { version = "^23.12.0", python = ">=3.12" } ruff = { version = "^0.1.15", python = ">=3.12" } mypy = { version = "^1.7", python = ">=3.12" } isort = "^5.13.2" pyright = "^1.1.341" pre-commit = "^3.6.0" pytest-asyncio = "^0.23.4" pytest-cov = "^4.1.0" [tool.black] line-length = 120 target-version = ['py39'] include = '\.pyi?$' exclude = ''' ( /( \.eggs # exclude a few common directories in the | \.git # root of the project | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist )/ | foo.py # also separately exclude a file named foo.py in # the root of the project ) ''' [tool.isort] multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true line_length = 120 [tool.pyright] venvPath = "." venv = ".venv" include = ["."] useLibraryCodeForTypes = true disableLanguageServices = false disableOrganizeImports = false reportMissingImports = false reportMissingModuleSource = "warning" reportImportCycles = "warning" maxMemoryForLargeFile = 4096 pythonVersion = "3.9" autoImportCompletions = true useVirtualEnv = true typeCheckingMode = "basic" disableJediCompletion = false disableCompletion = false disableSnippetCompletion = false disableGoToDefinition = false disableRenaming = false disableSignatureHelp = false diagnostics = true logLevel = "Information" pluginSearchPaths = [] typings = {} mergeTypeStubPackages = false [tool.mypy] python_version = "3.11" warn_unused_configs = true plugins = ["mypy_sqlalchemy.plugin", "strawberry.ext.mypy_plugin"] [tool.ruff] # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or # McCabe complexity (`C901`) by default. select = ["E4", "E7", "E9", "F"] ignore = [] line-length = 120 target-version = "py39" [tool.pytest.ini_options] pythonpath = [ "." ] [tool.pytest] python_files = "*_test.py"