Skip to content

Commit ed4c1fc

Browse files
authored
0.2.0 (#4)
* readme stuff * CI * fix CI + 0.1.1 * remove comments * added set_entries, badges - 0.2.0
1 parent 8f05bf3 commit ed4c1fc

File tree

5 files changed

+26
-7
lines changed

5 files changed

+26
-7
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# contextfilter
2-
2+
![Version](https://img.shields.io/pypi/v/contextfilter)
3+
![License](https://img.shields.io/pypi/l/contextfilter)
4+
![Tests](https://github.com/aviramha/contextfilter/workflows/Test%20Contextfilter/badge.svg?branch=develop)
35
Small, helper library for logging contextual information in Python 3.7.
46

57
## Installation
@@ -11,11 +13,13 @@ $ pip install contextfilter
1113
## Usage
1214
```py
1315
import logging
14-
from contextfilter import ContextFilter, set_entry
16+
from contextfilter import ContextFilter, set_entry, set_entries
1517

1618
logger = logging.getLogger("test")
1719
logger.addFilter(ContextFilter())
1820
set_entry("request_id", 3)
21+
# or
22+
set_entries(request_id=3)
1923
logger.info("test")
2024
# Log record will contain the attribute request_id with value 3
2125
```

contextfilter/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from .main import ContextFilter, reset, set_entry
1+
from .main import ContextFilter, reset, set_entries, set_entry
22

3-
__all__ = ("ContextFilter", "set_entry", "reset")
3+
__all__ = ("ContextFilter", "set_entry", "reset", "set_entries")

contextfilter/main.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,18 @@ def set_entry(name: Hashable, value: Any) -> None:
5656
extra_dict[name] = value
5757

5858

59+
def set_entries(**entries: Any) -> None:
60+
"""
61+
Sets multiple entries at once.
62+
Args:
63+
**entries - key, value
64+
Raises:
65+
ValueError - if any of the entries is in PROTECTED_KEYS.
66+
"""
67+
for key, value in entries.items():
68+
set_entry(key, value)
69+
70+
5971
def reset() -> Dict[Any, Any]:
6072
"""
6173
Resets the ContextFilter's context dictioniary.

pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
[tool.poetry]
22
name = "contextfilter"
3-
version = "0.1.1"
3+
version = "0.2.0"
44
description = "ContextVars Filter for easily enriching log records"
55
authors = ["Aviram Hassan <[email protected]>"]
66
license = "MIT"
7+
readme = "README.md"
8+
repository = "https://github.com/aviramha/contextfilter"
9+
710

811
[tool.poetry.dependencies]
912
python = "^3.7"

tests/test_main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22
import unittest
33

4-
from contextfilter import ContextFilter, reset, set_entry
4+
from contextfilter import ContextFilter, reset, set_entries, set_entry
55

66

77
class TestSanity(unittest.TestCase):
@@ -10,7 +10,7 @@ def test_sanity(self):
1010
logger.addFilter(ContextFilter())
1111
with self.assertLogs(logger, level="INFO") as output:
1212
logger.info("test1")
13-
set_entry("test_attr", "test_data")
13+
set_entries(test_attr="test_data")
1414
logger.info("test2")
1515
reset()
1616
logger.info("test3")

0 commit comments

Comments
 (0)