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
|
[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=77.0"]
[project]
name = "mashumaro"
version = "3.17"
license = "Apache-2.0"
description = "Fast and well tested serialization library"
readme = "README.md"
authors = [{ name = "Alexander Tikhonov", email = "random.gauss@gmail.com" }]
requires-python = ">=3.9"
classifiers = [
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Development Status :: 5 - Production/Stable",
]
dependencies = [
"typing_extensions>=4.14.0",
]
[project.urls]
Homepage = "https://github.com/Fatal1ty/mashumaro"
[project.optional-dependencies]
orjson = ["orjson"]
msgpack = ["msgpack>=0.5.6"]
yaml = ["pyyaml>=3.13"]
toml = [
"tomli-w>=1.0",
"tomli>=1.1.0;python_version<'3.11'",
]
[tool.setuptools.packages.find]
include = ["mashumaro*"]
[tool.setuptools.package-data]
mashumaro = [
"py.typed",
"mixins/orjson.pyi",
]
[tool.mypy]
ignore_missing_imports = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
[[tool.mypy.overrides]]
module = [
'mashumaro.mixins.dict',
'mashumaro.mixins.msgpack',
'mashumaro.mixins.toml',
'mashumaro.codecs.*',
]
disable_error_code = 'empty-body'
[[tool.mypy.overrides]]
module = [
'mashumaro.core.meta.types.pack',
'mashumaro.core.meta.types.unpack',
'mashumaro.jsonschema.schema',
]
disable_error_code = 'return'
[tool.isort]
profile = 'black'
line_length = 79
multi_line_output = 3
include_trailing_comma = true
ensure_newline_before_comments = true
[tool.black]
line-length = 79
target-version = ['py39', 'py310', 'py311', 'py312']
[tool.ruff]
line-length = 79
[tool.coverage.report]
exclude_lines = ["pragma: no cover", "@overload", "@abstractmethod"]
ignore_errors = true
|