6262 "modifiers" ,
6363 "package_managers" ,
6464 "workflow_managers" ,
65+ "base_classes" ,
6566 "base_applications" ,
6667 "base_modifiers" ,
6768 "base_package_managers" ,
108109 "accepted_configs" : ["workflow_manager_repo.yaml" , unified_config ],
109110 "singular" : "workflow manager" ,
110111 },
112+ ObjectTypes .base_classes : {
113+ "file_name" : "base_class.py" ,
114+ "dir_name" : "base_classes" ,
115+ "abbrev" : "base_cls" ,
116+ "config_section" : "base_class_repos" ,
117+ "accepted_configs" : ["base_class_repo.yaml" , unified_config ],
118+ "singular" : "base class" ,
119+ },
111120 ObjectTypes .base_applications : {
112121 "file_name" : "base_application.py" ,
113122 "dir_name" : "base_applications" ,
@@ -163,6 +172,11 @@ def _workflow_managers(repo_dirs=None):
163172 return _gen_path (repo_dirs = repo_dirs , obj_type = ObjectTypes .workflow_managers )
164173
165174
175+ def _base_classes (repo_dirs = None ):
176+ """Get the base classes singleton RepoPath instance for Ramble."""
177+ return _gen_path (repo_dirs = repo_dirs , obj_type = ObjectTypes .base_classes )
178+
179+
166180def _base_apps (repo_dirs = None ):
167181 """Get the base applications singleton RepoPath instance for Ramble."""
168182 return _gen_path (repo_dirs = repo_dirs , obj_type = ObjectTypes .base_applications )
@@ -188,6 +202,7 @@ def _base_workflow_managers(repo_dirs=None):
188202 ObjectTypes .modifiers : llnl .util .lang .Singleton (_mods ),
189203 ObjectTypes .package_managers : llnl .util .lang .Singleton (_package_managers ),
190204 ObjectTypes .workflow_managers : llnl .util .lang .Singleton (_workflow_managers ),
205+ ObjectTypes .base_classes : llnl .util .lang .Singleton (_base_classes ),
191206 ObjectTypes .base_applications : llnl .util .lang .Singleton (_base_apps ),
192207 ObjectTypes .base_modifiers : llnl .util .lang .Singleton (_base_mods ),
193208 ObjectTypes .base_package_managers : llnl .util .lang .Singleton (_base_package_managers ),
@@ -272,6 +287,16 @@ def get(spec, object_type=default_type):
272287 return paths [object_type ].get (spec )
273288
274289
290+ def get_base_class (spec ):
291+ """Convenience wrapper around ``ramble.repository.get_obj_class()`` for base classes."""
292+ return paths [ObjectTypes .base_classes ].get_obj_class (spec )
293+
294+
295+ def get_obj_class (spec , object_type = default_type ):
296+ """Convenience wrapper around ``ramble.repository.get_obj_class()``."""
297+ return paths [object_type ].get_obj_class (spec )
298+
299+
275300def set_path (repo , object_type = default_type ):
276301 """Set the path singleton to a specific value.
277302
0 commit comments