|
1 | | -[project] |
2 | | -name = "jarvis" |
3 | | -version = "0.0.0" |
4 | | -description = "My personal page." |
5 | | -readme = "README.md" |
6 | | -license = { text = "MIT" } |
7 | | -authors = [ |
8 | | - { name = "Alexandru Maxiniuc", email = "me@cuinixam.me" }, |
9 | | -] |
10 | | -requires-python = "<4.0,>=3.10" |
11 | | -classifiers = [ |
12 | | - "Development Status :: 2 - Pre-Alpha", |
13 | | - "Intended Audience :: Developers", |
14 | | - "Natural Language :: English", |
15 | | - "Operating System :: OS Independent", |
16 | | - "Programming Language :: Python :: 3 :: Only", |
17 | | - "Programming Language :: Python :: 3.10", |
18 | | - "Programming Language :: Python :: 3.11", |
19 | | - "Programming Language :: Python :: 3.12", |
20 | | - "Programming Language :: Python :: 3.13", |
21 | | - "Topic :: Software Development :: Libraries", |
22 | | -] |
23 | | - |
24 | | -dependencies = [ |
25 | | - "marimo>=0.11,<1", |
26 | | - "matplotlib>=3.10,<4", |
27 | | - "py-app-dev>=2.5,<3", |
28 | | - "typer>=0,<1", |
29 | | -] |
30 | | - |
31 | | -urls.Changelog = "https://github.com/cuinixam/jarvis/blob/main/CHANGELOG.md" |
32 | | -urls.repository = "https://github.com/cuinixam/jarvis" |
33 | | -rls."Bug Tracker" = "https://github.com/cuinixam/jarvis/issues" |
34 | | -documentation = "https://jarvis.readthedocs.io" |
35 | | - |
36 | | -[dependency-groups] |
37 | | -dev = [ |
38 | | - "ablog>=0,<1", |
39 | | - "mlx-traceability>=11,<12", |
40 | | - # docs |
41 | | - "myst-parser>=4", |
42 | | - "pre-commit>=4,<5", |
43 | | - "pydata-sphinx-theme>=0,<1", |
44 | | - "pytest>=8,<9", |
45 | | - "pytest-cov>=6,<7", |
46 | | - "ruff>=0,<1", |
47 | | - "sphinx>=8", |
48 | | - "sphinx-autobuild>=2024.10.3,<2025", |
49 | | - "sphinx-copybutton>=0,<1", |
50 | | - "sphinx-design>=0,<1", |
51 | | - "sphinx-new-tab-link>=0,<1", |
52 | | - "sphinxcontrib-mermaid>=1,<2", |
53 | | - "sphinxext-rediraffe>=0,<1", |
54 | | - "wrapt", |
55 | | -] |
56 | | - |
57 | | -[tool.ruff] |
58 | | -line-length = 180 |
59 | | -lint.select = [ |
60 | | - "B", # flake8-bugbear |
61 | | - "C4", # flake8-comprehensions |
62 | | - "D", # flake8-docstrings |
63 | | - "E", # pycodestyle |
64 | | - "F", # pyflake |
65 | | - "I", # isort |
66 | | - "RUF", # ruff specific |
67 | | - "S", # flake8-bandit |
68 | | - "UP", # pyupgrade |
69 | | - "W", # pycodestyle |
70 | | -] |
71 | | -lint.ignore = [ |
72 | | - "D100", # Missing docstring in public module |
73 | | - "D101", # Missing docstring in public class |
74 | | - "D102", # Missing docstring in public method |
75 | | - "D103", # Missing docstring in public function |
76 | | - "D104", # Missing docstring in public package |
77 | | - "D107", # Missing docstring in `__init__` |
78 | | - "D203", # 1 blank line required before class docstring |
79 | | - "D212", # Multi-line docstring summary should start at the first line |
80 | | - "D401", # First line of docstring should be in imperative mood |
81 | | -] |
82 | | -lint.per-file-ignores."conftest.py" = [ "D100" ] |
83 | | -lint.per-file-ignores."docs/conf.py" = [ "D100" ] |
84 | | -lint.per-file-ignores."setup.py" = [ "D100" ] |
85 | | -lint.per-file-ignores."tests/**/*" = [ |
86 | | - "D100", |
87 | | - "D101", |
88 | | - "D102", |
89 | | - "D103", |
90 | | - "D104", |
91 | | - "S101", |
92 | | -] |
93 | | -lint.isort.known-first-party = [ "jarvis", "tests" ] |
94 | | - |
95 | | -[tool.codespell] |
96 | | -skip = "docs/presentations/objects_deps/index.html" |
97 | | - |
98 | | -[tool.pytest.ini_options] |
99 | | -addopts = "-v -Wdefault --cov=jarvis --cov-report=term-missing:skip-covered" |
100 | | -pythonpath = [ "src" ] |
101 | | - |
102 | | -[tool.coverage.run] |
103 | | -branch = true |
104 | | - |
105 | | -[tool.coverage.report] |
106 | | -exclude_lines = [ |
107 | | - "pragma: no cover", |
108 | | - "@overload", |
109 | | - "if TYPE_CHECKING", |
110 | | - "raise NotImplementedError", |
111 | | - 'if __name__ == "__main__":', |
112 | | -] |
113 | | - |
114 | | -[tool.mypy] |
115 | | -check_untyped_defs = true |
116 | | -disallow_any_generics = true |
117 | | -disallow_incomplete_defs = true |
118 | | -disallow_untyped_defs = true |
119 | | -mypy_path = "src/" |
120 | | -no_implicit_optional = true |
121 | | -show_error_codes = true |
122 | | -warn_unreachable = true |
123 | | -warn_unused_ignores = true |
124 | | -exclude = [ |
125 | | - 'docs/.*', |
126 | | - 'setup.py', |
127 | | -] |
128 | | - |
129 | | -[[tool.mypy.overrides]] |
130 | | -module = "jarvis.notebooks.*" |
131 | | -ignore_errors = true |
132 | | - |
133 | | -[[tool.mypy.overrides]] |
134 | | -module = "tests.*" |
135 | | -allow_untyped_defs = true |
136 | | - |
137 | | -[[tool.mypy.overrides]] |
138 | | -module = "docs.*" |
139 | | -ignore_errors = true |
140 | | - |
141 | | -[tool.semantic_release] |
142 | | -version_toml = [ "pyproject.toml:project.version" ] |
143 | | -version_variables = [ |
144 | | - "src/jarvis/__init__.py:__version__", |
145 | | - "docs/conf.py:release", |
146 | | -] |
147 | | -build_command = """ |
148 | | -pip install uv |
149 | | -uv lock |
150 | | -git add uv.lock |
151 | | -uv build |
152 | | -""" |
153 | | - |
154 | | -[tool.semantic_release.changelog] |
155 | | -exclude_commit_patterns = [ |
156 | | - '''chore(?:\([^)]*?\))?: .+''', |
157 | | - '''ci(?:\([^)]*?\))?: .+''', |
158 | | - '''refactor(?:\([^)]*?\))?: .+''', |
159 | | - '''style(?:\([^)]*?\))?: .+''', |
160 | | - '''test(?:\([^)]*?\))?: .+''', |
161 | | - '''build\((?!deps\): .+)''', |
162 | | - '''Merged? .*''', |
163 | | - '''Initial [Cc]ommit.*''', # codespell:ignore |
164 | | -] |
165 | | - |
166 | | -[tool.semantic_release.changelog.environment] |
167 | | -keep_trailing_newline = true |
168 | | - |
169 | | -[tool.semantic_release.branches.main] |
170 | | -match = "main" |
171 | | - |
172 | | -[tool.semantic_release.branches.noop] |
173 | | -match = "(?!main$)" |
174 | | -prerelease = true |
| 1 | +[project] |
| 2 | +name = "jarvis" |
| 3 | +version = "0.0.0" |
| 4 | +description = "My personal page." |
| 5 | +readme = "README.md" |
| 6 | +license = { text = "MIT" } |
| 7 | +authors = [ |
| 8 | + { name = "Alexandru Maxiniuc", email = "me@cuinixam.me" }, |
| 9 | +] |
| 10 | +requires-python = "<4.0,>=3.10" |
| 11 | +classifiers = [ |
| 12 | + "Development Status :: 2 - Pre-Alpha", |
| 13 | + "Intended Audience :: Developers", |
| 14 | + "Natural Language :: English", |
| 15 | + "Operating System :: OS Independent", |
| 16 | + "Programming Language :: Python :: 3 :: Only", |
| 17 | + "Programming Language :: Python :: 3.10", |
| 18 | + "Programming Language :: Python :: 3.11", |
| 19 | + "Programming Language :: Python :: 3.12", |
| 20 | + "Programming Language :: Python :: 3.13", |
| 21 | + "Topic :: Software Development :: Libraries", |
| 22 | +] |
| 23 | + |
| 24 | +dependencies = [ |
| 25 | + "marimo>=0.11,<1", |
| 26 | + "matplotlib>=3.10,<4", |
| 27 | + "py-app-dev>=2.5,<3", |
| 28 | + "typer>=0,<1", |
| 29 | +] |
| 30 | + |
| 31 | +urls."Bug Tracker" = "https://github.com/cuinixam/jarvis/issues" |
| 32 | +urls.Changelog = "https://github.com/cuinixam/jarvis/blob/main/CHANGELOG.md" |
| 33 | +urls.documentation = "https://jarvis.readthedocs.io" |
| 34 | + |
| 35 | +urls.repository = "https://github.com/cuinixam/jarvis" |
| 36 | +scripts.jarvis = "jarvis.main:main" |
| 37 | + |
| 38 | +[dependency-groups] |
| 39 | +dev = [ |
| 40 | + "ablog>=0,<1", |
| 41 | + "mlx-traceability>=11,<12", |
| 42 | + # docs |
| 43 | + "myst-parser>=4", |
| 44 | + "pre-commit>=4,<5", |
| 45 | + "pydata-sphinx-theme>=0,<1", |
| 46 | + "pytest>=8,<9", |
| 47 | + "pytest-cov>=6,<7", |
| 48 | + "ruff>=0,<1", |
| 49 | + "sphinx>=8", |
| 50 | + "sphinx-autobuild>=2024.10.3,<2025", |
| 51 | + "sphinx-copybutton>=0,<1", |
| 52 | + "sphinx-design>=0,<1", |
| 53 | + "sphinx-new-tab-link>=0,<1", |
| 54 | + "sphinxcontrib-mermaid>=1,<2", |
| 55 | + "sphinxext-rediraffe>=0,<1", |
| 56 | + "wrapt", |
| 57 | +] |
| 58 | + |
| 59 | +[tool.ruff] |
| 60 | +line-length = 180 |
| 61 | +lint.select = [ |
| 62 | + "B", # flake8-bugbear |
| 63 | + "C4", # flake8-comprehensions |
| 64 | + "D", # flake8-docstrings |
| 65 | + "E", # pycodestyle |
| 66 | + "F", # pyflake |
| 67 | + "I", # isort |
| 68 | + "RUF", # ruff specific |
| 69 | + "S", # flake8-bandit |
| 70 | + "UP", # pyupgrade |
| 71 | + "W", # pycodestyle |
| 72 | +] |
| 73 | +lint.ignore = [ |
| 74 | + "D100", # Missing docstring in public module |
| 75 | + "D101", # Missing docstring in public class |
| 76 | + "D102", # Missing docstring in public method |
| 77 | + "D103", # Missing docstring in public function |
| 78 | + "D104", # Missing docstring in public package |
| 79 | + "D107", # Missing docstring in `__init__` |
| 80 | + "D203", # 1 blank line required before class docstring |
| 81 | + "D212", # Multi-line docstring summary should start at the first line |
| 82 | + "D401", # First line of docstring should be in imperative mood |
| 83 | +] |
| 84 | +lint.per-file-ignores."conftest.py" = [ "D100" ] |
| 85 | +lint.per-file-ignores."docs/conf.py" = [ "D100" ] |
| 86 | +lint.per-file-ignores."setup.py" = [ "D100" ] |
| 87 | +lint.per-file-ignores."tests/**/*" = [ |
| 88 | + "D100", |
| 89 | + "D101", |
| 90 | + "D102", |
| 91 | + "D103", |
| 92 | + "D104", |
| 93 | + "S101", |
| 94 | +] |
| 95 | +lint.isort.known-first-party = [ "jarvis", "tests" ] |
| 96 | + |
| 97 | +[tool.codespell] |
| 98 | +skip = "docs/presentations/objects_deps/index.html" |
| 99 | + |
| 100 | +[tool.pytest.ini_options] |
| 101 | +addopts = "-v -Wdefault --cov=jarvis --cov-report=term-missing:skip-covered" |
| 102 | +pythonpath = [ "src" ] |
| 103 | + |
| 104 | +[tool.coverage.run] |
| 105 | +branch = true |
| 106 | + |
| 107 | +[tool.coverage.report] |
| 108 | +exclude_lines = [ |
| 109 | + "pragma: no cover", |
| 110 | + "@overload", |
| 111 | + "if TYPE_CHECKING", |
| 112 | + "raise NotImplementedError", |
| 113 | + 'if __name__ == "__main__":', |
| 114 | +] |
| 115 | + |
| 116 | +[tool.mypy] |
| 117 | +check_untyped_defs = true |
| 118 | +disallow_any_generics = true |
| 119 | +disallow_incomplete_defs = true |
| 120 | +disallow_untyped_defs = true |
| 121 | +mypy_path = "src/" |
| 122 | +no_implicit_optional = true |
| 123 | +show_error_codes = true |
| 124 | +warn_unreachable = true |
| 125 | +warn_unused_ignores = true |
| 126 | +exclude = [ |
| 127 | + 'docs/.*', |
| 128 | + 'setup.py', |
| 129 | +] |
| 130 | + |
| 131 | +[[tool.mypy.overrides]] |
| 132 | +module = "jarvis.notebooks.*" |
| 133 | +ignore_errors = true |
| 134 | + |
| 135 | +[[tool.mypy.overrides]] |
| 136 | +module = "tests.*" |
| 137 | +allow_untyped_defs = true |
| 138 | + |
| 139 | +[[tool.mypy.overrides]] |
| 140 | +module = "docs.*" |
| 141 | +ignore_errors = true |
| 142 | + |
| 143 | +[tool.semantic_release] |
| 144 | +version_toml = [ "pyproject.toml:project.version" ] |
| 145 | +version_variables = [ |
| 146 | + "src/jarvis/__init__.py:__version__", |
| 147 | + "docs/conf.py:release", |
| 148 | +] |
| 149 | +build_command = """ |
| 150 | +pip install uv |
| 151 | +uv lock |
| 152 | +git add uv.lock |
| 153 | +uv build |
| 154 | +""" |
| 155 | + |
| 156 | +[tool.semantic_release.changelog] |
| 157 | +exclude_commit_patterns = [ |
| 158 | + '''chore(?:\([^)]*?\))?: .+''', |
| 159 | + '''ci(?:\([^)]*?\))?: .+''', |
| 160 | + '''refactor(?:\([^)]*?\))?: .+''', |
| 161 | + '''style(?:\([^)]*?\))?: .+''', |
| 162 | + '''test(?:\([^)]*?\))?: .+''', |
| 163 | + '''build\((?!deps\): .+)''', |
| 164 | + '''Merged? .*''', |
| 165 | + '''Initial [Cc]ommit.*''', # codespell:ignore |
| 166 | +] |
| 167 | + |
| 168 | +[tool.semantic_release.changelog.environment] |
| 169 | +keep_trailing_newline = true |
| 170 | + |
| 171 | +[tool.semantic_release.branches.main] |
| 172 | +match = "main" |
| 173 | + |
| 174 | +[tool.semantic_release.branches.noop] |
| 175 | +match = "(?!main$)" |
| 176 | +prerelease = true |
0 commit comments