class Project(object):
    """Base class and factory."""

def __new__(cls, url):
    if is_url_local(url):
        return super(Project, cls).__new__(ProjectLocal, url)
Использование конструктора базового класса в качестве фабрики в Python?