mirror of
https://github.com/iperov/DeepFaceLive.git
synced 2024-10-18 01:20:20 -07:00
43 lines
1001 B
Python
43 lines
1001 B
Python
class dotdict(dict):
|
|
"""dot.notation access to dictionary attributes"""
|
|
__getattr__ = dict.get
|
|
__setattr__ = dict.__setitem__
|
|
__delattr__ = dict.__delitem__
|
|
|
|
from .EventListener import EventListener
|
|
|
|
def all_is_not_None(*args): return all(x is not None for x in args)
|
|
def all_is_None(*args): return all(x is None for x in args)
|
|
|
|
class Disposable:
|
|
def __del__(self):
|
|
self.dispose()
|
|
|
|
def _on_dispose(self):
|
|
pass
|
|
|
|
|
|
def dispose(self):
|
|
_disposed = getattr(self, '_disposed', False)
|
|
if not _disposed:
|
|
self._disposed = True
|
|
self._on_dispose()
|
|
|
|
def repeat_call(obj, func_name, args_list):
|
|
"""
|
|
|
|
"""
|
|
func = getattr(obj, func_name)
|
|
for args in args_list:
|
|
if not isinstance(args, list):
|
|
args = [args]
|
|
func(*args)
|
|
|
|
def repeat_objs_call(obj_list, func_name, *args, **kwargs):
|
|
"""
|
|
|
|
"""
|
|
for obj in obj_list:
|
|
func = getattr(obj, func_name)
|
|
func(*args, **kwargs)
|