diff --git a/CHANGELOG.md b/CHANGELOG.md index 659be69dfdbd50e598793ae54a5313456c898ec3..340e41c1fbc76e718daf9249bcf7a8ded6b9101f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,3 @@ # v2.8.4 +* added `stringify_dict` diff --git a/docs/coding/transforms.rst b/docs/coding/transforms.rst new file mode 100644 index 0000000000000000000000000000000000000000..6350c3944145ceebb04f6c9a8be7ad75611a413a --- /dev/null +++ b/docs/coding/transforms.rst @@ -0,0 +1,8 @@ +Rudimentary data transforms. + +stringify_dict +============== + +Make both keys and values of this dict a string, by passing them through stringify function. + +.. autofunction:: satella.coding.transforms.stringify_dict diff --git a/docs/index.rst b/docs/index.rst index 28eff3ed499c849b8744e4609cdeff7e8dc95708..7e5d5ad88e9409d50773b26e23914317b19f2fe1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -16,6 +16,7 @@ Visit the project's page at GitHub_! coding/structures coding/concurrent coding/sequences + coding/transforms instrumentation/traceback instrumentation/memory instrumentation/metrics diff --git a/satella/__init__.py b/satella/__init__.py index fc33c922b66c4faa3f91faef19f4b4a6d4ffcc55..ef59cc95ce70c26dc2b62692e3fd950ff39909a2 100644 --- a/satella/__init__.py +++ b/satella/__init__.py @@ -1 +1 @@ -__version__ = '2.8.4_a2' +__version__ = '2.8.4_a3' diff --git a/satella/coding/transforms/__init__.py b/satella/coding/transforms/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..883258174a9e0c7f79d4028644999582cae5dfa7 --- /dev/null +++ b/satella/coding/transforms/__init__.py @@ -0,0 +1,7 @@ +import typing as tp + +__all__ = ['stringify_dict'] + + +def stringify_dict(dct: dict, stringify: tp.Callable[[tp.Any], str]) -> tp.Dict[str, str]: + return {stringify(k): stringify(v) for k, v in dct.items()} diff --git a/tests/test_coding/test_transforms.py b/tests/test_coding/test_transforms.py new file mode 100644 index 0000000000000000000000000000000000000000..11b098cbf7cc6517d4ddae0038783577f8455f9e --- /dev/null +++ b/tests/test_coding/test_transforms.py @@ -0,0 +1,8 @@ +import unittest +from satella.coding.transforms import stringify_dict + + +class MyTestCase(unittest.TestCase): + def test_stringify_dict(self): + dct = {1: 2, 3: 4, 5: 6} + self.assertEqual(stringify_dict(dct), {'1': '2', '3': '4', '5': '6'})