From d8ef2ca76827d9a7717783ba7f601ea3ff03fbbd Mon Sep 17 00:00:00 2001 From: gmega Date: Fri, 9 Feb 2024 13:42:42 -0300 Subject: [PATCH] add versioning info to CLI tools --- logtools/__init__.py | 10 ++++++++++ logtools/cli/es_logs.py | 2 ++ logtools/cli/merge.py | 2 ++ logtools/cli/to_csv.py | 2 ++ pyproject.toml | 2 +- 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/logtools/__init__.py b/logtools/__init__.py index e69de29..4493791 100644 --- a/logtools/__init__.py +++ b/logtools/__init__.py @@ -0,0 +1,10 @@ +from importlib import metadata + +try: + __version__ = metadata.version(__package__) +except metadata.PackageNotFoundError: + __version__ = '<>' + +version_string = f'logtools version {__version__}' + +del metadata diff --git a/logtools/cli/es_logs.py b/logtools/cli/es_logs.py index 5f64623..1e956f2 100644 --- a/logtools/cli/es_logs.py +++ b/logtools/cli/es_logs.py @@ -17,6 +17,7 @@ from rich.table import Table from logtools.cli.palettes import ColorMap from logtools.log.sources.input.elastic_search_source import ElasticSearchSource from logtools.resource.elastic_search_log_repo import ElasticSearchLogRepo +from logtools import version_string class ResourceType(Enum): @@ -38,6 +39,7 @@ RESOURCE_DESCRIBERS = { def main(): parser = ArgumentParser() + parser.add_argument('--version', action='version', version=version_string) parser.add_argument( '--es-host', help='ElasticSearch URL (defaults to http://localhost:9200)', diff --git a/logtools/cli/merge.py b/logtools/cli/merge.py index 52a2818..a1542cf 100644 --- a/logtools/cli/merge.py +++ b/logtools/cli/merge.py @@ -10,6 +10,7 @@ import pytz from colored import Fore, Style from dateutil import parser as tsparser +from logtools import version_string from logtools.log.sources.input.file_log_source import FileLogSource from logtools.log.sources.parse.chronicles_raw_source import ChroniclesRawSource from logtools.log.sources.transform.filtered_source import FilteredSource, timestamp_range @@ -80,6 +81,7 @@ def _ensure_utc(ts: datetime) -> datetime: def main(): parser = argparse.ArgumentParser( description='Merges Chronicles logs chronologically and outputs colored, interleaved content.') + parser.add_argument('--version', action='version', version=version_string) parser.add_argument("files", nargs="+", help='Log files to merge.', type=Path) parser.add_argument('--aliases', nargs="*", diff --git a/logtools/cli/to_csv.py b/logtools/cli/to_csv.py index f28325c..025536b 100644 --- a/logtools/cli/to_csv.py +++ b/logtools/cli/to_csv.py @@ -5,6 +5,7 @@ from argparse import ArgumentParser from csv import DictWriter from pathlib import Path +from logtools import version_string from logtools.cli.utils import kv_pair from logtools.log.sources.input.file_log_source import FileLogSource from logtools.log.sources.parse.chronicles_raw_source import ChroniclesRawSource @@ -37,6 +38,7 @@ def to_csv(args): def main(): argparse = ArgumentParser() + parser.add_argument('--version', action='version', version=version_string) argparse.add_argument('--extract-fields', nargs='+', default=[], help='Extract chronicles topics into CSV columns') argparse.add_argument('--constant-column', metavar='KEY=VALUE', nargs='+', type=kv_pair, diff --git a/pyproject.toml b/pyproject.toml index 159a7fa..49479cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "logtools" -version = "1.2.2" +version = "1.2.3" description = "" authors = ["gmega "] readme = "README.md"