docker-tidy/dockertidy/utils.py

28 lines
614 B
Python
Raw Permalink Normal View History

2020-03-01 18:42:29 +01:00
#!/usr/bin/env python3
"""Global utility methods and classes."""
from distutils.util import strtobool
def to_bool(string):
return bool(strtobool(str(string)))
def dict_intersect(d1, d2):
return {
k: dict_intersect(d1[k], d2[k]) if isinstance(d1[k], dict) else d1[k]
for k in d1.keys() & d2.keys()
}
2020-03-01 18:42:29 +01:00
class Singleton(type):
2020-03-06 22:39:32 +01:00
"""Singleton metaclass."""
2020-03-01 18:42:29 +01:00
_instances = {}
2020-03-06 22:39:32 +01:00
def __call__(cls, *args, **kwargs): # noqa
2020-03-01 18:42:29 +01:00
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]