Exemple #1
0
    def vcs_repo(self,
                 version=LATEST,
                 environment=None,
                 verbose_name=None,
                 version_type=None):
        """
        Return a Backend object for this project able to handle VCS commands.

        :param environment: environment to run the commands
        :type environment: doc_builder.environments.BuildEnvironment
        :param version: version slug for the backend (``LATEST`` by default)
        :type version: str
        """
        # TODO: this seems to be the only method that receives a
        # ``version.slug`` instead of a ``Version`` instance (I prefer an
        # instance here)

        backend = backend_cls.get(self.repo_type)
        if not backend:
            repo = None
        else:
            repo = backend(self,
                           version,
                           environment=environment,
                           verbose_name=verbose_name,
                           version_type=version_type)
        return repo
Exemple #2
0
 def vcs_repo(self, version=LATEST):
     backend = backend_cls.get(self.repo_type)
     if not backend:
         repo = None
     else:
         proj = VCSProject(self.name, self.default_branch, self.checkout_path(version), self.clean_repo)
         repo = backend(proj, version)
     return repo
Exemple #3
0
 def vcs_repo(self, version=LATEST):
     backend = backend_cls.get(self.repo_type)
     if not backend:
         repo = None
     else:
         proj = VCSProject(self.name, self.default_branch,
                           self.checkout_path(version), self.clean_repo)
         repo = backend(proj, version)
     return repo
Exemple #4
0
 def vcs_repo(self, version='latest'):
     #if hasattr(self, '_vcs_repo'):
     #return self._vcs_repo
     backend = backend_cls.get(self.repo_type)
     if not backend:
         repo = None
     else:
         proj = VCSProject(self.name, self.default_branch,
                           self.checkout_path(version), self.repo)
         repo = backend(proj, version)
     #self._vcs_repo = repo
     return repo
Exemple #5
0
 def vcs_repo(self, version='latest'):
     #if hasattr(self, '_vcs_repo'):
         #return self._vcs_repo
     backend = backend_cls.get(self.repo_type)
     if not backend:
         repo = None
     else:
         proj = VCSProject(self.name,
                           self.default_branch,
                           self.checkout_path(version),
                           self.repo)
         repo = backend(proj, version)
     #self._vcs_repo = repo
     return repo
Exemple #6
0
    def vcs_repo(self, version=LATEST):
        backend = backend_cls.get(self.repo_type)
        if not backend:
            repo = None
        else:
            proj = VCSProject(self.name, self.default_branch, self.checkout_path(version), self.clean_repo)
            from readthedocs.oauth.services import GitHubService

            token = None
            if "github" in self.repo.lower():
                token = GitHubService.get_token_for_project(self)
            repo = backend(proj, version, token=token)
            # repo = backend(proj, version)
        return repo
    def vcs_repo(self, version=LATEST, environment=None):
        """
        Return a Backend object for this project able to handle VCS commands.

        :param environment: environment to run the commands
        :type environment: doc_builder.environments.BuildEnvironment
        :param version: version slug for the backend (``LATEST`` by default)
        :type version: str
        """
        # TODO: this seems to be the only method that receives a
        # ``version.slug`` instead of a ``Version`` instance (I prefer an
        # instance here)

        backend = backend_cls.get(self.repo_type)
        if not backend:
            repo = None
        else:
            repo = backend(self, version, environment)
        return repo
    def vcs_repo(self, version=LATEST, environment=None):
        """
        Return a Backend object for this project able to handle VCS commands.

        :param environment: environment to run the commands
        :type environment: doc_builder.environments.BuildEnvironment
        :param version: version slug for the backend (``LATEST`` by default)
        :type version: str
        """
        # TODO: this seems to be the only method that receives a
        # ``version.slug`` instead of a ``Version`` instance (I prefer an
        # instance here)
        from readthedocs.oauth.services import GitHubService
        backend = backend_cls.get(self.repo_type)
        if not backend:
            repo = None
        else:
            token = None
            if 'github' in self.repo.lower():
                token = GitHubService.get_token_for_project(self)
            repo = backend(self, version, environment, token=token)
            # repo = backend(self, version, environment)
        return repo
def comparable_version(version_string, repo_type=None):
    """
    Can be used as ``key`` argument to ``sorted``.

    The ``LATEST`` version shall always beat other versions in comparison.
    ``STABLE`` should be listed second. If we cannot figure out the version
    number then we sort it to the bottom of the list.

    If `repo_type` is given, it adds the default "master" version
    from the VCS (master, default, trunk).
    This version is sorted higher than LATEST and STABLE.

    :param version_string: version as string object (e.g. '3.10.1' or 'latest')
    :type version_string: str or unicode

    :param repo_type: Repository type from which the versions are generated.

    :returns: a comparable version object (e.g. 'latest' -> Version('99999.0'))

    :rtype: packaging.version.Version
    """
    highest_versions = []
    if repo_type:
        backend = backend_cls.get(repo_type)
        if backend and backend.fallback_branch:
            highest_versions.append(backend.fallback_branch)
    highest_versions.extend([LATEST_VERBOSE_NAME, STABLE_VERBOSE_NAME])

    comparable = parse_version_failsafe(version_string)
    if not comparable:
        if version_string in highest_versions:
            position = highest_versions.index(version_string)
            version_number = str(999999 - position)
            comparable = Version(version_number)
        else:
            comparable = Version('0.01')
    return comparable