from .config_reader import ConfigReader
from .custom_json_encoder import JSONEncoder
from .dict_merger import merge_dicts
from .get_nested import get_nested
from .performancer import clock_this, log_this, time_this
from .qthread_catcher import ReloadingBase, ReloadingWrapper
from .qthread_synchronizer import SynchronizingBase, SynchronizingWrapper
from .resources import get_path, get_resource
from .shift import get_current_shift, get_shift
from .timing import timing


class ReloadingSynchronizingWrapper(ReloadingWrapper, SynchronizingWrapper):
    def __init__(meta, classname, bases, old__dict__):
        SynchronizingWrapper.__init__(meta, classname, bases, old__dict__)
        ReloadingWrapper.__init__(meta, classname, bases, old__dict__)

    def __new__(meta, classname, bases, old__dict__):
        s = SynchronizingWrapper.__new__(meta, classname, bases, old__dict__)
        r = ReloadingWrapper.__new__(meta, classname, bases, old__dict__)
        return
