From 24d9fd6a890496d434f1b5d13b50fb3a80b8af02 Mon Sep 17 00:00:00 2001 From: Juan Colonese Date: Wed, 25 Jun 2025 16:07:47 +0100 Subject: [PATCH 1/2] add package level logger name and use formatted warnings --- tracksuite/__init__.py | 10 ++++++++++ tracksuite/definition.py | 14 ++++++++------ tracksuite/deploy.py | 2 +- tracksuite/ecflow_client.py | 2 +- tracksuite/init.py | 5 ++--- tracksuite/replace.py | 2 +- tracksuite/repos.py | 2 +- tracksuite/revert.py | 3 +-- 8 files changed, 25 insertions(+), 15 deletions(-) diff --git a/tracksuite/__init__.py b/tracksuite/__init__.py index 0c98e6d..90aa750 100644 --- a/tracksuite/__init__.py +++ b/tracksuite/__init__.py @@ -1,5 +1,13 @@ # flake8: noqa +import logging + +LOGGER = logging.getLogger("tracksuite") + +import warnings +warnings.formatwarning = lambda mess, category, filename, lineno, *args: f"\033[93m[{category.__name__}] {filename}:{lineno}\n{mess}\n\033[0m" +warn = warnings.warn + from .deploy import GitDeployment from .init import setup_remote from .replace import replace_on_server @@ -12,3 +20,5 @@ except ImportError: # pragma: no cover # Local copy or not installed with setuptools __version__ = "" + +LOGGER.debug("tracksuite version: %s", __version__) diff --git a/tracksuite/definition.py b/tracksuite/definition.py index 0c2784e..209f02b 100644 --- a/tracksuite/definition.py +++ b/tracksuite/definition.py @@ -1,7 +1,7 @@ import argparse -import logging as log import os +from tracksuite import LOGGER, warn from tracksuite.ecflow_client import EcflowClient, save_definition from tracksuite.repos import GitRepositories @@ -24,8 +24,10 @@ def update_definition_from_server( - Push the changes to the target repository """ - log.warning( - "The 'update_definition_from_server' function of tracksuite is experimental. Do not use it in production!" + + warn( + "The 'update_definition_from_server' function of tracksuite is experimental. Do not use it in production!", + stacklevel=2 ) # Create the GitSuiteDefinition object @@ -56,9 +58,9 @@ def update_definition_from_server( deployer.check_sync_remotes("target", "backup") # Commit the changes to the local repository - log.info(" -> Git commit") + LOGGER.info(" -> Git commit") if not deployer.commit(message="Update suite definition from server"): - log.info("Nothing to commit... aborting") + LOGGER.info("Nothing to commit... aborting") return False hash_check = deployer.get_hash_remote("target") @@ -70,7 +72,7 @@ def update_definition_from_server( deployer.push("target") if deployer.backup_repo: - log.info(f" -> Git push to backup repository {deployer.backup_repo}") + LOGGER.info(f" -> Git push to backup repository {deployer.backup_repo}") deployer.push("backup") diff --git a/tracksuite/deploy.py b/tracksuite/deploy.py index 9732b05..c2536f9 100644 --- a/tracksuite/deploy.py +++ b/tracksuite/deploy.py @@ -1,8 +1,8 @@ import argparse -import logging as log import os from filecmp import dircmp +from tracksuite import LOGGER as log from tracksuite.repos import GitRepositories from tracksuite.utils import run_cmd diff --git a/tracksuite/ecflow_client.py b/tracksuite/ecflow_client.py index 8147f8c..0e7a3d1 100644 --- a/tracksuite/ecflow_client.py +++ b/tracksuite/ecflow_client.py @@ -1,6 +1,6 @@ from __future__ import annotations # ← annotations are strings at run‑time -import logging as log +from tracksuite import LOGGER as log from typing import Any, cast try: diff --git a/tracksuite/init.py b/tracksuite/init.py index c5a280c..803431c 100644 --- a/tracksuite/init.py +++ b/tracksuite/init.py @@ -1,12 +1,11 @@ import argparse -import logging as log import os import tempfile import git -from .utils import run_cmd - +from tracksuite import LOGGER as log +from tracksuite.utils import run_cmd class Client: def __init__(self, host, user): diff --git a/tracksuite/replace.py b/tracksuite/replace.py index 7eff178..6e9180a 100644 --- a/tracksuite/replace.py +++ b/tracksuite/replace.py @@ -1,7 +1,7 @@ import argparse -import logging as log import os +from tracksuite import LOGGER as log from tracksuite.ecflow_client import EcflowClient diff --git a/tracksuite/repos.py b/tracksuite/repos.py index 96419a3..6ab34be 100644 --- a/tracksuite/repos.py +++ b/tracksuite/repos.py @@ -1,9 +1,9 @@ -import logging as log import os import tempfile import git +from tracksuite import LOGGER as log class GitRepositories: def __init__( diff --git a/tracksuite/revert.py b/tracksuite/revert.py index bfaeaa8..d69f844 100644 --- a/tracksuite/revert.py +++ b/tracksuite/revert.py @@ -1,9 +1,8 @@ import argparse -import logging as log import os from tracksuite.repos import GitRepositories - +from tracksuite import LOGGER as log class GitRevert(GitRepositories): def __init__( From 5921eef95d70145d0578153afd1b9476e7189808 Mon Sep 17 00:00:00 2001 From: Corentin Carton De Wiart Date: Wed, 25 Jun 2025 18:55:29 +0000 Subject: [PATCH 2/2] fix formatting --- tracksuite/__init__.py | 5 ++++- tracksuite/definition.py | 3 +-- tracksuite/ecflow_client.py | 4 ++-- tracksuite/init.py | 1 + tracksuite/repos.py | 1 + tracksuite/revert.py | 3 ++- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tracksuite/__init__.py b/tracksuite/__init__.py index 90aa750..439f5ef 100644 --- a/tracksuite/__init__.py +++ b/tracksuite/__init__.py @@ -5,7 +5,10 @@ LOGGER = logging.getLogger("tracksuite") import warnings -warnings.formatwarning = lambda mess, category, filename, lineno, *args: f"\033[93m[{category.__name__}] {filename}:{lineno}\n{mess}\n\033[0m" + +warnings.formatwarning = ( + lambda mess, category, filename, lineno, *args: f"\033[93m[{category.__name__}] {filename}:{lineno}\n{mess}\n\033[0m" +) warn = warnings.warn from .deploy import GitDeployment diff --git a/tracksuite/definition.py b/tracksuite/definition.py index 209f02b..68c27f9 100644 --- a/tracksuite/definition.py +++ b/tracksuite/definition.py @@ -24,10 +24,9 @@ def update_definition_from_server( - Push the changes to the target repository """ - warn( "The 'update_definition_from_server' function of tracksuite is experimental. Do not use it in production!", - stacklevel=2 + stacklevel=2, ) # Create the GitSuiteDefinition object diff --git a/tracksuite/ecflow_client.py b/tracksuite/ecflow_client.py index 0e7a3d1..cde24a6 100644 --- a/tracksuite/ecflow_client.py +++ b/tracksuite/ecflow_client.py @@ -1,8 +1,9 @@ from __future__ import annotations # ← annotations are strings at run‑time -from tracksuite import LOGGER as log from typing import Any, cast +from tracksuite import LOGGER as log + try: import ecflow except ModuleNotFoundError: @@ -15,7 +16,6 @@ class EcflowClient: """ def __init__(self, host: str = None, port: int = None, ssl: bool = False): - # only raise an error at this point if ecflow is not installed if ecflow is None: # type: ignore[comparison‑overlap] raise ModuleNotFoundError( diff --git a/tracksuite/init.py b/tracksuite/init.py index 803431c..c8b599b 100644 --- a/tracksuite/init.py +++ b/tracksuite/init.py @@ -7,6 +7,7 @@ from tracksuite import LOGGER as log from tracksuite.utils import run_cmd + class Client: def __init__(self, host, user): """ diff --git a/tracksuite/repos.py b/tracksuite/repos.py index 6ab34be..548acab 100644 --- a/tracksuite/repos.py +++ b/tracksuite/repos.py @@ -5,6 +5,7 @@ from tracksuite import LOGGER as log + class GitRepositories: def __init__( self, diff --git a/tracksuite/revert.py b/tracksuite/revert.py index d69f844..df17b79 100644 --- a/tracksuite/revert.py +++ b/tracksuite/revert.py @@ -1,8 +1,9 @@ import argparse import os -from tracksuite.repos import GitRepositories from tracksuite import LOGGER as log +from tracksuite.repos import GitRepositories + class GitRevert(GitRepositories): def __init__(