-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* move ert job config and define hook * add pkgutil to __ini__ file * rename ert entry point
- Loading branch information
1 parent
96a3fba
commit 658838e
Showing
6 changed files
with
71 additions
and
0 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 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 @@ | ||
__path__ = __import__("pkgutil").extend_path(__path__, __name__) |
File renamed without changes.
Empty file.
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,65 @@ | ||
import importlib | ||
import os | ||
from pkg_resources import resource_filename | ||
|
||
from ert.shared.plugins.plugin_manager import hook_implementation | ||
from ert.shared.plugins.plugin_response import plugin_response | ||
|
||
|
||
def _get_jobs_from_directory(directory): | ||
"""Do a filesystem lookup in a directory to check | ||
for available ERT forward models""" | ||
resource_directory = resource_filename("fmu", directory) | ||
|
||
all_files = [ | ||
os.path.join(resource_directory, f) | ||
for f in os.listdir(resource_directory) | ||
if os.path.isfile(os.path.join(resource_directory, f)) | ||
] | ||
return {os.path.basename(path): path for path in all_files} | ||
|
||
|
||
# pylint: disable=no-value-for-parameter | ||
@hook_implementation | ||
@plugin_response( | ||
plugin_name="fmu_sumo_sim2sumo" | ||
) # pylint: disable=no-value-for-parameter | ||
def installable_jobs(): | ||
return _get_jobs_from_directory("sumo/sim2sumo/config_jobs") | ||
|
||
|
||
def _get_module_variable_if_exists(module_name, variable_name, default=""): | ||
try: | ||
script_module = importlib.import_module(module_name) | ||
except ImportError: | ||
return default | ||
|
||
return getattr(script_module, variable_name, default) | ||
|
||
|
||
@hook_implementation | ||
@plugin_response( | ||
plugin_name="fmu_sumo_sim2sumo" | ||
) # pylint: disable=no-value-for-parameter | ||
def job_documentation(job_name): | ||
sumo_fmu_jobs = set(installable_jobs().data.keys()) | ||
if job_name not in sumo_fmu_jobs: | ||
return None | ||
|
||
module_name = "jobs.scripts.{}".format(job_name.lower()) | ||
|
||
description = _get_module_variable_if_exists( | ||
module_name=module_name, variable_name="description" | ||
) | ||
examples = _get_module_variable_if_exists( | ||
module_name=module_name, variable_name="examples" | ||
) | ||
category = _get_module_variable_if_exists( | ||
module_name=module_name, variable_name="category", default="other" | ||
) | ||
|
||
return { | ||
"description": description, | ||
"examples": examples, | ||
"category": category, | ||
} |