diff options
| author | Alexis Metaireau <ametaireau@gmail.com> | 2010-08-06 16:48:33 +0200 |
|---|---|---|
| committer | Alexis Metaireau <ametaireau@gmail.com> | 2010-08-06 16:48:33 +0200 |
| commit | 034ca57b472e2cc50c363eb6209063629f7d0c62 (patch) | |
| tree | 13bfb31835cc305fd6970558e4593db2123d843a | |
| parent | 01b11c8d0e122bb1bcb29b01124fd0c311295cab (diff) | |
| download | disutils2-034ca57b472e2cc50c363eb6209063629f7d0c62.tar.gz | |
Move get_version_predicate to version (instead of index.base)
| -rw-r--r-- | src/distutils2/index/base.py | 9 | ||||
| -rw-r--r-- | src/distutils2/index/dist.py | 4 | ||||
| -rw-r--r-- | src/distutils2/index/simple.py | 5 | ||||
| -rw-r--r-- | src/distutils2/index/xmlrpc.py | 5 | ||||
| -rw-r--r-- | src/distutils2/version.py | 9 |
5 files changed, 18 insertions, 14 deletions
diff --git a/src/distutils2/index/base.py b/src/distutils2/index/base.py index 7c87c90..04582a3 100644 --- a/src/distutils2/index/base.py +++ b/src/distutils2/index/base.py @@ -1,4 +1,3 @@ -from distutils2.version import VersionPredicate from distutils2.index.dist import ReleasesList @@ -10,14 +9,6 @@ class BaseClient(object): self._prefer_source = prefer_source self._index = self - def _get_version_predicate(self, requirements): - """Return a VersionPredicate object, from a string or an already - existing object. - """ - if isinstance(requirements, str): - requirements = VersionPredicate(requirements) - return requirements - def _get_prefer_final(self, prefer_final=None): """Return the prefer_final internal parameter or the specified one if provided""" diff --git a/src/distutils2/index/dist.py b/src/distutils2/index/dist.py index 55a1268..be86054 100644 --- a/src/distutils2/index/dist.py +++ b/src/distutils2/index/dist.py @@ -26,7 +26,8 @@ except ImportError: from distutils2.errors import IrrationalVersionError from distutils2.index.errors import (HashDoesNotMatch, UnsupportedHashName, CantParseArchiveName) -from distutils2.version import suggest_normalized_version, NormalizedVersion +from distutils2.version import (suggest_normalized_version, NormalizedVersion, + get_version_predicate) from distutils2.metadata import DistributionMetadata from distutils2.util import untar_file, unzip_file, splitext @@ -380,6 +381,7 @@ class ReleasesList(IndexReference): "last" is defined by the version number of the releases, you also could set prefer_final parameter to True or False to change the order results """ + predicate = get_version_predicate(requirements) releases = self.filter(predicate) releases.sort_releases(prefer_final, reverse=True) return releases[0] diff --git a/src/distutils2/index/simple.py b/src/distutils2/index/simple.py index feadb51..671db3d 100644 --- a/src/distutils2/index/simple.py +++ b/src/distutils2/index/simple.py @@ -22,6 +22,7 @@ from distutils2.index.errors import (IndexesError, DownloadError, ReleaseNotFound, ProjectNotFound) from distutils2.index.mirrors import get_mirrors from distutils2.metadata import DistributionMetadata +from distutils2.version import get_version_predicate from distutils2 import __version__ as __distutils2_version__ __all__ = ['Crawler', 'DEFAULT_SIMPLE_INDEX_URL'] @@ -158,7 +159,7 @@ class Crawler(BaseClient): """Search for releases and return a ReleaseList object containing the results. """ - predicate = self._get_version_predicate(requirements) + predicate = get_version_predicate(requirements) if self._projects.has_key(predicate.name.lower()) and not force_update: return self._projects.get(predicate.name.lower()) prefer_final = self._get_prefer_final(prefer_final) @@ -173,7 +174,7 @@ class Crawler(BaseClient): def get_release(self, requirements, prefer_final=None): """Return only one release that fulfill the given requirements""" - predicate = self._get_version_predicate(requirements) + predicate = get_version_predicate(requirements) release = self.get_releases(predicate, prefer_final)\ .get_last(predicate) if not release: diff --git a/src/distutils2/index/xmlrpc.py b/src/distutils2/index/xmlrpc.py index f8f8453..fd1b62f 100644 --- a/src/distutils2/index/xmlrpc.py +++ b/src/distutils2/index/xmlrpc.py @@ -5,6 +5,7 @@ from distutils2.errors import IrrationalVersionError from distutils2.index.base import BaseClient from distutils2.index.errors import ProjectNotFound, InvalidSearchField from distutils2.index.dist import ReleaseInfo +from distutils2.version import get_version_predicate __all__ = ['Client', 'DEFAULT_XMLRPC_INDEX_URL'] @@ -41,7 +42,7 @@ class Client(BaseClient): related informations. """ prefer_final = self._get_prefer_final(prefer_final) - predicate = self._get_version_predicate(requirements) + predicate = get_version_predicate(requirements) releases = self.get_releases(predicate.name) release = releases.get_last(predicate, prefer_final) self.get_metadata(release.name, "%s" % release.version) @@ -72,7 +73,7 @@ class Client(BaseClient): def get_versions(project_name, show_hidden): return self.proxy.package_releases(project_name, show_hidden) - predicate = self._get_version_predicate(requirements) + predicate = get_version_predicate(requirements) prefer_final = self._get_prefer_final(prefer_final) project_name = predicate.name if not force_update and (project_name.lower() in self._projects): diff --git a/src/distutils2/version.py b/src/distutils2/version.py index 4034e24..836202a 100644 --- a/src/distutils2/version.py +++ b/src/distutils2/version.py @@ -418,3 +418,12 @@ def is_valid_version(predicate): return False else: return True + + +def get_version_predicate(requirements): + """Return a VersionPredicate object, from a string or an already + existing object. + """ + if isinstance(requirements, str): + requirements = VersionPredicate(requirements) + return requirements |
