diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-02-03 11:48:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-03 16:48:13 +0000 |
commit | f0cae26d58f6f907236112be5f4eaecc376b1304 (patch) | |
tree | c2ab46d8e743b262e186fc661571d922ad34759c /synapse/push | |
parent | Support the backwards compatibility features in MSC3952. (#14958) (diff) | |
download | synapse-f0cae26d58f6f907236112be5f4eaecc376b1304.tar.xz |
Add a docstring & tests for _flatten_dict. (#14981)
Diffstat (limited to 'synapse/push')
-rw-r--r-- | synapse/push/bulk_push_rule_evaluator.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/synapse/push/bulk_push_rule_evaluator.py b/synapse/push/bulk_push_rule_evaluator.py index 9bf92b9765..20369f3dfe 100644 --- a/synapse/push/bulk_push_rule_evaluator.py +++ b/synapse/push/bulk_push_rule_evaluator.py @@ -473,6 +473,29 @@ def _flatten_dict( prefix: Optional[List[str]] = None, result: Optional[Dict[str, str]] = None, ) -> Dict[str, str]: + """ + Given a JSON dictionary (or event) which might contain sub dictionaries, + flatten it into a single layer dictionary by combining the keys & sub-keys. + + Any (non-dictionary), non-string value is dropped. + + Transforms: + + {"foo": {"bar": "test"}} + + To: + + {"foo.bar": "test"} + + Args: + d: The event or content to continue flattening. + room_version: The room version object. + prefix: The key prefix (from outer dictionaries). + result: The result to mutate. + + Returns: + The resulting dictionary. + """ if prefix is None: prefix = [] if result is None: |