<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dictionaries_walker(dictionary, path=()):
 """ Defines a generator used to walk into nested dictionaries. Usage:: <generator object dictionaries_walker at 0x10131a320> (('Level 1A', 'Level 2A'), 'Level 3A', 'Higher Level') ((), 'Level 1B', 'Lower level') :param dictionary: Dictionary to walk. :type dictionary: dict :param path: Walked paths. :type path: tuple :return: Path, key, value. :rtype: tuple :note: This generator won't / can't yield any dictionaries, if you want to be able to retrieve dictionaries anyway, you will have to either encapsulate them in another object, or mutate their base class. """


    for key in dictionary:
        if not isinstance(dictionary[key], dict):
            yield path, key, dictionary[key]
        else:
            for value in dictionaries_walker(dictionary[key], path + (key,)):
                yield value