From 8cc6cd17fc2e76da39c24e7339d3350eb5b4bcd0 Mon Sep 17 00:00:00 2001 From: Bob Bird Date: Fri, 26 Jul 2024 15:12:09 -0600 Subject: [PATCH] move output_capture to utils --- lib/ramble/ramble/appkit.py | 2 +- lib/ramble/ramble/application.py | 2 +- lib/ramble/ramble/modkit.py | 2 +- lib/ramble/ramble/pkgmankit.py | 2 +- lib/ramble/ramble/schema/internals.py | 3 ++- lib/ramble/ramble/schema/types.py | 27 ------------------- lib/ramble/ramble/util/executable.py | 2 +- lib/ramble/ramble/util/output_capture.py | 33 ++++++++++++++++++++++++ 8 files changed, 40 insertions(+), 33 deletions(-) create mode 100644 lib/ramble/ramble/util/output_capture.py diff --git a/lib/ramble/ramble/appkit.py b/lib/ramble/ramble/appkit.py index b854a840e..58b8c1628 100644 --- a/lib/ramble/ramble/appkit.py +++ b/lib/ramble/ramble/appkit.py @@ -30,4 +30,4 @@ from ramble.util.file_util import get_file_path -from ramble.schema.types import OUTPUT_CAPTURE +from ramble.util.output_capture import OUTPUT_CAPTURE diff --git a/lib/ramble/ramble/application.py b/lib/ramble/ramble/application.py index 63f7a2907..895b86ce9 100644 --- a/lib/ramble/ramble/application.py +++ b/lib/ramble/ramble/application.py @@ -55,7 +55,7 @@ from ramble.language.application_language import ApplicationMeta from ramble.language.shared_language import SharedMeta, register_builtin, register_phase from ramble.error import RambleError -from ramble.schema.types import output_mapper +from ramble.util.output_capture import output_mapper from enum import Enum diff --git a/lib/ramble/ramble/modkit.py b/lib/ramble/ramble/modkit.py index 296ae9238..b921029ff 100644 --- a/lib/ramble/ramble/modkit.py +++ b/lib/ramble/ramble/modkit.py @@ -26,6 +26,6 @@ import ramble.language.modifier_language from ramble.language.modifier_language import * from ramble.language.shared_language import * -from ramble.schema.types import OUTPUT_CAPTURE +from ramble.util.output_capture import OUTPUT_CAPTURE from ramble.util.file_util import get_file_path diff --git a/lib/ramble/ramble/pkgmankit.py b/lib/ramble/ramble/pkgmankit.py index f50c33b29..265b10774 100644 --- a/lib/ramble/ramble/pkgmankit.py +++ b/lib/ramble/ramble/pkgmankit.py @@ -28,6 +28,6 @@ import ramble.language.package_manager_language from ramble.language.package_manager_language import * from ramble.language.shared_language import * -from ramble.schema.types import OUTPUT_CAPTURE +from ramble.util.output_capture import OUTPUT_CAPTURE from ramble.software_environments import ExternalEnvironment diff --git a/lib/ramble/ramble/schema/internals.py b/lib/ramble/ramble/schema/internals.py index e0f1c1623..44b153fd2 100644 --- a/lib/ramble/ramble/schema/internals.py +++ b/lib/ramble/ramble/schema/internals.py @@ -16,6 +16,7 @@ import ramble.schema.types import ramble.schema.variables +from ramble.util.output_capture import OUTPUT_CAPTURE custom_executables_def = { @@ -28,7 +29,7 @@ "use_mpi": False, "redirect": "{log_file}", "variables": {}, - "output_capture": ramble.schema.types.OUTPUT_CAPTURE.DEFAULT, + "output_capture": OUTPUT_CAPTURE.DEFAULT, }, "properties": union_dicts( { diff --git a/lib/ramble/ramble/schema/types.py b/lib/ramble/ramble/schema/types.py index 7f3fa33a7..43ba934e5 100644 --- a/lib/ramble/ramble/schema/types.py +++ b/lib/ramble/ramble/schema/types.py @@ -8,33 +8,6 @@ """Base types for building schema files from""" -from enum import Enum - - -class OUTPUT_CAPTURE(Enum): - STDOUT = 0 - STDERR = 1 - ALL = 2 - DEFAULT = 2 - - -class output_mapper: - def __init__(self): - self.map = { - OUTPUT_CAPTURE.STDOUT: ">>", - OUTPUT_CAPTURE.STDERR: "2>>", - OUTPUT_CAPTURE.ALL: ">>", - } - self.SUFFIX = "2>&1" - - def generate_out_string(self, out_log, output_operator): - redirect_str = f' {self.map.get(output_operator, output_operator)} "{out_log}"' - if output_operator is OUTPUT_CAPTURE.ALL: - redirect_str += f" {self.SUFFIX}" - - return redirect_str - - string_or_num_list = [{"type": "string"}, {"type": "number"}] string_or_num = {"anyOf": string_or_num_list} diff --git a/lib/ramble/ramble/util/executable.py b/lib/ramble/ramble/util/executable.py index d7e8e1ef5..75b7ef3bf 100644 --- a/lib/ramble/ramble/util/executable.py +++ b/lib/ramble/ramble/util/executable.py @@ -10,7 +10,7 @@ import ramble.error -from ramble.schema.types import OUTPUT_CAPTURE +from ramble.util.output_capture import OUTPUT_CAPTURE import spack.util.executable from spack.util.path import system_path_filter diff --git a/lib/ramble/ramble/util/output_capture.py b/lib/ramble/ramble/util/output_capture.py new file mode 100644 index 000000000..fec5bb95c --- /dev/null +++ b/lib/ramble/ramble/util/output_capture.py @@ -0,0 +1,33 @@ +# Copyright 2022-2024 The Ramble Authors +# +# Licensed under the Apache License, Version 2.0 or the MIT license +# , at your +# option. This file may not be copied, modified, or distributed +# except according to those terms. + +from enum import Enum + + +class OUTPUT_CAPTURE(Enum): + STDOUT = 0 + STDERR = 1 + ALL = 2 + DEFAULT = 2 + + +class output_mapper: + def __init__(self): + self.map = { + OUTPUT_CAPTURE.STDOUT: ">>", + OUTPUT_CAPTURE.STDERR: "2>>", + OUTPUT_CAPTURE.ALL: ">>", + } + self.SUFFIX = "2>&1" + + def generate_out_string(self, out_log, output_operator): + redirect_str = f' {self.map.get(output_operator, output_operator)} "{out_log}"' + if output_operator is OUTPUT_CAPTURE.ALL: + redirect_str += f" {self.SUFFIX}" + + return redirect_str