Files
pyth-on-line/pyproject.toml
2025-09-01 17:44:16 +08:00

86 lines
1.9 KiB
TOML

[project]
name = "pyth-on-line"
version = "0"
requires-python = ">=3.13"
dependencies = [
"ruff~=0.12.0",
"webtypy~=0.1.7",
"micropip~=0.10.0",
"pyodide-py==0.28.2",
"promplate-pyodide~=0.0.4.0",
"pre-commit~=4.3.0",
"pure-eval~=0.2.3",
"html2text2~=1.1.1",
"pytest~=8.4.0",
"pytest-asyncio~=1.1.0",
"hmr",
"numpy~=2.2",
"pandas~=2.2",
"trio~=0.30.0",
]
[tool.pdm]
distribution = false
[tool.pdm.scripts]
post_install = "pre-commit install"
fmt = { composite = ["ruff check --fix --show-fixes -e", "ruff format"] }
[tool.black]
line-length = 200
[tool.isort]
line_length = 200
known_first_party = ["__main__"]
[tool.ruff]
line-length = 200
[tool.ruff.lint]
extend-select = [
"I", # isort
"N", # pep8-naming
"W", # pycodestyle
"UP", # pyupgrade
"TRY", # tryceratops
"RUF", # ruff
"FURB", # refurb
"C4", # flake8-comprehensions
"ARG", # flake8-unused-arguments
"PIE", # flake8-pie
"PTH", # flake8-use-pathlib
"RSE", # flake8-raise
"SIM", # flake8-simplify
"SLF", # flake8-self
]
ignore = [
# Failed to parse pyproject.toml: missing field `name`
"RUF200",
# Module level import not at top of file
"E402",
"F402",
# `... import *` used; unable to detect undefined names
"F403",
# `await` statement outside of a function
"F704",
]
[tool.pyright]
typeCheckingMode = "standard"
reportMissingModuleSource = false
reportWildcardImportFromLibrary = false
reportUnnecessaryTypeIgnoreComment = true
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
# Handle trio tests separately from asyncio tests
addopts = "--strict-markers"
markers = ["trio: mark test to run with trio backend instead of asyncio"]
[tool.uv.sources]
hmr = { workspace = true }
[tool.uv.workspace]
members = ["packages/*"]