Skip to content

Commit 4590dc9

Browse files
committed
Added function for inverting mapping
1 parent 4f16fcf commit 4590dc9

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

warg/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
__project__ = "Warg"
22

33
__author__ = "Christian Heider Lindbjerg"
4-
__version__ = "1.5.2"
4+
__version__ = "1.5.3"
55
__doc__ = r"""
66
Created on 27/04/2019
77

warg/data_structures/mappings.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from collections import defaultdict
22

33
import logging
4-
from typing import Callable, Dict, Hashable, Iterable, Mapping, MutableMapping
4+
from typing import Any, Callable, Dict, Hashable, Iterable, List, Mapping, MutableMapping
55

66
_logger = logging.getLogger(__name__)
77
__all__ = [
@@ -12,6 +12,7 @@
1212
"pivot_dict",
1313
"to_dict",
1414
"nested_dict",
15+
"invert_mapping_list",
1516
]
1617

1718

@@ -87,6 +88,22 @@ def invert_dict(d: Mapping) -> Dict: # TODO: HANDLE DUPLICATE KEYS; CONVERT TO
8788
return {v: k for k, v in d.items()}
8889

8990

91+
def invert_mapping_list(m: Mapping[Any, Any]) -> Mapping[Any, List[Any]]:
92+
"""
93+
94+
:param m:
95+
:type m:
96+
:return:
97+
:rtype:
98+
"""
99+
out = defaultdict(list)
100+
101+
for k, v in m.items():
102+
out[v].append(k)
103+
104+
return out
105+
106+
90107
def pivot_dict(d: Dict, key) -> Dict: # TODO: HANDLE DUPLICATE KEYS; CONVERT TO TUPLES
91108
"""
92109
pivot_key -> pivot_value

warg/datetimes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
DEFAULT_REPRESENTATION = "%Y-%m-%d_%H:%M:%S.%f"
1313

1414

15-
def default_datetime_repr(date: datetime, str_format: str = DEFAULT_REPRESENTATION) -> str:
15+
def default_datetime_repr(date: datetime.datetime, str_format: str = DEFAULT_REPRESENTATION) -> str:
1616
"""
1717
1818
:param date:

0 commit comments

Comments
 (0)