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