from functools import wraps

def singleton(cls):
    _instance = {}
    
    @wraps(cls)
    def inner(*args, **kargs):
        
        if cls not in _instance:
            _instance[cls] = cls(*args, **kargs)
            cls.instance = _instance[cls]
        return _instance[cls]
    return inner


# Project.__name__

# Projec