Cookie cutter recipe for AiiDA plugins. The fastest way to template a new AiiDA plugin package.
For the package structure produced by the plugin cutter, see the aiida-diff demo plugin.
Note: The plugin cutter produces plugins for aiida-core>=2.0.0
.
See the support/aiida-0.x
branch for creating plugins for older versions of aiida-core
.
pip install cookiecutter black
cookiecutter https://github.com/aiidateam/aiida-plugin-cutter.git
This will produce the files and folder structure for your plugin, already adjusted for the name of your plugin.
In order to get started with development
it's often useful to create a dedicated Python virtual environment for developing your plugin, e.g. using virtualenv, virtualenvwrapper or conda
you will want to install your plugin in editable
mode, so that changes to the source code of your plugin are immediately visible to other packages:
cd aiida_<name>
pip install -e . # install in editable mode
You are now ready to start development!
See the README.md
of your package (or of aiida-diff) for an explanation of the purpose of all generated files.
Plugins templated using the plugin cutter
pre-commit install
For more information on how to take advantage of these features, see the developer guide of your plugin.
The plugin cutter comes with rather strict continuous integration tests which
As you develop the plugin cutter, you will want to also update the aiida-diff repository with its default output.
Simply run ./update-aiida-diff.sh
to create a clone of the aiida-diff
repository, with the latest changes produced by the plugin cutter ready to be committed.
MIT
Please report issues to the GitHub issue tracker. Other inquiries may be directed to the AiiDA mailinglist.
This work is supported by the MARVEL National Centre for Competency in Research funded by the Swiss National Science Foundation, as well as by the MaX European Centre of Excellence funded by the Horizon 2020 EINFRA-5 program, Grant No. 676598.