Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ def clear_directive_functions():
# functions.
import ramble.language.language_base

ramble.language.language_base.DirectiveMeta._directives_to_be_executed = []
ramble.language.language_base.DirectiveMeta._directives_to_be_executed.clear()


@pytest.fixture
Expand Down
2 changes: 1 addition & 1 deletion lib/ramble/ramble/cmd/common/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"registered_phases": "phase_definitions",
# Modifier specific:
"modes": None,
"default_mode": "_default_usage_mode",
"default_mode": "default_usage_mode",
"variable_modifications": None,
"executable_modifiers": None,
"env_var_modifications": None,
Expand Down
26 changes: 17 additions & 9 deletions lib/ramble/ramble/language/application_language.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
# option. This file may not be copied, modified, or distributed
# except according to those terms.

import functools

import ramble.definitions.variables
import ramble.language.language_helpers
import ramble.language.shared_language
Expand Down Expand Up @@ -42,12 +44,8 @@ class Gromacs(ExecutableApplication):
"""


class ApplicationMeta(ramble.language.shared_language.SharedMeta):
_directive_names = set()
_directives_to_be_executed = []


application_directive = ApplicationMeta.directive
ApplicationMeta = ramble.language.shared_language.SharedMeta
application_directive = functools.partial(ApplicationMeta.directive, language_type="application")


@application_directive("workloads")
Expand Down Expand Up @@ -98,7 +96,9 @@ def _execute_workload(app):
return _execute_workload


@application_directive("workload_groups")
@application_directive(
dicts=("workload_groups", "workload_group_vars", "workload_group_env_vars", "workloads")
)
def workload_group(name, workloads=None, mode=None, when=None, **kwargs):
"""Adds a workload group to this application

Expand Down Expand Up @@ -246,7 +246,15 @@ def _execute_input_file(app):
return _execute_input_file


@application_directive("workload_group_vars")
@application_directive(
dicts=(
"workload_group_vars",
"workload_group_env_vars",
"workload_groups",
"workloads",
"validators",
)
)
def workload_variable(
name,
default=None,
Expand Down Expand Up @@ -431,7 +439,7 @@ def _execute_workload_variable(app):
return _execute_workload_variable


@application_directive(dicts=())
@application_directive(dicts="license_names", init_value=[])
def license_name(name, **kwargs):
"""Add a new license name directive, to specify license name in a declarative way.

Expand Down
Loading
Loading