annotate setup.py @ 66:e4a24512b814

Add `compressinja` to install/env requirements.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 29 Aug 2014 16:41:16 -0700
parents 8f7ba2c95025
children cb1ed436642c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 #!/usr/bin/env python
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import os
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 import os.path
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 import sys
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 import time
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 import subprocess
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 from setuptools import setup, find_packages
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 from setuptools.command.test import test
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 def read(fname):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 with open(os.path.join(os.path.dirname(__file__), fname)) as fp:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 return fp.read()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 def runcmd(cmd):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 with subprocess.Popen(cmd, stdout=subprocess.PIPE,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 stderr=subprocess.PIPE) as p:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 out, err = p.communicate()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 return out, err
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 class PyTest(test):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 def finalize_options(self):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 super(PyTest, self).finalize_options()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 self.test_args = ['tests']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 self.test_suite = True
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 def run_tests(self):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 import pytest
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 errno = pytest.main(self.test_args)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 sys.exit(errno)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 # Figure out the version.
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 # (this is loosely based on what Mercurial does)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 version = None
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 try:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 if os.path.isdir(os.path.join(os.path.dirname(__file__), '.hg')):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 cmd = ['hg', 'log', '-r', '.', '--template', '{tags}\n']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 tags, err = runcmd(cmd)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 versions = [t for t in tags.decode('utf8').split() if t[0].isdigit()]
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 cmd = ['hg', 'id', '-i']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47 hgid, err = runcmd(cmd)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 hgid = hgid.decode('utf8').strip()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 if versions:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 # Use tag found at the current revision. Add dirty flag if any.
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 version = versions[-1]
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 if hgid.endswith('+'):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 version += '+'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 else:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 # Use latest tag.
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 cmd = ['hg', 'parents', '--template', '{latesttag}+{latesttagdistance}-']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58 version, err = runcmd(cmd)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59 version = version.decode('utf8') + hgid
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61 if version.endswith('+'):
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 version += time.strftime('%Y%m%d')
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 except OSError:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64 # Mercurial isn't installed, or not in the PATH.
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 version = None
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 if version:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 f = open("piecrust/__version__.py", "w")
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 f.write('# this file is autogenerated by setup.py\n')
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 f.write('version = "%s"\n' % version)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72 f.close()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 try:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76 from piecrust import __version__
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 version = __version__.version
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 except ImportError:
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 version = 'unknown'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 setup(name="piecrust",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 version=version,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 description="A powerful static website generator and lightweight CMS.",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 author="Ludovic Chabant",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 author_email="ludovic@chabant.com",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 license="Apache License 2.0",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 url="http://github.com/ludovicchabant/piecrust2",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 keywords=' '.join([
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91 'python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 'website',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 'generator',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94 'blog',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 'portfolio',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96 'gallery',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97 'cms'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 ]),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99 packages=find_packages(),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100 include_package_data=True,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
101 zip_safe=False,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
102 install_requires=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103 'Jinja2==2.7.3',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 'Markdown==2.4.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105 'MarkupSafe==0.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 'PyYAML==3.11',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107 'Pygments==1.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 'Werkzeug==0.9.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109 'colorama==0.3.1',
66
e4a24512b814 Add `compressinja` to install/env requirements.
Ludovic Chabant <ludovic@chabant.com>
parents: 9
diff changeset
110 'compressinja==0.0.2',
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111 'mock==1.0.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112 'py==1.4.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113 'python-dateutil==2.2',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
114 'repoze.lru==0.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
115 'strict-rfc3339==0.4'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
116 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
117 tests_require=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
118 'pytest==2.6.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
119 'pytest-mock==0.2.0'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
120 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
121 cmdclass={
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
122 'test': PyTest
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
123 },
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124 classifiers=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
125 'Development Status :: 3 - Alpha',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 'License :: OSI Approved :: Apache Software License',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
127 'Environment :: Console',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 'Intended Audience :: Developers',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129 'Intended Audience :: System Administrators',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
130 'Natural Language :: English',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
131 'Operating System :: MacOS :: MacOS X',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
132 'Operating System :: POSIX :: Linux',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133 'Operating System :: Microsoft :: Windows',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
134 'Programming Language :: Python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135 'Programming Language :: Python :: 3'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
137 entry_points={'console_scripts': [
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138 'chef = piecrust.main:main',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139 ]}
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
140 )
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
141