|
1 | | -[tool.poetry] |
| 1 | +[project] |
2 | 2 | name = "sqlalchemy-serializer" |
3 | 3 | version = "1.4.22" |
4 | 4 | description = "Mixin for SQLAlchemy models serialization without pain" |
5 | | -authors = ["yuri.boiko <yuri.boiko.dev@gmail.com>"] |
6 | | -license = "MIT" |
7 | | -readme = "README.md" |
8 | | -include = [ |
9 | | - "README.md", |
10 | | - "LICENSE", |
11 | | - "sqlalchemy_serializer/**" |
| 5 | +authors = [ |
| 6 | + {name = "yuri.boiko", email = "yuri.boiko.dev@gmail.com"} |
12 | 7 | ] |
| 8 | +license = {text = "MIT"} |
| 9 | +readme = "README.md" |
| 10 | +requires-python = ">=3.10" |
13 | 11 | classifiers = [ |
14 | 12 | "Programming Language :: Python :: 3", |
15 | | - "License :: OSI Approved :: Apache Software License", |
| 13 | + "License :: OSI Approved :: MIT License", |
16 | 14 | "Operating System :: OS Independent", |
17 | 15 | ] |
18 | 16 | keywords = ["sqlalchemy", "serialize", "to_dict", "JSON"] |
19 | | -repository = "https://github.com/n0nSmoker/SQLAlchemy-serializer" |
| 17 | +dependencies = [ |
| 18 | + "SQLAlchemy==2.0.45", |
| 19 | + "psycopg2-binary==2.9.11", |
| 20 | + "pytz>=2025.2", |
| 21 | + "setuptools>=80.9.0", |
| 22 | +] |
| 23 | + |
| 24 | +[dependency-groups] |
| 25 | +lint = [ |
| 26 | + "ruff>=0.9.4", |
| 27 | + "isort>=6.0.1", |
| 28 | +] |
| 29 | +test = [ |
| 30 | + "pytest==9.0.1", |
| 31 | + "pytest-cov==7.0.0", |
| 32 | + "requests==2.32.5", |
| 33 | + "pytest-mock>=3.15.1", |
| 34 | + "tomli>=2.0.1; python_version < '3.11'", |
| 35 | +] |
20 | 36 |
|
21 | | -[tool.poetry.dependencies] |
22 | | -python = "^3.10" |
23 | | -SQLAlchemy = "2.0.29" |
24 | | -psycopg2-binary = "2.9.9" |
25 | | -pytz = "^2024.1" |
26 | | -setuptools = "^70.1.1" |
27 | | - |
28 | | -[tool.poetry.group.dev.dependencies] |
29 | | -pytest = "8.1.1" |
30 | | -pytest-cov = "5.0.0" |
31 | | -pylama = "8.4.1" |
32 | | -requests = "2.32.3" |
33 | | -black = "^24.4.2" |
34 | | -pytest-mock = "^3.14.0" |
| 37 | +[project.urls] |
| 38 | +repository = "https://github.com/n0nSmoker/SQLAlchemy-serializer" |
35 | 39 |
|
36 | 40 | [build-system] |
37 | | -requires = ["poetry-core"] |
38 | | -build-backend = "poetry.core.masonry.api" |
| 41 | +requires = ["setuptools>=80.9.0", "wheel"] |
| 42 | +build-backend = "setuptools.build_meta" |
| 43 | + |
| 44 | +[tool.setuptools] |
| 45 | +include-package-data = true |
39 | 46 |
|
40 | 47 | [tool.pytest.ini_options] |
41 | 48 | addopts = "-xvrs --color=yes" |
42 | 49 | log_cli = true |
| 50 | + |
| 51 | + |
| 52 | +[tool.ruff] |
| 53 | +line-length = 95 |
| 54 | + |
| 55 | +# Exclude a variety of commonly ignored directories |
| 56 | +exclude = [ |
| 57 | + ".git", |
| 58 | + ".ruff_cache", |
| 59 | + ".venv", |
| 60 | + "__pypackages__", |
| 61 | + "dist", |
| 62 | +] |
| 63 | + |
| 64 | +lint.select = [ |
| 65 | + "YTT", # flake8-2020 |
| 66 | + "E", # pycodestyle |
| 67 | + "F", # pyflakes |
| 68 | + "I", # isort |
| 69 | + "ASYNC", # flake8-async |
| 70 | + "BLE", # flake8-blind-except |
| 71 | + "B", # flake8-bugbear |
| 72 | + "COM", # flake8-commas |
| 73 | + "W", # pycodestyle warnings |
| 74 | + "TC", # flake8-type-checking |
| 75 | + "ANN", # flake8-annotations |
| 76 | + "C90", # mccabe |
| 77 | + "PL", # pylint |
| 78 | + "ICN", # flake8-import-conventions |
| 79 | + "LOG", # flake8-logging |
| 80 | + "G", # flake8-logging-format |
| 81 | + # "INP", # flake8-no-pep420 |
| 82 | + "PIE", # flake8-pie |
| 83 | + "PYI", # flake8-pyi |
| 84 | + "RSE", # flake8-raise |
| 85 | + "RET", # flake8-return |
| 86 | + "SIM", # flake8-simplify |
| 87 | + "SLOT", # flake8-slots |
| 88 | + "TID", # flake8-tidy-imports |
| 89 | + "TC", # flake8-type-checking |
| 90 | + "ARG", # flake8-unused-arguments |
| 91 | + "NPY", # NumPy-specific rules |
| 92 | + "PERF", # Perflint (PERF) |
| 93 | +] |
| 94 | +# Allow unused variables when underscore-prefixed |
| 95 | +lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" |
| 96 | +lint.ignore = [ |
| 97 | + "ANN002", # Missing type annotation for *args |
| 98 | + "ANN201", # Add return type annotation: `None` |
| 99 | + "ANN204", # Missing return type annotation for special method |
| 100 | + "ANN202", # Missing return type annotation for private function |
| 101 | + "ANN003", # Missing type annotation for `**kwargs` |
| 102 | + "ANN001", # Missing type annotation for function argument |
| 103 | + "B008", # Function calls in default function arguments. |
| 104 | + "COM812", # Checks for the absence of trailing commas |
| 105 | + "S101", # Use of `assert` detected |
| 106 | + "PLR0913", # Too many positional arguments for function call |
| 107 | + "PLR2004", # Magic value |
| 108 | + "PLW1508", # Invalid type for environment variable default; expected `str` or `None` |
| 109 | + "PYI024", # Use `typing.NamedTuple` instead of `collections.namedtuple` |
| 110 | + "SIM118", # Use `key in dict` instead of `key in dict.keys()` |
| 111 | +] |
| 112 | + |
| 113 | +[tool.ruff.format] |
| 114 | +quote-style = "double" |
| 115 | +indent-style = "space" |
| 116 | + |
| 117 | +[tool.isort] |
| 118 | +profile = "black" |
| 119 | +line_length = 95 |
| 120 | + |
| 121 | +[tool.ruff.lint.isort] |
| 122 | +known-first-party = ["sqlalchemy_serializer"] |
0 commit comments