Skip to content

Commit 12c65db

Browse files
Merge pull request #1271 from rfbgo/implicitname
Allow ramble to assume application name is the class name
2 parents 61fa373 + f904053 commit 12c65db

File tree

6 files changed

+17
-10
lines changed

6 files changed

+17
-10
lines changed

lib/ramble/ramble/test/modifier_language.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,8 +473,7 @@ def add_modifier_variable(mod_inst, mod_var_num=1):
473473
def test_modifier_variable_directive(mod_class):
474474
test_defs = []
475475

476-
mod_inst = mod_class("/not/a/path")
477-
mod_inst.name = "mock-test-mod"
476+
mod_inst = mod_class("/invalid/mock-test-mod/path.py")
478477
test_defs.append(add_modifier_variable(mod_inst))
479478

480479
for test_def in test_defs:
@@ -504,8 +503,7 @@ def test_modifier_class_attributes(mod_class):
504503

505504
@pytest.mark.parametrize("mod_class", mod_types)
506505
def test_require_condition_creates_when_list(mod_class):
507-
mod_inst = mod_class("/not/a/path")
508-
mod_inst.name = "test-mod"
506+
mod_inst = mod_class("/invalid/test-mod/path.py")
509507
for i in range(4):
510508
mod_inst.mode(f"mode_{i}", description="mode")
511509

var/ramble/repos/builtin/base_classes/application-base/base_class.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ def _get_phase_func_wrapper(workspace, phase_func, phase_name):
127127

128128

129129
class ApplicationBase(ObjectMixin, metaclass=ApplicationMeta):
130-
name = None
131130
origin_type = "application"
132131
_builtin_name = NS_SEPARATOR.join(("builtin", "{name}"))
133132
_builtin_required_key = "required"
@@ -201,6 +200,8 @@ def __init__(self, file_path):
201200
self._fom_map = {}
202201

203202
# Ensure we always have the application name, and this is never empty
203+
self._file_path = file_path
204+
204205
self.license_names = self.license_names + [self.name]
205206

206207
self.hash_inventory = {
@@ -215,8 +216,6 @@ def __init__(self, file_path):
215216
}
216217
self.experiment_hash = None
217218

218-
self._file_path = file_path
219-
220219
self.application_class = "ApplicationBase"
221220

222221
self._verbosity = "short"

var/ramble/repos/builtin/base_classes/modifier-base/base_class.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434

3535

3636
class ModifierBase(ObjectMixin, metaclass=ModifierMeta):
37-
name = None
3837
origin_type = "modifier"
3938
_builtin_name = NS_SEPARATOR.join(
4039
("modifier_builtin", "{obj_name}", "{name}")

var/ramble/repos/builtin/base_classes/object_mixin/base_class.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,31 @@
55
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
66
# option. This file may not be copied, modified, or distributed
77
# except according to those terms.
8+
import os
89
from html import escape
910

1011
from ramble.repository import ObjectTypes
1112
from ramble.util import format
13+
from ramble.util.logger import logger
1214

1315

1416
class ObjectMixin:
1517
"""A mixin class for Ramble objects"""
1618

19+
_name = None
20+
1721
def __str__(self):
1822
return self.name
1923

24+
@property
25+
def name(self):
26+
if not self._name:
27+
logger.warn(
28+
f"Application {self.__class__.__name__} is missing explicit name."
29+
)
30+
self._name = os.path.basename(os.path.dirname(self._file_path))
31+
return self._name
32+
2033
@property
2134
def scoped_name(self):
2235
return f"{self.origin_type}::{self.name}"

var/ramble/repos/builtin/base_classes/package-manager-base/base_class.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626

2727
class PackageManagerBase(ObjectMixin, metaclass=PackageManagerMeta):
28-
name = None
2928
origin_type = "package_manager"
3029
_builtin_name = NS_SEPARATOR.join(
3130
("package_manager_builtin", "{obj_name}", "{name}")

var/ramble/repos/builtin/base_classes/workflow-manager-base/base_class.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626

2727
class WorkflowManagerBase(ObjectMixin, metaclass=WorkflowManagerMeta):
28-
name = None
2928
origin_type = "workflow_manager"
3029
_builtin_name = NS_SEPARATOR.join(
3130
("workflow_manager_builtin", "{obj_name}", "{name}")

0 commit comments

Comments
 (0)