diff --git a/tracksuite/__init__.py b/tracksuite/__init__.py index 0c98e6d..439f5ef 100644 --- a/tracksuite/__init__.py +++ b/tracksuite/__init__.py @@ -1,5 +1,16 @@ # 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 +23,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..68c27f9 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,9 @@ 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 +57,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 +71,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..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 -import logging 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 c5a280c..c8b599b 100644 --- a/tracksuite/init.py +++ b/tracksuite/init.py @@ -1,11 +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: 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..548acab 100644 --- a/tracksuite/repos.py +++ b/tracksuite/repos.py @@ -1,9 +1,10 @@ -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..df17b79 100644 --- a/tracksuite/revert.py +++ b/tracksuite/revert.py @@ -1,7 +1,7 @@ import argparse -import logging as log import os +from tracksuite import LOGGER as log from tracksuite.repos import GitRepositories