@classmethod
def get_fabric(cls, fcls, fname=None, fake=False):
    """ Make a objects fabric  based on class and name.

        :return function:

        """
    simple = cls.cls_to_simple(fcls)
    func = cls.generators.get(fcls) or cls.generators.get(simple)
    if not func and fcls and fcls.__bases__:
        func = cls.generators.get(fcls.__bases__[0])
    if fname and fake and (fname, simple) in cls.fakers:
        fname = cls.name_to_simple(fname)
        func = cls.fakers.get((fname, simple)) or func
    if func is None:
        return False
    return func
