summaryrefslogtreecommitdiff
path: root/bvggrabber
diff options
context:
space:
mode:
authorMarkus Holtermann <info@markusholtermann.eu>2013-06-14 13:15:17 +0200
committerMarkus Holtermann <info@markusholtermann.eu>2013-06-14 13:15:17 +0200
commit77d228a10b4d966a9e81e8c4d952f590881cb71d (patch)
tree555b734d87aba0ddbd815d69335703625f9c15cd /bvggrabber
parenta7b30e1804414f3460a1006a7b92f3d34d0f8090 (diff)
downloadbvg-grabber-77d228a10b4d966a9e81e8c4d952f590881cb71d.tar.gz
bvg-grabber-77d228a10b4d966a9e81e8c4d952f590881cb71d.tar.bz2
bvg-grabber-77d228a10b4d966a9e81e8c4d952f590881cb71d.zip
Push to 0.1b1
Diffstat (limited to 'bvggrabber')
-rw-r--r--bvggrabber/__init__.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/bvggrabber/__init__.py b/bvggrabber/__init__.py
index 40a96af..775dd6b 100644
--- a/bvggrabber/__init__.py
+++ b/bvggrabber/__init__.py
@@ -1 +1,53 @@
# -*- coding: utf-8 -*-
+import datetime
+import os
+import subprocess
+
+
+VERSION = (0, 1, 0, 'beta', 1)
+
+
+def get_version():
+ "Returns a PEP 386-compliant version number from VERSION."
+ # Taken from django.utils.version
+ assert VERSION[3] in ('alpha', 'beta', 'rc', 'final')
+
+ # Now build the two parts of the version number:
+ # main = X.Y[.Z]
+ # sub = .devN - for pre-alpha releases
+ # | {a|b|c}N - for alpha, beta and rc releases
+
+ parts = 2 if VERSION[2] == 0 else 3
+ main = '.'.join(str(x) for x in VERSION[:parts])
+
+ sub = ''
+ if VERSION[3] == 'alpha' and VERSION[4] == 0:
+ git_changeset = get_git_changeset()
+ if git_changeset:
+ sub = '.dev%s' % git_changeset
+
+ elif VERSION[3] != 'final':
+ mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}
+ sub = mapping[VERSION[3]] + str(VERSION[4])
+
+ return str(main + sub)
+
+
+def get_git_changeset():
+ """Returns a numeric identifier of the latest git changeset.
+
+ The result is the UTC timestamp of the changeset in YYYYMMDDHHMMSS format.
+ This value isn't guaranteed to be unique, but collisions are very unlikely,
+ so it's sufficient for generating the development version numbers.
+ """
+ repo_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ git_log = subprocess.Popen('git log --pretty=format:%ct --quiet -1 HEAD',
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ shell=True, cwd=repo_dir, universal_newlines=True)
+ timestamp = git_log.communicate()[0]
+ try:
+ timestamp = datetime.datetime.utcfromtimestamp(int(timestamp))
+ except ValueError:
+ return None
+ return timestamp.strftime('%Y%m%d%H%M%S')
+