-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
117 lines (104 loc) · 3.42 KB
/
pyproject.toml
File metadata and controls
117 lines (104 loc) · 3.42 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[project]
name = "aiida-fans"
dynamic = ["version"]
description = "AiiDA plugin for FANS, an FFT-based homogenization solver."
urls = { Documentation = "https://dataanalyticsengineering.github.io/AiiDA-FANS/", Source = "https://github.com/DataAnalyticsEngineering/AiiDA-FANS" }
authors = [{ name = "Ethan Shanahan", email = "ethan.shanahan@gmail.com" }]
readme = "README.md"
license = "LGPL-3.0-or-later"
license-files = ["LICENSE"]
classifiers = [
"Natural Language :: English",
"Programming Language :: Python",
"Operating System :: POSIX :: Linux",
"Intended Audience :: Science/Research",
"Development Status :: 3 - Alpha",
"Framework :: AiiDA",
]
keywords = ["aiida", "fans", "plugin"]
requires-python = ">=3.11"
# Entry Points
[project.entry-points."aiida.calculations"]
"fans" = "aiida_fans.calculations:FansCalculation"
[project.entry-points."aiida.parsers"]
"fans" = "aiida_fans.parsers:FansParser"
[project.entry-points."aiida.data"]
"fans.microstructure" = "aiida_fans.data:MicrostructureData"
# Build System
[build-system]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"
# Tools
## Project Tools: pixi
[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["linux-64"]
### pixi: default feature
[tool.pixi.dependencies]
aiida-core = ">=2.7.1,<3"
h5py = ">=3.9.0,<4"
pre-commit = ">=4.3.0,<5"
ruff = ">=0.15.8,<0.16"
[tool.pixi.pypi-dependencies]
aiida-fans = { path = ".", editable = true }
[tool.pixi.tasks]
rabbit_start = "rabbitmq-server -detached"
daemon_start = "verdi daemon start"
start = [{ task = "rabbit_start" }, { task = "daemon_start" }]
daemon_stop = "verdi daemon stop"
rabbit_stop = "rabbitmqctl stop"
stop = [{ task = "daemon_stop" }, { task = "rabbit_stop" }]
### pixi: extra features
[tool.pixi.feature.py3]
dependencies = { python = "3.*" }
[tool.pixi.feature.build]
pypi-dependencies = { build = "*" }
tasks = { build-dist = "python -m build" }
[tool.pixi.feature.mkdocs]
dependencies = { mkdocs-material = "*" }
tasks = { serve = "mkdocs serve --watch-theme", deploy = "mkdocs gh-deploy" }
[tool.pixi.feature.fans]
dependencies = { fans = "0.6.*" }
[tool.pixi.feature.marimo.dependencies]
marimo = "0.21.*"
python-lsp-server = ">=1.14.0,<2"
websockets = ">=16.0,<17"
python-lsp-ruff = ">=2.3.0,<3"
[tool.pixi.feature.marimo.tasks]
tutorial = "cd tutorial/ && marimo run tutorial.py"
tutorial-edit = "cd tutorial/ && marimo edit tutorial.py"
### pixi: environments
[tool.pixi.environments]
tutorial = { features = ["fans", "marimo"] } # User env
dist = { no-default-feature = true, features = ["py3", "build"] } # CI env
docs = { no-default-feature = true, features = ["py3", "mkdocs"] } # Docs Dev/CI env
## Build Tools: setuptools_scm
[tool.setuptools_scm]
version_file = "src/aiida_fans/_version.py"
## Style Tools: ruff
[tool.ruff]
extend-exclude = [
"conf.py",
"tutorial.py",
]
line-length = 120
[tool.ruff.lint]
ignore = [
"PLR2004", # Magic value used in comparison
"D417", # Documentation for every function parameter
]
select = [
"E", # pydocstyle
"W", # pydocstyle
"D", # pydocstyle
"F", # pyflakes
"I", # isort
"N", # pep8-naming
"PLC", # pylint-convention
"PLE", # pylint-error
"PLR", # pylint-refactor
"PLW", # pylint-warning
"RUF", # ruff
]
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Allow unused variables when underscore-prefixed.
pydocstyle = { convention = "google" }