Mercurial > piecrust2
annotate setup.py @ 125:c77062233ba5
Update system messages.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 14 Nov 2014 22:45:12 +0100 |
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 |