|
From: <go...@us...> - 2017-07-08 17:05:23
|
Revision: 8141
http://sourceforge.net/p/docutils/code/8141
Author: goodger
Date: 2017-07-08 17:05:18 +0000 (Sat, 08 Jul 2017)
Log Message:
-----------
added docutils.utils.version_identifier() and a test
Modified Paths:
--------------
trunk/docutils/docutils/utils/__init__.py
trunk/docutils/test/test_utils.py
Modified: trunk/docutils/docutils/utils/__init__.py
===================================================================
--- trunk/docutils/docutils/utils/__init__.py 2017-07-08 16:31:03 UTC (rev 8140)
+++ trunk/docutils/docutils/utils/__init__.py 2017-07-08 17:05:18 UTC (rev 8141)
@@ -16,7 +16,7 @@
import itertools
import warnings
import unicodedata
-from docutils import ApplicationError, DataError
+from docutils import ApplicationError, DataError, __version_info__
from docutils import nodes
import docutils.io
from docutils.utils.error_reporting import ErrorOutput, SafeString
@@ -766,3 +766,42 @@
except AttributeError:
output_file = None
return '%s(%r, %s)' % (self.__class__.__name__, output_file, self.list)
+
+
+release_level_abbreviations = {
+ 'alpha': 'a',
+ 'beta': 'b',
+ 'candidate': 'rc',
+ 'final': '',}
+
+def version_identifier(version_info=None):
+ # to add in Docutils 0.15:
+ # version_info is a namedtuple, an instance of Docutils.VersionInfo.
+ """
+ Given a `version_info` tuple (default is docutils.__version_info__),
+ build & return a version identifier string.
+ """
+ if version_info is None:
+ version_info = __version_info__
+ if version_info[2]: # version_info.micro
+ micro = '.%s' % version_info[2]
+ else:
+ micro = ''
+ releaselevel = release_level_abbreviations[
+ version_info[3]] # version_info.releaselevel
+ if version_info[4]: # version_info.serial
+ serial = version_info[4]
+ else:
+ serial = ''
+ if version_info[5]: # version_info.release
+ dev = ''
+ else:
+ dev = '.dev'
+ version = '%s.%s%s%s%s%s' % (
+ version_info[0], # version_info.major
+ version_info[1], # version_info.minor
+ micro,
+ releaselevel,
+ serial,
+ dev)
+ return version
Modified: trunk/docutils/test/test_utils.py
===================================================================
--- trunk/docutils/test/test_utils.py 2017-07-08 16:31:03 UTC (rev 8140)
+++ trunk/docutils/test/test_utils.py 2017-07-08 17:05:18 UTC (rev 8141)
@@ -12,7 +12,7 @@
import unittest
import sys
import os
-from DocutilsTestSupport import utils, nodes
+from DocutilsTestSupport import docutils, utils, nodes
try:
from io import StringIO
except ImportError: # io is new in Python 2.6
@@ -237,6 +237,14 @@
class HelperFunctionsTests(unittest.TestCase):
+ def test_version_identifier(self):
+ """
+ docutils.utils.version_identifier() depends on
+ docutils.__version_info__, so this also tests that
+ docutils.__version__ is equivalent to docutils.__version_info__.
+ """
+ self.assertEqual(utils.version_identifier(), docutils.__version__)
+
def test_normalize_language_tag(self):
self.assertEqual(utils.normalize_language_tag('de'), ['de'])
self.assertEqual(utils.normalize_language_tag('de-AT'),
@@ -304,6 +312,5 @@
'gibts/nicht.txt')
-
if __name__ == '__main__':
unittest.main()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|