@@ -5,55 +5,94 @@ description = "AiiDA plugin for FANS, an FFT-based homogenization solver."
55urls = {Documentation = " http://aiida-fans.readthedocs.io/en/latest/" , Source = " https://github.com/ethan-shanahan/aiida-fans" }
66authors = [{name = " Ethan Shanahan" , email = " ethan.shanahan@gmail.com" }]
77readme = " README.md"
8- license = " GPL-3.0-only"
9-
8+ license = {file = " LICENSE" }
109classifiers = [
1110 " Natural Language :: English" ,
1211 " Programming Language :: Python" ,
1312 " Operating System :: POSIX :: Linux" ,
1413 " Intended Audience :: Science/Research" ,
1514 " License :: OSI Approved :: GNU General Public License v3 (GPLv3)" ,
16- " Development Status :: 1 - Planning " ,
15+ " Development Status :: 3 - Alpha " ,
1716 " Framework :: AiiDA"
1817]
1918keywords = [" aiida" , " plugin" , " fans" ]
20-
21- requires-python = " >= 3.11"
19+ requires-python = " >=3.11"
2220dependencies = [
2321 " aiida-core>=2.3"
2422]
2523
26- [project .optional-dependencies ]
27- docs = [
28- " sphinx"
29- ]
30-
3124# Entry Points
32- [project .entry-points ."aiida .data" ]
33- "fans" = " aiida_fans.data:FANSParameters"
34- [project .entry-points ."aiida .calculations" ]
35- "fans" = " aiida_fans.calculations:FANSCalculation"
36- [project .entry-points ."aiida .parsers" ]
37- "fans" = " aiida_fans.parsers:FANSParser"
38- [project .entry-points ."aiida .cmdline .data" ]
39- "fans" = " aiida_fans.cli:data_cli"
25+ [project .entry-points ]
26+ "aiida.data" = { "fans" = " aiida_fans.data:FANSParameters" }
27+ "aiida.calculations" = { "fans" = " aiida_fans.calculations:FANSCalculation" }
28+ "aiida.parsers" = { "fans" = " aiida_fans.parsers:FANSParser" }
29+ "aiida.cmdline.data" = { "fans" = " aiida_fans.cli:data_cli" }
4030
41- # Build
31+ # Build System
4232[build-system ]
43- build-backend = " hatchling.build"
44- requires = [" hatchling" , " hatch-vcs" ]
45- [tool .hatch .version ]
46- source = " vcs"
47- [tool .hatch .build .hooks .vcs ]
48- version-file = " src/aiida_fans/_version.py"
33+ requires = [" setuptools>=64" , " setuptools_scm>=8" ]
34+ build-backend = " setuptools.build_meta"
35+
36+
37+ # Tools
38+
39+ # # Project Tools: pixi
40+ [tool .pixi .project ]
41+ channels = [" conda-forge" ]
42+ platforms = [" linux-64" ]
4943
50- # Build - Docs
51- [tool .hatch . envs . docs ]
52- features = [ " docs " ]
53- [tool .hatch . envs . docs . scripts ]
54- build = " sphinx-build -M html docs/source docs/build "
44+ # ## pixi: default dependencies (in addition to aiida-core)
45+ [tool .pixi . dependencies ]
46+ fans = " * "
47+ [tool .pixi . pypi-dependencies ]
48+ # None
5549
56- # Formatting Configuration
50+ # ## pixi: default tasks
51+ [tool .pixi .tasks ]
52+ # None
53+
54+ # ## pixi: features (in addition to fans)
55+ [tool .pixi .feature .dev ]
56+ pypi-dependencies = {aiida-fans = { path = " ." , editable = true }}
57+ [tool .pixi .feature .prod ]
58+ pypi-dependencies = {aiida-fans = { path = " ." , editable = true }}
59+ [tool .pixi .feature .fmt ]
60+ dependencies = {ruff = " *" }
61+ tasks = {fmt = " ruff check" , dummy = " echo dummy" , my-dummy =" echo my-dummy" }
62+ [tool .pixi .feature .build ]
63+ pypi-dependencies = {build = " *" }
64+ tasks = {build-dist = " python -m build" }
65+ [tool .pixi .feature .docs ]
66+ dependencies = {sphinx = " *" }
67+ tasks = {build-docs = " sphinx-build -M html docs/source docs/build" }
68+ [tool .pixi .feature .test ]
69+ dependencies = {pytest = " *" }
70+ tasks = {test = " echo dummy test passes" }
71+ [tool .pixi .feature .py3 ]
72+ dependencies = {python = " >=3.11" }
73+ [tool .pixi .feature .py311 ]
74+ dependencies = {python = " 3.11.*" }
75+ [tool .pixi .feature .py312 ]
76+ dependencies = {python = " 3.12.*" }
77+ [tool .pixi .feature .py313 ]
78+ dependencies = {python = " 3.13.*" }
79+
80+ # ## pixi: environments
81+ [tool .pixi .environments ]
82+ dev = { features = [" dev" , " fmt" , " test" ], solve-group = " default" }
83+ fmt = { features = [" fmt" , " py3" ], no-default-feature = true }
84+ build = { features = [" build" , " py3" ], no-default-feature = true }
85+ docs = { features = [" docs" , " py3" ], no-default-feature = true }
86+ test-py311 = { features = [" prod" , " test" , " py311" ], solve-group = " py311" }
87+ test-py312 = { features = [" prod" , " test" , " py312" ], solve-group = " py312" }
88+ test-py313 = { features = [" prod" , " test" , " py313" ], solve-group = " py313" }
89+
90+
91+ # # Build Tools: setuptools_scm
92+ [tool .setuptools_scm ]
93+ version_file = " src/aiida_fans/_version.py"
94+
95+ # # Style Tools: ruff
5796[tool .ruff ]
5897extend-exclude = [" conf.py" ]
5998line-length = 120
@@ -63,24 +102,25 @@ ignore = [
63102 " D417" # Documentation for every function parameter
64103]
65104select = [
66- ' E' , # pydocstyle
67- ' W' , # pydocstyle
68- " D" , # pydocstyle
69- ' F' , # pyflakes
70- ' I' , # isort
71- ' N' , # pep8-naming
72- ' PLC' , # pylint-convention
73- ' PLE' , # pylint-error
74- ' PLR' , # pylint-refactor
75- ' PLW' , # pylint-warning
76- ' RUF' # ruff
105+ ' E' , # pydocstyle
106+ ' W' , # pydocstyle
107+ " D" , # pydocstyle
108+ ' F' , # pyflakes
109+ ' I' , # isort
110+ ' N' , # pep8-naming
111+ ' PLC' , # pylint-convention
112+ ' PLE' , # pylint-error
113+ ' PLR' , # pylint-refactor
114+ ' PLW' , # pylint-warning
115+ ' RUF' # ruff
77116]
78- # Allow unused variables when underscore-prefixed.
79- dummy-variable-rgx = " ^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
80- [tool .ruff .lint .pydocstyle ]
81- convention = " google"
117+ dummy-variable-rgx = " ^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Allow unused variables when underscore-prefixed.
118+ pydocstyle = {convention = " google" }
82119
83- # Testing Configuration
120+ # # Test Tools: pytest
84121[tool .pytest .ini_options ]
85122[tool .coverage ]
86123source = [" src/aiida_fans" ]
124+
125+ # # Docs Tools: sphinx
126+ # None
0 commit comments