summaryrefslogtreecommitdiff
path: root/pkg_resources/_vendor/packaging/specifiers.py
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2015-08-01 20:13:21 -0400
committerDonald Stufft <donald@stufft.io>2015-08-01 20:13:21 -0400
commite3886227ec1c8db491f79eaf46500d65b81b7d6d (patch)
treea6d84f2ead5062deb5337745e38617b4c90a5b56 /pkg_resources/_vendor/packaging/specifiers.py
parentd215171466c4c7511044f92337e215ceda26d07f (diff)
downloadpython-setuptools-git-e3886227ec1c8db491f79eaf46500d65b81b7d6d.tar.gz
Upgrade packaging to 15.3
Diffstat (limited to 'pkg_resources/_vendor/packaging/specifiers.py')
-rw-r--r--pkg_resources/_vendor/packaging/specifiers.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/pkg_resources/_vendor/packaging/specifiers.py b/pkg_resources/_vendor/packaging/specifiers.py
index d5d8a956..891664f0 100644
--- a/pkg_resources/_vendor/packaging/specifiers.py
+++ b/pkg_resources/_vendor/packaging/specifiers.py
@@ -152,6 +152,14 @@ class _IndividualSpecifier(BaseSpecifier):
return version
@property
+ def operator(self):
+ return self._spec[0]
+
+ @property
+ def version(self):
+ return self._spec[1]
+
+ @property
def prereleases(self):
return self._prereleases
@@ -159,6 +167,9 @@ class _IndividualSpecifier(BaseSpecifier):
def prereleases(self, value):
self._prereleases = value
+ def __contains__(self, item):
+ return self.contains(item)
+
def contains(self, item, prereleases=None):
# Determine if prereleases are to be allowed or not.
if prereleases is None:
@@ -176,7 +187,7 @@ class _IndividualSpecifier(BaseSpecifier):
# Actually do the comparison to determine if this item is contained
# within this Specifier or not.
- return self._get_operator(self._spec[0])(item, self._spec[1])
+ return self._get_operator(self.operator)(item, self.version)
def filter(self, iterable, prereleases=None):
yielded = False
@@ -526,7 +537,7 @@ class Specifier(_IndividualSpecifier):
# operators, and if they are if they are including an explicit
# prerelease.
operator, version = self._spec
- if operator in ["==", ">=", "<=", "~="]:
+ if operator in ["==", ">=", "<=", "~=", "==="]:
# The == specifier can include a trailing .*, if it does we
# want to remove before parsing.
if operator == "==" and version.endswith(".*"):
@@ -666,6 +677,12 @@ class SpecifierSet(BaseSpecifier):
return self._specs != other._specs
+ def __len__(self):
+ return len(self._specs)
+
+ def __iter__(self):
+ return iter(self._specs)
+
@property
def prereleases(self):
# If we have been given an explicit prerelease modifier, then we'll
@@ -687,6 +704,9 @@ class SpecifierSet(BaseSpecifier):
def prereleases(self, value):
self._prereleases = value
+ def __contains__(self, item):
+ return self.contains(item)
+
def contains(self, item, prereleases=None):
# Ensure that our item is a Version or LegacyVersion instance.
if not isinstance(item, (LegacyVersion, Version)):