Mercurial > piecrust2
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 |
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 |