annotate setup.py @ 173:0a86a7a6b284

routes: Actually match metadata when finding routes, fix problems with paths. When we look for a route that matches a given page, we now look at the source metadata that comes with that page, and compare it to the metadata we need to build URIs. Also, when matching URIs, we handle the case where a 'path'-component in our pattern may be completely empty, and thus we may be missing some trailing slashes in the URI.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 03 Jan 2015 21:10:44 -0800
parents f49fcf9448df
children acc718ab56da
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
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
66 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
67 try:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
68 # 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
69 # changes.
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
70 cmd = ['hg', 'id', '-i']
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
71 hgid, err = runcmd(cmd)
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
72 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
73 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
74 hgid = hgid.rstrip('+')
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
75
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
76 # Get the tags on the current version.
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 cmd = ['hg', 'log', '-r', '.', '--template', '{tags}\n']
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 tags, err = runcmd(cmd)
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 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
80
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 if versions:
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
82 # Use the tag found at the current revision.
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 version = versions[-1]
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 else:
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
85 # 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
86 # 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
87 cmd = ['hg', 'parents', '--template',
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
88 '{latesttag}+{latesttagdistance}']
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 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
90 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
91 if dist == '1':
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
92 # 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
93 # 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
94 version = tag
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
95 else:
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
96 version = '%s-%s-%s' % (tag, dist, hgid)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
98 if has_local_changes:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
99 version += time.strftime('+%Y%m%d')
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
100
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
101 return version
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
102 except OSError:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
103 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
104 "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
105 except Exception as ex:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
106 raise Exception("Can't generate version number: %s" % ex)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108
82
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
109 def generate_version_from_git():
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
110 try:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
111 cmd = ['git', 'describe', '--tags', '--dirty=+']
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
112 version, err = runcmd(cmd)
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
113 version = version.decode('utf8').strip()
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
114 if version.endswith('+'):
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
115 version += time.strftime('%Y%m%d')
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
116 return version
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
117 except OSError:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
118 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
119 "or in the PATH.")
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
120 except Exception as ex:
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
121 raise Exception("Can't generate version number: %s" % ex)
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
122
ae90caf26224 Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
123
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
124 def write_version(version):
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
125 if not version:
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
126 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
127
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
128 f = open("piecrust/__version__.py", "w")
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129 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
130 f.write('APP_VERSION = "%s"\n' % version)
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
131 f.close()
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
132
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133
72
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
134 # Always try to generate an up to date version.
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
135 # Otherwise, fall back on an (hopefully) existing version file.
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
136 try:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
137 version = generate_version()
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
138 write_version(version)
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
139 except:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
140 version = None
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
141
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
142 if version is None:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
143 try:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
144 from piecrust.__version__ import APP_VERSION
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
145 version = APP_VERSION
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
146 except ImportError:
ecee3e8f35e5 Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
147 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
148 "from the repository.")
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
149
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
150
74
8f988aa54433 Fix package name case.
Ludovic Chabant <ludovic@chabant.com>
parents: 72
diff changeset
151 setup(name="PieCrust",
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
152 version=version,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
153 description="A powerful static website generator and lightweight CMS.",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
154 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
155 author="Ludovic Chabant",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
156 author_email="ludovic@chabant.com",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
157 license="Apache License 2.0",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
158 url="http://github.com/ludovicchabant/piecrust2",
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
159 keywords=' '.join([
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
160 'python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
161 'website',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
162 'generator',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
163 'blog',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
164 'portfolio',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
165 'gallery',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
166 'cms'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
167 ]),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
168 packages=find_packages(),
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
169 include_package_data=True,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
170 zip_safe=False,
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
171 install_requires=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
172 'Jinja2==2.7.3',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
173 'Markdown==2.4.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
174 'MarkupSafe==0.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
175 'PyYAML==3.11',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
176 'Pygments==1.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
177 'Werkzeug==0.9.6',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
178 'colorama==0.3.1',
66
e4a24512b814 Add `compressinja` to install/env requirements.
Ludovic Chabant <ludovic@chabant.com>
parents: 9
diff changeset
179 'compressinja==0.0.2',
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
180 'mock==1.0.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
181 'py==1.4.23',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
182 'python-dateutil==2.2',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
183 'repoze.lru==0.6',
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
184 'smartypants==1.8.6',
124
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 82
diff changeset
185 'strict-rfc3339==0.4',
f49fcf9448df Add Textile formatter.
Ludovic Chabant <ludovic@chabant.com>
parents: 82
diff changeset
186 'textile==2.2.1'
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
187 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
188 tests_require=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
189 'pytest==2.6.1',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
190 'pytest-mock==0.2.0'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
191 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
192 cmdclass={
69
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
193 'test': PyTest,
cb1ed436642c Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents: 66
diff changeset
194 'version' : GenerateVersionCommand
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
195 },
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
196 classifiers=[
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
197 'Development Status :: 3 - Alpha',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
198 'License :: OSI Approved :: Apache Software License',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
199 'Environment :: Console',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
200 'Intended Audience :: Developers',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
201 'Intended Audience :: System Administrators',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
202 'Natural Language :: English',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
203 'Operating System :: MacOS :: MacOS X',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
204 'Operating System :: POSIX :: Linux',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
205 'Operating System :: Microsoft :: Windows',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
206 'Programming Language :: Python',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
207 'Programming Language :: Python :: 3'
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
208 ],
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
209 entry_points={'console_scripts': [
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
210 'chef = piecrust.main:main',
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
211 ]}
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
212 )
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
213