From f7ce40a06530872f050402e57a96b95c2893f2f1 Mon Sep 17 00:00:00 2001 From: Bence Nagy Date: Mon, 15 Jul 2024 10:27:08 -0700 Subject: [PATCH] Remove SyntaxHighlighter newline, release 0.4.2 --- CHANGELOG.md | 5 +++++ setup.py | 2 +- structlog_pretty/processors.py | 5 +++-- test/test_SyntaxHighlighter.py | 31 +++++++++++++++++-------------- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b6c088..891a970 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG +## 0.4.2 (2024-07-15) + +- Fix typing import unavailable on 3.8 +- Remove trailing newline added by SyntaxHighlighter + ## 0.4.1 (2024-06-11) - Export PathPrettifier via top-level package diff --git a/setup.py b/setup.py index cd88323..b7c73ba 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ setup( name="structlog-pretty", - version="0.4.1", + version="0.4.2", url="https://github.com/underyx/structlog-pretty", author="Bence Nagy", author_email="bence@underyx.me", diff --git a/structlog_pretty/processors.py b/structlog_pretty/processors.py index f4cbaa1..706ae2e 100644 --- a/structlog_pretty/processors.py +++ b/structlog_pretty/processors.py @@ -11,6 +11,7 @@ except ImportError: fast_json_available = False +from typing import Optional from xml.dom.minidom import parseString as parse_xml_string try: @@ -179,7 +180,7 @@ def __call__(self, _, __, event_dict): continue if not code: continue - event_dict[field] = highlight(code, lexer, TerminalFormatter()) + event_dict[field] = highlight(code, lexer, TerminalFormatter()).rstrip() return event_dict @@ -223,7 +224,7 @@ class PathPrettifier: Note that working directory is determined when configuring structlog. """ - def __init__(self, base_dir: Path | None = None): + def __init__(self, base_dir: Optional[Path] = None): self.base_dir = base_dir or Path.cwd() def __call__(self, _, __, event_dict): diff --git a/test/test_SyntaxHighlighter.py b/test/test_SyntaxHighlighter.py index 927db6b..71a7bef 100644 --- a/test/test_SyntaxHighlighter.py +++ b/test/test_SyntaxHighlighter.py @@ -2,26 +2,29 @@ def test_json(): - processor = uut(field_map={'body': 'json'}) - event_dict = processor(None, None, {'body': '{"ping": true}'}) - assert '\x1b[' in event_dict['body'], 'should have at least one ANSI escape code' + processor = uut(field_map={"body": "json"}) + event_dict = processor(None, None, {"body": '{"ping": true}'}) + assert "\x1b[" in event_dict["body"], "should have at least one ANSI escape code" + assert not event_dict["body"].endswith( + "\n" + ), "should not have trailing newline added" def test_missing_json(): - processor = uut(field_map={'body': 'json'}) - event_dict = processor(None, None, {'not_body': '{"ping": true}'}) - assert event_dict['not_body'] == '{"ping": true}' + processor = uut(field_map={"body": "json"}) + event_dict = processor(None, None, {"not_body": '{"ping": true}'}) + assert event_dict["not_body"] == '{"ping": true}' def test_multiple_fields(): - processor = uut(field_map={'body': 'json', 'body_2': 'json'}) - event_dict = processor(None, None, {'body': 'null', 'body_2': 'null'}) - assert '\x1b[' in event_dict['body'], 'should have at least one ANSI escape code' - assert '\x1b[' in event_dict['body_2'], 'should have at least one ANSI escape code' + processor = uut(field_map={"body": "json", "body_2": "json"}) + event_dict = processor(None, None, {"body": "null", "body_2": "null"}) + assert "\x1b[" in event_dict["body"], "should have at least one ANSI escape code" + assert "\x1b[" in event_dict["body_2"], "should have at least one ANSI escape code" def test_multiple_languages(): - processor = uut(field_map={'body': 'json', 'body_2': 'xml'}) - event_dict = processor(None, None, {'body': 'null', 'body_2': ''}) - assert '\x1b[' in event_dict['body'], 'should have at least one ANSI escape code' - assert '\x1b[' in event_dict['body_2'], 'should have at least one ANSI escape code' + processor = uut(field_map={"body": "json", "body_2": "xml"}) + event_dict = processor(None, None, {"body": "null", "body_2": ""}) + assert "\x1b[" in event_dict["body"], "should have at least one ANSI escape code" + assert "\x1b[" in event_dict["body_2"], "should have at least one ANSI escape code"