-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* modify setting of default port values Reuse existing port definitions so that default validators are reused without having to specify them again. * update to aiida 1.1.0 and skip testing on python 2.7 * remove postgresql github action should not be needed for temporary postgres cluster * docs: use load_documentation_profile use new load_documentation_profile function from aiida-core. * re-introduce helper scripts (now tested via example) * remove python-modernize hook * remove python2-compatibility leftovers * remove leftover travis setup
- Loading branch information
Showing
19 changed files
with
191 additions
and
190 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
""" 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. | ||
""" | ||
import tempfile | ||
import shutil | ||
|
||
LOCALHOST_NAME = 'localhost-test' | ||
|
||
executables = { | ||
'diff': 'diff', | ||
} | ||
|
||
|
||
def get_path_to_executable(executable): | ||
""" Get path to local executable. | ||
:param executable: Name of executable in the $PATH variable | ||
:type executable: str | ||
:return: path to executable | ||
:rtype: str | ||
""" | ||
path = shutil.which(executable) | ||
if path is None: | ||
raise ValueError( | ||
"'{}' executable not found in PATH.".format(executable)) | ||
return path | ||
|
||
|
||
def get_computer(name=LOCALHOST_NAME, workdir=None): | ||
"""Get AiiDA computer. | ||
Loads computer 'name' from the database, if exists. | ||
Sets up local computer 'name', if it isn't found in the DB. | ||
:param name: Name of computer to load or set up. | ||
:param workdir: path to work directory | ||
Used only when creating a new computer. | ||
:return: The computer node | ||
:rtype: :py:class:`aiida.orm.Computer` | ||
""" | ||
from aiida.orm import Computer | ||
from aiida.common.exceptions import NotExistent | ||
|
||
try: | ||
computer = Computer.objects.get(name=name) | ||
except NotExistent: | ||
if workdir is None: | ||
workdir = tempfile.mkdtemp() | ||
|
||
computer = Computer( | ||
name=name, | ||
description='localhost computer set up by aiida_diff tests', | ||
hostname=name, | ||
workdir=workdir, | ||
transport_type='local', | ||
scheduler_type='direct') | ||
computer.store() | ||
computer.set_minimum_job_poll_interval(0.) | ||
computer.configure() | ||
|
||
return computer | ||
|
||
|
||
def get_code(entry_point, computer): | ||
"""Get local code. | ||
Sets up code for given entry point on given computer. | ||
:param entry_point: Entry point of calculation plugin | ||
:param computer: (local) AiiDA computer | ||
:return: The code node | ||
:rtype: :py:class:`aiida.orm.Code` | ||
""" | ||
from aiida.orm import Code | ||
|
||
try: | ||
executable = executables[entry_point] | ||
except KeyError: | ||
raise KeyError( | ||
"Entry point '{}' not recognized. Allowed values: {}".format( | ||
entry_point, list(executables.keys()))) | ||
|
||
codes = Code.objects.find(filters={'label': executable}) # pylint: disable=no-member | ||
if codes: | ||
return codes[0] | ||
|
||
path = get_path_to_executable(executable) | ||
code = Code( | ||
input_plugin_name=entry_point, | ||
remote_computer_exec=[computer, path], | ||
) | ||
code.label = executable | ||
return code.store() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.