-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
77 lines (69 loc) · 2.12 KB
/
pyproject.toml
File metadata and controls
77 lines (69 loc) · 2.12 KB
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
[project]
name = "prezo"
version = "2026.2.3"
description = "A TUI-based presentation tool for the terminal, built with Textual."
readme = "README.md"
authors = [
{ name = "Stefane Fermigier", email = "sf@fermigier.com" }
]
requires-python = ">=3.12"
dependencies = [
"textual>=0.89.1",
"textual-image>=0.8.0",
"python-frontmatter>=1.1.0",
# Export
"cairosvg>=2.7.0",
"pypdf>=4.0.0",
]
[project.scripts]
prezo = "prezo:main"
[dependency-groups]
dev = [
"abilian-devtools>=0.8.0",
# Testing
"pytest>=8.0.0",
"pytest-asyncio>=1.3.0",
# Typechecking
"ty>=0.0.2",
"types-markdown>=3.10.0.20251106",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
"unit: Unit tests (fast, isolated, no I/O)",
"integration: Integration tests (component interactions, file I/O)",
"e2e: End-to-end tests (full app/CLI workflows)",
"slow: Slow tests that can be skipped with -m 'not slow'",
]
[build-system]
requires = ["uv_build>=0.8.4,<0.9.0"]
build-backend = "uv_build"
[tool.pyrefly.errors]
# Disable errors for third-party library type issues
missing-source-for-stubs = false # markdown stubs bundled but source not found
missing-import = false # libsixel optional dependency
missing-attribute = false # PIL.Image.ADAPTIVE
no-matching-overload = false # PIL type stub issues
bad-argument-type = false # LiteralString strictness with string append
bad-override = false # Textual COMMANDS type override
[tool.ty.rules]
# Disable errors for third-party library type issues
unresolved-import = "ignore" # markdown, libsixel optional dependencies
unresolved-attribute = "ignore" # PIL.Image.ADAPTIVE
invalid-argument-type = "ignore" # PIL getdata() type issues
invalid-type-form = "ignore" # TextualImage type annotation
[tool.mypy]
python_version = "3.12"
warn_return_any = false
warn_unused_ignores = true
ignore_missing_imports = true # For optional dependencies like libsixel
[[tool.mypy.overrides]]
module = [
"frontmatter",
"cairosvg",
"libsixel",
"textual_image.*",
]
ignore_missing_imports = true