diff --git a/src/picologging/__init__.py b/src/picologging/__init__.py index a44fec9..777cc2c 100644 --- a/src/picologging/__init__.py +++ b/src/picologging/__init__.py @@ -13,6 +13,7 @@ LogRecord, StreamHandler, getLevelName, + raiseExceptions, ) __version__ = "0.9.3" diff --git a/src/picologging/__init__.pyi b/src/picologging/__init__.pyi index 7350c9d..3d8170c 100644 --- a/src/picologging/__init__.pyi +++ b/src/picologging/__init__.pyi @@ -20,6 +20,8 @@ INFO: int DEBUG: int NOTSET: int +raiseExceptions: bool + _SysExcInfoType: TypeAlias = Union[ tuple[type[BaseException], BaseException, TracebackType | None], tuple[None, None, None], diff --git a/src/picologging/_picologging.cxx b/src/picologging/_picologging.cxx index aef0e92..dc3bf6e 100644 --- a/src/picologging/_picologging.cxx +++ b/src/picologging/_picologging.cxx @@ -151,6 +151,8 @@ PyMODINIT_FUNC PyInit__picologging(void) picologging_state *state = get_picologging_state(m); state->g_filepathCache = new FilepathCache(); + PyModule_AddObject(m, "raiseExceptions", Py_NewRef(Py_False)); + Py_INCREF(&LogRecordType); Py_INCREF(&FormatStyleType); Py_INCREF(&FormatterType); diff --git a/tests/unit/test_picologging.py b/tests/unit/test_picologging.py index f3f9e6f..2243155 100644 --- a/tests/unit/test_picologging.py +++ b/tests/unit/test_picologging.py @@ -171,3 +171,10 @@ def test_make_log_record(): @pytest.mark.parametrize("encoding", ["utf-8", None]) def test_basic_config_encoding(encoding): picologging.basicConfig(filename="test.txt", encoding=encoding) + + +@pytest.mark.limit_leaks("192B", filter_fn=filter_gc) +def test_raiseExceptions(): + assert picologging.raiseExceptions is False + picologging.raiseExceptions = True + assert picologging.raiseExceptions is True