[tool.poetry] name = "discoursio_core" version = "0.3.0" description = "core module for discours.io" authors = ["discoursio devteam"] license = "MIT" readme = "README.md" [tool.poetry.dependencies] python = "^3.12" SQLAlchemy = "^2.0.22" psycopg2-binary = "^2.9.9" redis = {extras = ["hiredis"], version = "^5.0.1"} sentry-sdk = "^1.4.1" starlette = "^0.36.1" gql = "^3.4.1" ariadne = "^0.21" aiohttp = "^3.9.1" pre-commit = "^3.6.0" granian = "^1.0.1" google-analytics-data = "^0.18.3" opensearch-py = "^2.4.2" [tool.poetry.group.dev.dependencies] setuptools = "^69.0.2" pyright = "^1.1.341" pytest = "^7.4.2" black = { version = "^23.12.0", python = ">=3.12" } ruff = { version = "^0.1.15", python = ">=3.12" } isort = "^5.13.2" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [[tool.poetry.packages]] include = "./*" [tool.setuptools.dynamic] version = {attr = "core.__version__"} readme = {file = "README.md"} [tool.ruff] line-length = 120 extend-select = [ # E and F are enabled by default 'B', # flake8-bugbear 'C4', # flake8-comprehensions 'C90', # mccabe 'I', # isort 'N', # pep8-naming 'Q', # flake8-quotes 'S', # flake8-bandit 'W', # pycodestyle ] extend-ignore = [ 'B008', # function calls in args defaults are fine 'B009', # getattr with constants is fine 'B034', # re.split won't confuse us 'B904', # rising without from is fine 'E501', # leave line length to black 'N818', # leave to us exceptions naming 'S101', # assert is fine 'E712', # allow == True ] flake8-quotes = { inline-quotes = 'single', multiline-quotes = 'double' } mccabe = { max-complexity = 13 } target-version = "py312" [tool.ruff.format] quote-style = 'single' [tool.black] skip-string-normalization = true [tool.ruff.isort] combine-as-imports = true lines-after-imports = 2 known-first-party = ['resolvers', 'services', 'orm', 'tests'] [tool.ruff.per-file-ignores] 'tests/**' = ['B018', 'S110', 'S501'] [tool.mypy] python_version = "3.12" warn_return_any = true warn_unused_configs = true ignore_missing_imports = true exclude = ["nb"] [tool.pytest.ini_options] asyncio_mode = 'auto' [tool.pyright] venvPath = "." venv = ".venv" include = ["."] useLibraryCodeForTypes = true disableLanguageServices = false disableOrganizeImports = false reportMissingImports = false reportMissingModuleSource = "warning" reportImportCycles = "warning" maxMemoryForLargeFile = 4096 pythonVersion = "3.12" 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