aiida_diff package#

Subpackages#

Submodules#

aiida_diff.calculations module#

Calculations provided by aiida_diff.

Register calculations via the “aiida.calculations” entry point in setup.json.

class aiida_diff.calculations.DiffCalculation(*args: Any, **kwargs: Any)[source]#

Bases: CalcJob

AiiDA calculation plugin wrapping the diff executable.

Simple AiiDA plugin wrapper for ‘diffing’ two files.

__abstractmethods__ = frozenset({})#
__annotations__ = {'CLASS_NAME': 'str', 'SINGLE_OUTPUT_LINKNAME': 'str', 'STATES': 'Optional[Sequence[Type[State]]]', '_STATES_MAP': 'Optional[Dict[Hashable, Type[State]]]', '__called': 'bool', '_auto_persist': 'Optional[Set[str]]', '_cleanups': 'Optional[List[Callable[[], None]]]', '_creation_time': 'Optional[float]', '_event_callbacks': 'Dict[Hashable, List[EVENT_CALLBACK_TYPE]]', '_interrupt_action': 'Optional[futures.CancellableAction]', '_killing': 'Optional[futures.CancellableAction]', '_node': 'Optional[orm.ProcessNode]', '_outputs': 'Dict[str, Any]', '_parsed_inputs': 'Optional[utils.AttributesFrozendict]', '_paused': 'Optional[persistence.SavableFuture]', '_pausing': 'Optional[futures.CancellableAction]', '_pre_paused_status': 'Optional[str]', '_state': 'Optional[State]', '_status': 'Optional[str]', '_uuid': 'Optional[uuid.UUID]', 'link_label_retrieved': 'str'}#
__module__ = 'aiida_diff.calculations'#
_abc_impl = <_abc._abc_data object>#
classmethod define(spec)[source]#

Define inputs and outputs of the calculation.

prepare_for_submission(folder)[source]#

Create input files.

Parameters:

folder – an aiida.common.folders.Folder where the plugin should temporarily place all files needed by the calculation.

Returns:

aiida.common.datastructures.CalcInfo instance

aiida_diff.cli module#

Command line interface (cli) for aiida_diff.

Register new commands either via the “console_scripts” entry point or plug them directly into the ‘verdi’ command by using AiiDA-specific entry points like “aiida.cmdline.data” (both in the setup.json file).

aiida_diff.helpers module#

Helper functions for automatically setting up computer & code. Helper functions for setting up

  1. An AiiDA localhost computer

  2. A “diff” code on localhost

Note: Point 2 is made possible by the fact that the diff executable is available in the PATH on almost any UNIX system.

aiida_diff.helpers.get_code(entry_point, computer)[source]#

Get local code. Sets up code for given entry point on given computer.

Parameters:
  • entry_point – Entry point of calculation plugin

  • computer – (local) AiiDA computer

Returns:

The code node

Return type:

aiida.orm.nodes.data.code.installed.InstalledCode

aiida_diff.helpers.get_computer(name='localhost-test', workdir=None)[source]#

Get AiiDA computer. Loads computer ‘name’ from the database, if exists. Sets up local computer ‘name’, if it isn’t found in the DB.

Parameters:
  • name – Name of computer to load or set up.

  • workdir – path to work directory Used only when creating a new computer.

Returns:

The computer node

Return type:

aiida.orm.computers.Computer

aiida_diff.helpers.get_path_to_executable(executable)[source]#

Get path to local executable. :param executable: Name of executable in the $PATH variable :type executable: str :return: path to executable :rtype: str

aiida_diff.parsers module#

Parsers provided by aiida_diff.

Register parsers via the “aiida.parsers” entry point in setup.json.

class aiida_diff.parsers.DiffParser(node)[source]#

Bases: Parser

Parser class for parsing output of calculation.

__abstractmethods__ = frozenset({})#
__init__(node)[source]#

Initialize Parser instance

Checks that the ProcessNode being passed was produced by a DiffCalculation.

Parameters:
__module__ = 'aiida_diff.parsers'#
_abc_impl = <_abc._abc_data object>#
parse(**kwargs)[source]#

Parse outputs, store results in database.

Returns:

an exit code, if parsing fails (or nothing if parsing succeeds)

Module contents#

aiida_diff

AiiDA demo plugin that wraps the diff executable for computing the difference between two files.