aiida.orm.utils.builders package#

Submodules#

Manage code objects with lazy loading of the db env

class aiida.orm.utils.builders.code.CodeBuilder(**kwargs)[source]#

Bases: object

Build a code with validation of attribute combinations

class CodeType(value)[source]#

Bases: enum.Enum

An enumeration.

ON_COMPUTER = 'on computer'#
STORE_AND_UPLOAD = 'store in the db and upload'#
__module__ = 'aiida.orm.utils.builders.code'#
exception CodeValidationError(msg)[source]#

Bases: ValueError

A CodeBuilder instance may raise this

  • when asked to instanciate a code with missing or invalid code attributes

  • when asked for a code attibute that has not been set yet

__init__(msg)[source]#
__module__ = 'aiida.orm.utils.builders.code'#
__repr__()[source]#

Return repr(self).

__str__()[source]#

Return str(self).

__weakref__#

list of weak references to the object (if defined)

__dict__ = mappingproxy({'__module__': 'aiida.orm.utils.builders.code', '__doc__': 'Build a code with validation of attribute combinations', '__init__': <function CodeBuilder.__init__>, 'validate': <function CodeBuilder.validate>, 'new': <FunctionWrapper at 0x7f186f4cb8e0 for function>, 'from_code': <staticmethod object>, 'get_code_spec': <staticmethod object>, '__getattr__': <function CodeBuilder.__getattr__>, '_get': <function CodeBuilder._get>, '_get_and_count': <function CodeBuilder._get_and_count>, '__setattr__': <function CodeBuilder.__setattr__>, '_set_code_attr': <function CodeBuilder._set_code_attr>, 'validate_code_type': <function CodeBuilder.validate_code_type>, 'validate_upload': <function CodeBuilder.validate_upload>, 'validate_installed': <function CodeBuilder.validate_installed>, 'CodeValidationError': <class 'aiida.orm.utils.builders.code.CodeBuilder.CodeValidationError'>, 'is_local': <function CodeBuilder.is_local>, 'CodeType': <enum 'CodeType'>, '__dict__': <attribute '__dict__' of 'CodeBuilder' objects>, '__weakref__': <attribute '__weakref__' of 'CodeBuilder' objects>, '__annotations__': {}})#
__getattr__(key)[source]#

Access code attributes used to build the code

__init__(**kwargs)[source]#

Construct a new instance.

__module__ = 'aiida.orm.utils.builders.code'#
__setattr__(key, value)[source]#

Implement setattr(self, name, value).

__weakref__#

list of weak references to the object (if defined)

_get(key)[source]#

Return a spec, or None if not defined

Parameters

key – name of a code spec

_get_and_count(key, used)[source]#

Return a spec, or raise if not defined. Moreover, add the key to the ‘used’ dict.

Parameters
  • key – name of a code spec

  • used – should be a set of keys that you want to track. key will be added to this set if the value exists in the spec and can be retrieved.

_set_code_attr(key, value)[source]#

Set a code attribute, if it passes validation.

Checks compatibility with other code attributes.

static from_code(code)[source]#

Create CodeBuilder from existing code instance.

See also get_code_spec()

static get_code_spec(code)[source]#

Get code attributes from existing code instance.

These attributes can be used to create a new CodeBuilder:

spec = CodeBuilder.get_code_spec(old_code)
builder = CodeBuilder(**spec)
new_code = builder.new()
is_local()[source]#

Analogous to Code.is_local()

new()[source]#

Build and return a new code instance (not stored)

validate(raise_error=True)[source]#
validate_code_type()[source]#

Make sure the code type is set correctly

validate_installed()[source]#

If the code is on-computer, catch invalid store-and-upload attributes

validate_upload()[source]#

If the code is stored and uploaded, catch invalid on-computer attributes

Manage computer objects with lazy loading of the db env

class aiida.orm.utils.builders.computer.ComputerBuilder(**kwargs)[source]#

Bases: object

Build a computer with validation of attribute combinations

exception ComputerValidationError(msg)[source]#

Bases: Exception

A ComputerBuilder instance may raise this

  • when asked to instanciate a code with missing or invalid computer attributes

  • when asked for a computer attibute that has not been set yet.

__init__(msg)[source]#
__module__ = 'aiida.orm.utils.builders.computer'#
__repr__()[source]#

Return repr(self).

__str__()[source]#

Return str(self).

__weakref__#

list of weak references to the object (if defined)

__dict__ = mappingproxy({'__module__': 'aiida.orm.utils.builders.computer', '__doc__': 'Build a computer with validation of attribute combinations', 'from_computer': <staticmethod object>, 'get_computer_spec': <staticmethod object>, '__init__': <function ComputerBuilder.__init__>, 'validate': <function ComputerBuilder.validate>, 'new': <FunctionWrapper at 0x7f186f58dfa0 for function>, '__getattr__': <function ComputerBuilder.__getattr__>, '_get': <function ComputerBuilder._get>, '_get_and_count': <function ComputerBuilder._get_and_count>, '__setattr__': <function ComputerBuilder.__setattr__>, '_set_computer_attr': <function ComputerBuilder._set_computer_attr>, 'ComputerValidationError': <class 'aiida.orm.utils.builders.computer.ComputerBuilder.ComputerValidationError'>, '__dict__': <attribute '__dict__' of 'ComputerBuilder' objects>, '__weakref__': <attribute '__weakref__' of 'ComputerBuilder' objects>, '__annotations__': {}})#
__getattr__(key)[source]#

Access computer attributes used to build the computer

__init__(**kwargs)[source]#
__module__ = 'aiida.orm.utils.builders.computer'#
__setattr__(key, value)[source]#

Implement setattr(self, name, value).

__weakref__#

list of weak references to the object (if defined)

_get(key)[source]#

Return a spec, or None if not defined

Parameters

key – name of a computer spec

_get_and_count(key, used)[source]#

Return a spec, or raise if not defined. Moreover, add the key to the ‘used’ dict.

Parameters
  • key – name of a computer spec

  • used – should be a set of keys that you want to track. key will be added to this set if the value exists in the spec and can be retrieved.

_set_computer_attr(key, value)[source]#

Set a computer attribute if it passes validation.

static from_computer(computer)[source]#

Create ComputerBuilder from existing computer instance.

See also get_computer_spec()

static get_computer_spec(computer)[source]#

Get computer attributes from existing computer instance.

These attributes can be used to create a new ComputerBuilder:

spec = ComputerBuilder.get_computer_spec(old_computer)
builder = ComputerBuilder(**spec)
new_computer = builder.new()
new()[source]#

Build and return a new computer instance (not stored)

validate(raise_error=True)[source]#

Validate the computer options.