1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
[project]
name = "odmantic"
version = "1.1.0"
description = "ODMantic, an AsyncIO MongoDB Object Document Mapper for Python using type hints "
authors = [{ name = "Arthur Pastel", email = "arthur.pastel@gmail.com" }]
license = { file = "LICENSE" }
readme = "README.md"
keywords = ["mongodb", "asyncio", "types", "pydantic", "motor"]
classifiers = [
"Intended Audience :: Information Technology",
"Intended Audience :: System Administrators",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Topic :: Internet",
"Topic :: Database",
"Topic :: Database :: Front-Ends",
"Topic :: Software Development :: Object Brokering",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development",
"Typing :: Typed",
"Development Status :: 4 - Beta",
"Framework :: AsyncIO",
"Environment :: Web Environment",
"License :: OSI Approved :: ISC License (ISCL)",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3",
"Programming Language :: Python",
"Framework :: Pydantic :: 2",
"Framework :: Pydantic",
]
requires-python = ">=3.8"
dependencies = [
"pydantic >=2.5.2",
"typing-extensions >= 4.2.0; python_version<'3.11'",
"motor >=3.1.1",
"pymongo >=4.1.0",
]
[project.optional-dependencies]
test = [
"pytest >= 7.0",
"pytest-xdist >= 2.1.0",
"pytest-asyncio >= 0.16.0",
# "pytest-testmon >= 1.3.1",
"pytest-sugar >= 0.9.5",
"inline-snapshot >= 0.6.0",
"async-asgi-testclient >= 1.4.11",
"asyncmock >= 0.4.2",
"coverage[toml] >= 6.2",
"pytz >= 2023.3",
"types-pytz >= 2023.3.0.0",
"darglint >= 1.8.1",
"uvicorn >= 0.17.0",
"fastapi >=0.104.0,<0.109",
"requests >= 2.24",
"pytest-benchmark >= 4.0.0",
"pytest-codspeed >= 2.1.0",
"httpx >=0.24.1,<0.28",
]
fastapi = ["fastapi >=0.100.0"]
doc = [
"pydocstyle[toml] >= 6.3.0",
"mkdocs-material >= 9.5.2",
"mkdocstrings[python]>=0.18",
"mkdocs-macros-plugin >= 1.0.4",
"griffe<1.0",
]
lint = ["ruff >= 0.3.3", "mypy >= 1.4.1"]
dev = ["ipython >= 7.16.1"]
[project.urls]
Documentation = "https://art049.github.io/odmantic"
Source = "https://github.com/art049/odmantic"
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[tool.ruff]
line-length = 88
[tool.ruff.lint]
per-file-ignores = { "tests/*" = ["C", "I"], "odmantic/typing.py" = ["I001"] }
select = ["E", "F", "I", "C"]
ignore = ["C405"]
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".hg",
".mypy_cache",
".nox",
".pants.d",
".ruff_cache",
".svn",
".tox",
".venv",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"venv",
]
mccabe.max-complexity = 10
[tool.pydocstyle]
convention = "google"
match_dir = "odmantic"
add_ignore = ["D1", "D205", "D415"]
[tool.isort]
line_length = 88
multi_line_output = 3
include_trailing_comma = true
use_parentheses = true
force_grid_wrap = 0
float_to_top = true
known_first_party = ["odmantic", "tests"]
skip = ["docs"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
filterwarnings = [
"ignore:\"@coroutine\" decorator is deprecated.*:DeprecationWarning:motor.*",
"ignore:the AIOEngineDependency object is deprecated.*:DeprecationWarning:odmantic.*",
]
pythonpath = "src tests"
addopts = "--benchmark-disable"
[tool.coverage.run]
branch = true
[tool.coverage.report]
include = ["odmantic/*", "tests/*"]
omit = ["**/conftest.py"]
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"@pytest.mark.skip",
"@abstractmethod",
]
|