| Index: third_party/twisted_8_1/twisted/python/versions.py
|
| diff --git a/third_party/twisted_8_1/twisted/python/versions.py b/third_party/twisted_8_1/twisted/python/versions.py
|
| deleted file mode 100644
|
| index 806784dfe6928e6637c15e3f2a32a16240f63b5b..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/python/versions.py
|
| +++ /dev/null
|
| @@ -1,235 +0,0 @@
|
| -# -*- test-case-name: twisted.python.test.test_versions -*-
|
| -# Copyright (c) 2006-2008 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -"""
|
| -Versions for Python packages.
|
| -
|
| -See L{Version}.
|
| -"""
|
| -
|
| -import sys, os
|
| -
|
| -
|
| -class _inf(object):
|
| - """
|
| - An object that is bigger than all other objects.
|
| - """
|
| - def __cmp__(self, other):
|
| - """
|
| - @param other: Another object.
|
| - @type other: any
|
| -
|
| - @return: 0 if other is inf, 1 otherwise.
|
| - @rtype: C{int}
|
| - """
|
| - if other is _inf:
|
| - return 0
|
| - return 1
|
| -
|
| -_inf = _inf()
|
| -
|
| -
|
| -class IncomparableVersions(TypeError):
|
| - """
|
| - Two versions could not be compared.
|
| - """
|
| -
|
| -class Version(object):
|
| - """
|
| - An object that represents a three-part version number.
|
| -
|
| - If running from an svn checkout, include the revision number in
|
| - the version string.
|
| - """
|
| - def __init__(self, package, major, minor, micro, prerelease=None):
|
| - """
|
| - @param package: Name of the package that this is a version of.
|
| - @type package: C{str}
|
| - @param major: The major version number.
|
| - @type major: C{int}
|
| - @param minor: The minor version number.
|
| - @type minor: C{int}
|
| - @param micro: The micro version number.
|
| - @type micro: C{int}
|
| - @param prerelease: The prerelease number.
|
| - @type prerelease: C{int}
|
| - """
|
| - self.package = package
|
| - self.major = major
|
| - self.minor = minor
|
| - self.micro = micro
|
| - self.prerelease = prerelease
|
| -
|
| -
|
| - def short(self):
|
| - """
|
| - Return a string in canonical short version format,
|
| - <major>.<minor>.<micro>[+rSVNVer].
|
| - """
|
| - s = self.base()
|
| - svnver = self._getSVNVersion()
|
| - if svnver:
|
| - s += '+r' + str(svnver)
|
| - return s
|
| -
|
| -
|
| - def base(self):
|
| - """
|
| - Like L{short}, but without the +rSVNVer.
|
| - """
|
| - if self.prerelease is None:
|
| - pre = ""
|
| - else:
|
| - pre = "pre%s" % (self.prerelease,)
|
| - return '%d.%d.%d%s' % (self.major,
|
| - self.minor,
|
| - self.micro,
|
| - pre)
|
| -
|
| -
|
| - def __repr__(self):
|
| - svnver = self._formatSVNVersion()
|
| - if svnver:
|
| - svnver = ' #' + svnver
|
| - if self.prerelease is None:
|
| - prerelease = ""
|
| - else:
|
| - prerelease = ", prerelease=%r" % (self.prerelease,)
|
| - return '%s(%r, %d, %d, %d%s)%s' % (
|
| - self.__class__.__name__,
|
| - self.package,
|
| - self.major,
|
| - self.minor,
|
| - self.micro,
|
| - prerelease,
|
| - svnver)
|
| -
|
| -
|
| - def __str__(self):
|
| - return '[%s, version %s]' % (
|
| - self.package,
|
| - self.short())
|
| -
|
| -
|
| - def __cmp__(self, other):
|
| - """
|
| - Compare two versions, considering major versions, minor versions, micro
|
| - versions, then prereleases.
|
| -
|
| - A version with a prerelease is always less than a version without a
|
| - prerelease. If both versions have prereleases, they will be included in
|
| - the comparison.
|
| -
|
| - @param other: Another version.
|
| - @type other: L{Version}
|
| -
|
| - @return: NotImplemented when the other object is not a Version, or one
|
| - of -1, 0, or 1.
|
| -
|
| - @raise IncomparableVersions: when the package names of the versions
|
| - differ.
|
| - """
|
| - if not isinstance(other, self.__class__):
|
| - return NotImplemented
|
| - if self.package != other.package:
|
| - raise IncomparableVersions("%r != %r"
|
| - % (self.package, other.package))
|
| -
|
| - if self.prerelease is None:
|
| - prerelease = _inf
|
| - else:
|
| - prerelease = self.prerelease
|
| -
|
| - if other.prerelease is None:
|
| - otherpre = _inf
|
| - else:
|
| - otherpre = other.prerelease
|
| -
|
| - x = cmp((self.major,
|
| - self.minor,
|
| - self.micro,
|
| - prerelease),
|
| - (other.major,
|
| - other.minor,
|
| - other.micro,
|
| - otherpre))
|
| - return x
|
| -
|
| -
|
| - def _parseSVNEntries_4(self, entriesFile):
|
| - """
|
| - Given a readable file object which represents a .svn/entries file in
|
| - format version 4, return the revision as a string. We do this by
|
| - reading first XML element in the document that has a 'revision'
|
| - attribute.
|
| - """
|
| - from xml.dom.minidom import parse
|
| - doc = parse(entriesFile).documentElement
|
| - for node in doc.childNodes:
|
| - if hasattr(node, 'getAttribute'):
|
| - rev = node.getAttribute('revision')
|
| - if rev is not None:
|
| - return rev.encode('ascii')
|
| -
|
| -
|
| - def _parseSVNEntries_8(self, entriesFile):
|
| - """
|
| - Given a readable file object which represents a .svn/entries file in
|
| - format version 8, return the revision as a string.
|
| - """
|
| - entriesFile.readline()
|
| - entriesFile.readline()
|
| - entriesFile.readline()
|
| - return entriesFile.readline().strip()
|
| -
|
| -
|
| - def _getSVNVersion(self):
|
| - """
|
| - Figure out the SVN revision number based on the existance of
|
| - <package>/.svn/entries, and its contents. This requires discovering the
|
| - format version from the 'format' file and parsing the entries file
|
| - accordingly.
|
| -
|
| - @return: None or string containing SVN Revision number.
|
| - """
|
| - mod = sys.modules.get(self.package)
|
| - if mod:
|
| - svn = os.path.join(os.path.dirname(mod.__file__), '.svn')
|
| - formatFile = os.path.join(svn, 'format')
|
| - if not os.path.exists(formatFile):
|
| - return None
|
| - format = file(formatFile).read().strip()
|
| - ent = os.path.join(svn, 'entries')
|
| - if not os.path.exists(ent):
|
| - return None
|
| - parser = getattr(self, '_parseSVNEntries_' + format, None)
|
| - if parser is None:
|
| - return 'Unknown'
|
| - entries = file(ent)
|
| - try:
|
| - try:
|
| - return parser(entries)
|
| - finally:
|
| - entries.close()
|
| - except:
|
| - return 'Unknown'
|
| -
|
| -
|
| - def _formatSVNVersion(self):
|
| - ver = self._getSVNVersion()
|
| - if ver is None:
|
| - return ''
|
| - return ' (SVN r%s)' % (ver,)
|
| -
|
| -
|
| -
|
| -def getVersionString(version):
|
| - """
|
| - Get a friendly string for the given version object.
|
| -
|
| - @param version: A L{Version} object.
|
| - @return: A string containing the package and short version number.
|
| - """
|
| - result = '%s %s' % (version.package, version.short())
|
| - return result
|
|
|