annotate setup.py @ 264:74bea91c9630

bake: Don't store internal config values in the bake record. We sometimes store actual objects in the page config (like for instance page linkers) and we don't want that to be pickled.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 24 Feb 2015 23:18:23 -0800
parents acc718ab56da
children 9fb7c4921d75
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
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
9 from setuptools import setup, find_packages, Command
9
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
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
37 class GenerateVersionCommand(Command):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
38 description = 'generates a version file'
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
39 user_options = [
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
40 ('force=', 'f', 'force a specific version number')]
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
41
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
42 def initialize_options(self):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
43 self.force = None
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
44
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
45 def finalize_options(self):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
46 pass
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
47
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
48 def run(self):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
49 v = self.force or generate_version()
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
50 write_version(v)
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
51 print("Generated version %s" % v)
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
52 return 0
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
53
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
54
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
55 def generate_version():
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
56 """ Generate a version file from the source control information.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
57 (this is loosely based on what Mercurial does)"""
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
58 if os.path.isdir(os.path.join(os.path.dirname(__file__), '.hg')):
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
59 return generate_version_from_mercurial()
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
60 elif os.path.isdir(os.path.join(os.path.dirname(__file__), '.git')):
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
61 return generate_version_from_git()
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
62 else:
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
63 raise Exception("Can't generate version number: this is not a "
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
64 "Mercurial repository.")
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
65
179
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
66
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
67 def generate_version_from_mercurial():
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
68 try:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
69 # Get the version we're currently on. Also see if we have local
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
70 # changes.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
71 cmd = ['hg', 'id', '-i']
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
72 hgid, err = runcmd(cmd)
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
73 hgid = hgid.decode('utf8').strip()
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
74 has_local_changes = hgid.endswith('+')
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
75 hgid = hgid.rstrip('+')
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
76
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
77 # Get the tags on the current version.
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 cmd = ['hg', 'log', '-r', '.', '--template', '{tags}\n']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 tags, err = runcmd(cmd)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 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
81
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 if versions:
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
83 # Use the tag found at the current revision.
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 version = versions[-1]
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 else:
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
86 # Use the latest tag, but add info about how many revisions
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
87 # there have been since then.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
88 cmd = ['hg', 'parents', '--template',
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
89 '{latesttag}+{latesttagdistance}']
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 version, err = runcmd(cmd)
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
91 tag, dist = version.decode('utf8').split('+')
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
92 if dist == '1':
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
93 # We're on the commit that created the tag in the first place.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
94 # Let's just do as if we were on the tag.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
95 version = tag
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
96 else:
179
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
97 version = '%s+%s.%s' % (tag, dist, hgid)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
99 if has_local_changes:
179
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
100 if '+' in version:
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
101 version += '.'
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
102 else:
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
103 version += '+'
acc718ab56da setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
104 version += time.strftime('%Y%m%d')
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
105
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
106 return version
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
107 except OSError:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
108 raise Exception("Can't generate version number: Mercurial isn't "
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
109 "installed, or in the PATH.")
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
110 except Exception as ex:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
111 raise Exception("Can't generate version number: %s" % ex)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
114 def generate_version_from_git():
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
115 try:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
116 cmd = ['git', 'describe', '--tags', '--dirty=+']
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
117 version, err = runcmd(cmd)
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
118 version = version.decode('utf8').strip()
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
119 if version.endswith('+'):
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
120 version += time.strftime('%Y%m%d')
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
121 return version
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
122 except OSError:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
123 raise Exception("Can't generate version number: Git isn't installed, "
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
124 "or in the PATH.")
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
125 except Exception as ex:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
126 raise Exception("Can't generate version number: %s" % ex)
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
127
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
128
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
129 def write_version(version):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
130 if not version:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
131 raise Exception("No version to write!")
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
132
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133 f = open("piecrust/__version__.py", "w")
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
134 f.write('# this file is autogenerated by setup.py\n')
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
135 f.write('APP_VERSION = "%s"\n' % version)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 f.close()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
137
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
138
72
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
139 # Always try to generate an up to date version.
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
140 # Otherwise, fall back on an (hopefully) existing version file.
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
141 try:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
142 version = generate_version()
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
143 write_version(version)
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
144 except:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
145 version = None
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
146
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
147 if version is None:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
148 try:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
149 from piecrust.__version__ import APP_VERSION
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
150 version = APP_VERSION
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
151 except ImportError:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
152 raise Exception("Can't get version from either a version file or "
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
153 "from the repository.")
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
154
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
155
74
8f988aa54433 Fix package name case.
Ludovic Chabant <ludovic@chabant.com>
parents: 72
diff changeset
156 setup(name="PieCrust",
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
157 version=version,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
158 description="A powerful static website generator and lightweight CMS.",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
159 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
160 author="Ludovic Chabant",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
161 author_email="ludovic@chabant.com",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
162 license="Apache License 2.0",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
163 url="http://github.com/ludovicchabant/piecrust2",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
164 keywords=' '.join([
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
165 'python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
166 'website',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
167 'generator',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
168 'blog',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
169 'portfolio',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
170 'gallery',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
171 'cms'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
172 ]),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
173 packages=find_packages(),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
174 include_package_data=True,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
175 zip_safe=False,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
176 install_requires=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
177 'Jinja2==2.7.3',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
178 'Markdown==2.4.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
179 'MarkupSafe==0.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
180 'PyYAML==3.11',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
181 'Pygments==1.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
182 'Werkzeug==0.9.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
183 'colorama==0.3.1',
66
e4a24512b814 Add `compressinja` to install/env requirements.
Ludovic Chabant <ludovic@chabant.com>
parents: 9
diff changeset
184 'compressinja==0.0.2',
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
185 'mock==1.0.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
186 'py==1.4.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
187 'python-dateutil==2.2',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
188 'repoze.lru==0.6',
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
189 'smartypants==1.8.6',
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 82
diff changeset
190 'strict-rfc3339==0.4',
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 82
diff changeset
191 'textile==2.2.1'
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
192 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
193 tests_require=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
194 'pytest==2.6.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
195 'pytest-mock==0.2.0'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
196 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
197 cmdclass={
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
198 'test': PyTest,
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
199 'version' : GenerateVersionCommand
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
200 },
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
201 classifiers=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
202 'Development Status :: 3 - Alpha',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
203 'License :: OSI Approved :: Apache Software License',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
204 'Environment :: Console',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
205 'Intended Audience :: Developers',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
206 'Intended Audience :: System Administrators',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
207 'Natural Language :: English',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
208 'Operating System :: MacOS :: MacOS X',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
209 'Operating System :: POSIX :: Linux',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
210 'Operating System :: Microsoft :: Windows',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
211 'Programming Language :: Python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
212 'Programming Language :: Python :: 3'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
213 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
214 entry_points={'console_scripts': [
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
215 'chef = piecrust.main:main',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
216 ]}
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
217 )
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
218