File: utils.py

package info (click to toggle)
python-moto 5.1.18-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 116,520 kB
  • sloc: python: 636,725; javascript: 181; makefile: 39; sh: 3
file content (24 lines) | stat: -rw-r--r-- 879 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import collections.abc as collections_abc
from typing import Any

from moto.moto_api._internal import mock_random


def get_random_pipeline_id() -> str:
    return f"df-{mock_random.get_random_hex(length=19)}"


def remove_capitalization_of_dict_keys(obj: Any) -> Any:
    if isinstance(obj, collections_abc.Mapping):
        result = obj.__class__()
        for key, value in obj.items():
            normalized_key = key[:1].lower() + key[1:]
            result[normalized_key] = remove_capitalization_of_dict_keys(value)  # type: ignore[index]
        return result
    elif isinstance(obj, collections_abc.Iterable) and not isinstance(obj, str):
        result = obj.__class__()  # type: ignore[assignment]
        for item in obj:
            result += (remove_capitalization_of_dict_keys(item),)  # type: ignore[operator]
        return result
    else:
        return obj