8. Interfacing with external codes and writing plugins

This session is meant to get you started with writing your first AiiDA plugin.

If you haven’t done so already, please first watch the introduction to the AiiDA plugin system (~20 minutes).

For this session, we suggest two options depending on your interests – please post in the chat which of the two (A/B) you are going to follow:

  1. Goal: You would like to learn how to interface AiiDA with external codes using a fully worked example (level: medium).

    Task: Follow the instructions on writing a plugin for an external code.

    Result: You will write a Python script with your first CalcJob and Parser plugin, telling AiiDA how to write inputs and parse outputs for a simple external executable.

    Time: This should be easily doable in the available 1.5h.

  2. Goal: You have a specific external code that you would like to interface with AiiDA (level: advanced).

    Task: Template your own plugin package using the AiiDA plugin cutter and start wrapping your code.

    Result: An AiiDA plugin package, prepared for distribution via PyPI, and including templates for continuous integration tests and documentation.

    Time: Don’t expect to have a fully fledged plugin ready by the end of the session! This is is an open-ended task aimed at getting you through initial hurdles more quickly by having AiiDA developers around to ask for help.

8.1. Useful resources for task B