From 41fcd15732b3bc271290acb1623204dca3f1a7fe Mon Sep 17 00:00:00 2001 From: ddc Date: Mon, 17 Aug 2026 15:51:56 -0300 Subject: [PATCH 1/2] v7.0.2 --- tests/core/test_log_utils.py | 39 +++++++++++------------ tests/timezone/test_zoneinfo_fallbacks.py | 3 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/tests/core/test_log_utils.py b/tests/core/test_log_utils.py index 73eafe1..1e04e4f 100644 --- a/tests/core/test_log_utils.py +++ b/tests/core/test_log_utils.py @@ -1248,17 +1248,17 @@ def test_timezone_offset_various_timezones(self): for tz, expected_offset in timezones: try: offset = log_utils.get_timezone_offset(tz) - assert isinstance(offset, str) - assert len(offset) == 5 # Format: +/-HHMM - assert offset[0] in ["+", "-"] - - if expected_offset: - assert offset == expected_offset - except Exception as e: # Some timezones might not be available on all systems pytest.skip(f"Timezone {tz} not available: {e}") + assert isinstance(offset, str) + assert len(offset) == 5 # Format: +/-HHMM + assert offset[0] in ["+", "-"] + + if expected_offset: + assert offset == expected_offset + def test_formatter_and_logger_integration(self): """Test integration between get_logger_and_formatter and other utilities.""" name = "integration_test" @@ -1270,24 +1270,23 @@ def test_formatter_and_logger_integration(self): for timezone in timezones: try: logger, formatter = log_utils.get_logger_and_formatter(name, datefmt, True, timezone) - - # Verify logger properties - assert logger.name == name - assert isinstance(formatter, logging.Formatter) - assert formatter.datefmt == datefmt - - # Test format string generation format_str = log_utils.get_format(True, name, timezone) - assert f"[{name}]:" in format_str - assert "[%(filename)s:%(funcName)s:%(lineno)d]:" in format_str - - # Test timezone function integration tz_func = log_utils.get_timezone_function(timezone) - assert callable(tz_func) - except Exception as e: pytest.skip(f"Timezone {timezone} not available: {e}") + # Verify logger properties + assert logger.name == name + assert isinstance(formatter, logging.Formatter) + assert formatter.datefmt == datefmt + + # Test format string generation + assert f"[{name}]:" in format_str + assert "[%(filename)s:%(funcName)s:%(lineno)d]:" in format_str + + # Test timezone function integration + assert callable(tz_func) + def test_memory_efficiency_verification(self): """Test memory efficiency of caching mechanisms.""" import sys diff --git a/tests/timezone/test_zoneinfo_fallbacks.py b/tests/timezone/test_zoneinfo_fallbacks.py index 918d947..fb93632 100644 --- a/tests/timezone/test_zoneinfo_fallbacks.py +++ b/tests/timezone/test_zoneinfo_fallbacks.py @@ -130,11 +130,12 @@ def test_complex_timezone_scenarios(self): streamhandler=False, ) logger.info(f"Complex timezone test: {tz}") - assert logger.name == f"complex_tz_test_{i}" except Exception as e: # Some timezones might not be available on all systems pytest.skip(f"Timezone {tz} not available: {e}") + assert logger.name == f"complex_tz_test_{i}" + def test_zoneinfo_caching_behavior(self): """Test that zoneinfo objects are properly cached.""" from pythonlogs.core.log_utils import get_timezone_function, get_timezone_offset From 4183daf5fa4b039bb8a8bfb4b01541a97a3cad5a Mon Sep 17 00:00:00 2001 From: ddc Date: Mon, 17 Aug 2026 16:17:54 -0300 Subject: [PATCH 2/2] v7.0.2 --- pyproject.toml | 1 + uv.lock | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3a97731..2b55b24 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,6 +46,7 @@ classifiers = [ requires-python = ">=3.12" dependencies = [ "pydantic-settings>=2.15.0", + "tzdata>=2026.3; sys_platform == 'win32'", ] [dependency-groups] diff --git a/uv.lock b/uv.lock index f332ec6..c457503 100644 --- a/uv.lock +++ b/uv.lock @@ -354,6 +354,7 @@ version = "7.0.2" source = { editable = "." } dependencies = [ { name = "pydantic-settings" }, + { name = "tzdata", marker = "sys_platform == 'win32'" }, ] [package.dev-dependencies] @@ -365,7 +366,10 @@ dev = [ ] [package.metadata] -requires-dist = [{ name = "pydantic-settings", specifier = ">=2.15.0" }] +requires-dist = [ + { name = "pydantic-settings", specifier = ">=2.15.0" }, + { name = "tzdata", marker = "sys_platform == 'win32'", specifier = ">=2026.3" }, +] [package.metadata.requires-dev] dev = [ @@ -466,3 +470,12 @@ sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c wheels = [ { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" }, ] + +[[package]] +name = "tzdata" +version = "2026.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/ff/5a28bdfd8c3ebec42564ac7d0e54ca3db65044a9314a97f9564fa7a1e926/tzdata-2026.3.tar.gz", hash = "sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415", size = 198674, upload-time = "2026-07-10T08:50:37.887Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/6d/b53b99a9f2766d095985947a5782f1702cabb129a34f7a802d7197af832f/tzdata-2026.3-py2.py3-none-any.whl", hash = "sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931", size = 348168, upload-time = "2026-07-10T08:50:36.46Z" }, +]