TOML · 2400 bytes Raw Blame History
1 [project]
2 name = "dlm"
3 version = "0.1.0"
4 description = "A text file with a .dlm extension becomes a local, trainable LLM."
5 readme = "README.md"
6 requires-python = ">=3.11"
7 license = { text = "MIT" }
8 authors = [{ name = "espadonne", email = "mfwolffe@outlook.com" }]
9 keywords = ["llm", "lora", "fine-tuning", "ollama", "local-ai"]
10 classifiers = [
11 "Development Status :: 2 - Pre-Alpha",
12 "Intended Audience :: Developers",
13 "License :: OSI Approved :: MIT License",
14 "Programming Language :: Python :: 3",
15 "Programming Language :: Python :: 3.11",
16 "Programming Language :: Python :: 3.12",
17 "Topic :: Scientific/Engineering :: Artificial Intelligence",
18 ]
19 dependencies = [
20 "typer>=0.12",
21 "rich>=13.7",
22 ]
23
24 [project.scripts]
25 dlm = "dlm.cli.app:main"
26
27 [project.urls]
28 Homepage = "https://github.com/tenseleyFlow/DocumentLanguageModel"
29 Issues = "https://github.com/tenseleyFlow/DocumentLanguageModel/issues"
30
31 [dependency-groups]
32 dev = [
33 "pytest>=8.0",
34 "mypy>=1.11",
35 "ruff>=0.6",
36 ]
37
38 [build-system]
39 requires = ["hatchling"]
40 build-backend = "hatchling.build"
41
42 [tool.hatch.build.targets.wheel]
43 packages = ["src/dlm"]
44
45 # -------- ruff --------
46 [tool.ruff]
47 line-length = 100
48 target-version = "py311"
49 src = ["src", "tests"]
50
51 [tool.ruff.lint]
52 select = [
53 "E", # pycodestyle errors
54 "F", # pyflakes
55 "W", # pycodestyle warnings
56 "I", # isort
57 "UP", # pyupgrade
58 "B", # bugbear
59 "N", # pep8-naming
60 "C4", # comprehensions
61 "SIM", # simplify
62 "PT", # pytest
63 "RET", # return
64 "ARG", # unused args
65 "PTH", # use pathlib
66 "TID", # tidy imports
67 ]
68 ignore = [
69 "E501", # handled by formatter
70 ]
71
72 [tool.ruff.lint.per-file-ignores]
73 "tests/**/*.py" = ["ARG", "PT011"]
74
75 [tool.ruff.format]
76 quote-style = "double"
77 indent-style = "space"
78
79 # -------- mypy --------
80 [tool.mypy]
81 strict = true
82 python_version = "3.11"
83 packages = ["dlm"]
84 mypy_path = "src"
85 warn_return_any = true
86 warn_unused_ignores = true
87 warn_redundant_casts = true
88 no_implicit_optional = true
89 disallow_untyped_decorators = true
90
91 # -------- pytest --------
92 [tool.pytest.ini_options]
93 testpaths = ["tests"]
94 addopts = [
95 "-ra",
96 "-m", "not slow and not gpu and not online",
97 ]
98 markers = [
99 "slow: expensive; deselected by default",
100 "gpu: requires CUDA; skipped on CPU/MPS runners",
101 "online: touches the network; skipped in offline CI",
102 ]