Mercurial > wikked
view setup.py @ 199:20f37951b813
Small optimization.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 11 Feb 2014 08:10:46 -0800 |
parents | 964fd28e9b39 |
children | 719bcebefd68 |
line wrap: on
line source
import os import os.path import time import subprocess from setuptools import setup, find_packages def read(fname): with open(os.path.join(os.path.dirname(__file__), fname)) as fp: return fp.read() def runcmd(cmd): p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() return out, err # Figure out the version. # (this is loosely based on what Mercurial does) try: if os.path.isdir('.hg'): cmd = ['hg', 'log', '-r', '.', '--template', '{tags}\n'] tags, err = runcmd(cmd) versions = [t for t in tags.split() if t[0].isdigit()] cmd = ['hg', 'id', '-i'] hgid, err = runcmd(cmd) hgid = hgid.strip() if versions: # Use tag found at the current revision. Add dirty flag if any. version = versions[-1] if hgid.endswith('+'): version += '+' else: # Use latest tag. cmd = ['hg', 'parents', '--template', '{latesttag}+{latesttagdistance}-'] version, err = runcmd(cmd) version += hgid if version.endswith('+'): version += time.strftime('%Y%m%d') except OSError: # Mercurial isn't installed, or not in the PATH. version = None if version: f = open("wikked/__version__.py", "w") f.write('# this file is autogenerated by setup.py\n') f.write('version = "%s"\n' % version) f.close() try: from wikked import __version__ version = __version__.version except ImportError: version = 'unknown' setup( name='Wikked', version=version, description=("A wiki engine entirely managed with text files " "stored in a revision control system."), author='Ludovic Chabant', author_email='ludovic@chabant.com', url="https://github.com/ludovicchabant/Wikked", license="Apache 2.0", keywords="wiki mercurial hg git", packages=find_packages(exclude=["tests"]), install_requires=[ 'Flask>=0.10', 'Flask-Login>=0.1.3', 'Flask-SQLAlchemy>=1.0', 'Flask-Script>=0.5.1', 'Jinja2>=2.6', 'Markdown>=2.2.1', 'PyYAML>=3.10', 'Pygments>=1.5', 'SQLAlchemy>=0.8.3', 'Werkzeug>=0.8.3', 'Whoosh>=2.4.1', 'argparse>=1.2.1', 'pybars>=0.0.4', 'python-hglib', 'twill>=0.9', 'wsgiref>=0.1.2' ], scripts=['wk.py'], include_package_data=True, package_data={ 'wikked': [ 'resources/*', 'templates/*.html', 'static/css/wikked.min.css', 'static/img/*.png', 'static/js/require.js', 'static/js/wikked.min.js', 'static/js/pagedown/*.js' ] }, zip_safe=False, classifiers=[ 'Development Status :: 3 - Alpha', 'License :: OSI Approved :: Apache Software License', 'Environment :: Console', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Unix', 'Operating System :: POSIX', 'Operating System :: Microsoft :: Windows', 'Programming Language :: Python', ], entry_points={ 'console_scripts': [ 'wk = wikked.witch:main' ] }, )