[project]
name = "<project_name>"
description = "<project description>"
authors = [
{name = "<Author Name>", email = "<author@email>"},
{name = "Lucas", email = "lucassix.lee@gmail.com"},
]
readme = "README.md"
requires-python = ">=3.13"
license-files = ["LICEN[CS]E*", "vendored/licenses/*.txt", "AUTHORS.md"]
maintainers = [
{name = "<Maintainer Name>", email = "<maintainer@email>"},
]
keywords = ["xxx"]
# See https://pypi.org/classifiers/
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"Topic :: Software Development :: Documentation",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Utilities",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Operating System :: OS Independent",
; "Framework :: Django :: 4",
; "Framework :: Django :: 4.2",
"Private :: Do Not Upload",
"Typing :: Typed",
]
dependencies = [
"psycopg2 >= 2.8",
"requests >=2.6",
"configparser; python_version == '2.7'",
]
dynamic = ["version"]
#[project.optional-dependencies]
#doc = []
[project.urls]
Home = "<URL>"
Documentation = "<URL>"
Repository = "<URL>"
[tool.setuptools]
py-modules = ['src', 'app']
[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
default = true
#[[tool.uv.index]]
#url = "https://pypi.org/simple"
#default = true
[dependency-groups]
dev = [
"mypy>=1.18.2",
"ruff>=0.12.1",
"pytest",
"coverage[toml]>=7.10.7",
"pytest-cov>=7.0.0",
]
[tool.ruff]
line-length = 100
lint.extend-safe-fixes = [
# non-pep585-annotation
"UP006",
]
lint.select = [
# flake8-bugbear
"B",
# flake8-comprehensions
"C4",
# pycodestyle
"E",
# Pyflakes errors
"F",
# isort
"I",
# flake8-simplify
"SIM",
# flake8-tidy-imports
"TID",
# pyupgrade
"UP",
# Pyflakes warnings
"W",
]
lint.ignore = []
[tool.ruff.format]
quote-style = "single"
[tool.mypy]
python_version = "3.13"
exclude = [
"test_main.py",
]
follow_imports = "silent"
warn_redundant_casts = true
warn_unused_ignores = true
warn_unused_configs = true
disallow_any_generics = false
check_untyped_defs = true
no_implicit_reexport = true
disallow_untyped_defs = true
[tool.pytest.ini_options]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"serial",
]
addopts = [
"--strict-markers",
"--cov",
"--cov-append",
"--durations=5",
"--durations-min=0.25",
]
norecursedirs = [
".git",
".*_cache",
".tox",
"*.egg-info",
"docs",
]
[tool.coverage.run]
parallel = true
[tool.coverage.report]
skip_empty = true
[tool.pyright]
include = [
"src",
]
exclude = [
".git",
"**/__pycache__",
".venv",
"**/*.egg-info",
".ruff_cache",
".mypy_cache",
".pytest_cache",
".tox",
]
reportGeneralTypeIssues = "none"
reportUnboundVariable = "none"
stubPath = ""
pythonVersion = "3.13"