From 76a56e748a1123cb2d204f7ca79e4ee81cc840c6 Mon Sep 17 00:00:00 2001 From: Leo Schick Date: Wed, 25 Jan 2023 08:50:08 +0100 Subject: [PATCH 1/4] fix get_user_display_name on docker --- mara_pipelines/logging/pipeline_events.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mara_pipelines/logging/pipeline_events.py b/mara_pipelines/logging/pipeline_events.py index ea1d843..a29252c 100644 --- a/mara_pipelines/logging/pipeline_events.py +++ b/mara_pipelines/logging/pipeline_events.py @@ -142,4 +142,5 @@ def get_user_display_name(interactively_started: bool) -> t.Optional[str]: return os.environ.get('MARA_RUN_USER_DISPLAY_NAME') if not interactively_started: return None - return os.environ.get('SUDO_USER') or os.environ.get('USER') or os.getlogin() + import getpass + return os.environ.get('SUDO_USER') or os.environ.get('USER') or getpass.getuser() From 7b9741365778fddd0975e6fdc228cc09db7ee135 Mon Sep 17 00:00:00 2001 From: Leo Schick Date: Thu, 26 Jan 2023 12:57:10 +0100 Subject: [PATCH 2/4] securing that get_user_display_name does not fail --- mara_pipelines/logging/pipeline_events.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mara_pipelines/logging/pipeline_events.py b/mara_pipelines/logging/pipeline_events.py index a29252c..9fa09fb 100644 --- a/mara_pipelines/logging/pipeline_events.py +++ b/mara_pipelines/logging/pipeline_events.py @@ -142,5 +142,8 @@ def get_user_display_name(interactively_started: bool) -> t.Optional[str]: return os.environ.get('MARA_RUN_USER_DISPLAY_NAME') if not interactively_started: return None - import getpass - return os.environ.get('SUDO_USER') or os.environ.get('USER') or getpass.getuser() + try: + import getpass + return os.environ.get('SUDO_USER') or os.environ.get('USER') or getpass.getuser() + except: + return None From e8931a5e4774901283aab1810a0d4592dc6c4dad Mon Sep 17 00:00:00 2001 From: Leo Schick Date: Thu, 26 Jan 2023 12:57:52 +0100 Subject: [PATCH 3/4] improve typing in logging/pipeline_events.py --- mara_pipelines/logging/pipeline_events.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mara_pipelines/logging/pipeline_events.py b/mara_pipelines/logging/pipeline_events.py index 9fa09fb..066e018 100644 --- a/mara_pipelines/logging/pipeline_events.py +++ b/mara_pipelines/logging/pipeline_events.py @@ -1,7 +1,6 @@ """Events that are emitted during pipeline execution""" import datetime -import json import enum import typing as t @@ -10,7 +9,7 @@ class PipelineEvent(Event): - def __init__(self, node_path: [str]) -> None: + def __init__(self, node_path: t.List[str]) -> None: """ Base class for events that are emitted during a pipeline run. @@ -23,7 +22,7 @@ def __init__(self, node_path: [str]) -> None: class RunStarted(PipelineEvent): - def __init__(self, node_path: [str], + def __init__(self, node_path: t.List[str], start_time: datetime.datetime, pid: int, is_root_pipeline: bool = False, @@ -51,7 +50,7 @@ def __init__(self, node_path: [str], class RunFinished(PipelineEvent): - def __init__(self, node_path: [str], + def __init__(self, node_path: t.List[str], end_time: datetime.datetime, succeeded: bool, interactively_started: bool = False) -> None: @@ -71,7 +70,7 @@ def __init__(self, node_path: [str], class NodeStarted(PipelineEvent): - def __init__(self, node_path: [str], start_time: datetime.datetime, is_pipeline: bool) -> None: + def __init__(self, node_path: t.List[str], start_time: datetime.datetime, is_pipeline: bool) -> None: """ A task run started. Args: @@ -85,7 +84,7 @@ def __init__(self, node_path: [str], start_time: datetime.datetime, is_pipeline: class NodeFinished(PipelineEvent): - def __init__(self, node_path: [str], start_time: datetime.datetime, end_time: datetime.datetime, + def __init__(self, node_path: t.List[str], start_time: datetime.datetime, end_time: datetime.datetime, is_pipeline: bool, succeeded: bool) -> None: """ A run of a task or pipeline finished. @@ -110,7 +109,7 @@ class Format(enum.EnumMeta): VERBATIM = 'verbatim' ITALICS = 'italics' - def __init__(self, node_path: [str], message: str, + def __init__(self, node_path: t.List[str], message: str, format: Format = Format.STANDARD, is_error: bool = False) -> None: """ Some text output occurred. From 3d3a2c09f6ea45ce06b1c56f8464f8b04d87d905 Mon Sep 17 00:00:00 2001 From: Leo Schick Date: Fri, 27 Jan 2023 07:07:58 +0100 Subject: [PATCH 4/4] pylint --- mara_pipelines/logging/pipeline_events.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mara_pipelines/logging/pipeline_events.py b/mara_pipelines/logging/pipeline_events.py index 066e018..8d5da06 100644 --- a/mara_pipelines/logging/pipeline_events.py +++ b/mara_pipelines/logging/pipeline_events.py @@ -1,6 +1,8 @@ """Events that are emitted during pipeline execution""" import datetime +import os +import getpass import enum import typing as t @@ -136,13 +138,11 @@ def get_user_display_name(interactively_started: bool) -> t.Optional[str]: Patch if you have more sophisticated needs. """ - import os if 'MARA_RUN_USER_DISPLAY_NAME' in os.environ: return os.environ.get('MARA_RUN_USER_DISPLAY_NAME') if not interactively_started: return None try: - import getpass return os.environ.get('SUDO_USER') or os.environ.get('USER') or getpass.getuser() - except: + except Exception: # pylint: disable=W0703 return None