'Resolve the order of options\' processing.'

@classmethod
def _init_dependencies_order(cls):

    if (cls.__order__ is None):
        (vertices, edges) = ([], set([]))
        for (name, option) in cls.__options__.items():
            vertices.append(name)
            for _name in option.after:
                edges.add((_name, name))
            for _name in option.before:
                edges.add((name, _name))
        try:
            cls.__order__ = topological_sort((vertices, list(edges)))
        except ValueError:
            raise RuntimeError('cycle    detected    in    sympy.polys    options    framework')
