File: utility.py

package info (click to toggle)
python-aioredlock 0.7.3-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 184 kB
  • sloc: python: 608; makefile: 2
file content (15 lines) | stat: -rw-r--r-- 521 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import re

REDIS_DSN_PATTERN = r"(rediss?:\/\/)(:.+@)?(.*)"


def clean_password(details, cast=str):
    if isinstance(details, dict):
        details = {**details}
        if "password" in details:
            details["password"] = "*******"
    elif isinstance(details, list):
        details = [clean_password(x, cast=type(x)) for x in details]
    elif isinstance(details, str) and re.match(REDIS_DSN_PATTERN, details):
        details = re.sub(REDIS_DSN_PATTERN, "\\1:*******@\\3", details)
    return cast(details)