def __init__(self, url, repo_dir, progress_callback=None, *args, **kwargs):
self.__dict__.update(kwargs)<EOL>self.progress_callback = progress_callback<EOL>self.url = url<EOL>self.parent_dir = os.path.dirname(repo_dir)<EOL>self.name = os.path.basename(os.path.normpath(repo_dir))<EOL>self.path = repo_dir<EOL>if hasattr(self, '<STR_LIT>'):<EOL><INDENT>urlparse.uses_netloc.extend(self.schemes)<EOL>if getattr(urlparse, '<STR_LIT>', None):<EOL><INDENT>urlparse.uses_fragment.extend(self.schemes)<EOL><DEDENT><DEDENT>RepoLoggingAdapter.__init__(self, logger, {})<EOL>
:param callback: Retrieve live progress from ``sys.stderr`` (useful for
    certain vcs commands like ``git pull``. Use ``progress_callback``::

        def progress_cb(output, timestamp):
            sys.stdout.write(output)
            sys.stdout.flush()
        create_repo(..., progress_callback=progress_cb)
:type callback: func