[tool.poetry] name = "sqlmodel" version = "0" description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness." authors = ["Sebastián Ramírez "] readme = "README.md" homepage = "https://github.com/tiangolo/sqlmodel" documentation = "https://sqlmodel.tiangolo.com" repository = "https://github.com/tiangolo/sqlmodel" license = "MIT" exclude = ["sqlmodel/sql/expression.py.jinja2"] classifiers = [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Database", "Topic :: Database :: Database Engines/Servers", "Topic :: Internet", "Topic :: Internet :: WWW/HTTP :: HTTP Servers", "Topic :: Internet :: WWW/HTTP", "Typing :: Typed", ] [tool.poetry.dependencies] python = "^3.7" SQLAlchemy = ">=1.4.36,<2.0.0" pydantic = "^1.9.0" sqlalchemy2-stubs = {version = "*", allow-prereleases = true} [tool.poetry.group.dev.dependencies] pytest = "^7.0.1" mypy = "0.971" # Needed by the code generator using templates black = "^22.10.0" mkdocs-material = "9.1.21" pillow = "^9.3.0" cairosvg = "^2.5.2" mdx-include = "^1.4.1" coverage = {extras = ["toml"], version = "^6.2"} fastapi = "^0.68.1" requests = "^2.26.0" ruff = "^0.1.2" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry-version-plugin] source = "init" [tool.coverage.run] parallel = true source = [ "docs_src", "tests", "sqlmodel" ] context = '${CONTEXT}' [tool.coverage.report] exclude_lines = [ "pragma: no cover", "@overload", 'if __name__ == "__main__":', "if TYPE_CHECKING:", ] [tool.mypy] strict = true [[tool.mypy.overrides]] module = "sqlmodel.sql.expression" warn_unused_ignores = false [tool.ruff] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear "UP", # pyupgrade ] ignore = [ "E501", # line too long, handled by black "B008", # do not perform function calls in argument defaults "C901", # too complex "W191", # indentation contains tabs ] [tool.ruff.per-file-ignores] # "__init__.py" = ["F401"] [tool.ruff.isort] known-third-party = ["sqlmodel", "sqlalchemy", "pydantic", "fastapi"] [tool.ruff.pyupgrade] # Preserve types, even if a file imports `from __future__ import annotations`. keep-runtime-typing = true