Mercurial > piecrust2
annotate setup.py @ 920:5b4c02ed9bb2
serve: Fix error admin panel error message page.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 29 Sep 2017 08:45:06 -0700 |
parents | 18b3e2acd069 |
children | 3133ddc3cb73 |
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 |
685
77cec2fa0e83
cm: Fix a packaging bug, update package metadata.
Ludovic Chabant <ludovic@chabant.com>
parents:
678
diff
changeset
|
18 def readlines(fname): |
737
8b3dfd91cbf6
cm: Fix `setup.py` script.
Ludovic Chabant <ludovic@chabant.com>
parents:
685
diff
changeset
|
19 return [l.strip() for l in read(fname).strip().splitlines()] |
685
77cec2fa0e83
cm: Fix a packaging bug, update package metadata.
Ludovic Chabant <ludovic@chabant.com>
parents:
678
diff
changeset
|
20 |
77cec2fa0e83
cm: Fix a packaging bug, update package metadata.
Ludovic Chabant <ludovic@chabant.com>
parents:
678
diff
changeset
|
21 |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
22 def runcmd(cmd): |
373
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
23 with subprocess.Popen( |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
24 cmd, stdout=subprocess.PIPE, |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
25 stderr=subprocess.PIPE) as p: |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
26 out, err = p.communicate() |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
27 return out, err |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
28 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
29 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
30 class PyTest(test): |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
31 def finalize_options(self): |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
32 super(PyTest, self).finalize_options() |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
33 self.test_args = ['tests'] |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
34 self.test_suite = True |
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 def run_tests(self): |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
37 import pytest |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
38 errno = pytest.main(self.test_args) |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 sys.exit(errno) |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
41 |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
42 class GenerateVersionCommand(Command): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
43 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
|
44 user_options = [ |
884 | 45 ('force=', 'f', 'force a specific version number')] |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
46 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
47 def initialize_options(self): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
48 self.force = None |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
49 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
50 def finalize_options(self): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
51 pass |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
52 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
53 def run(self): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
54 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
|
55 write_version(v) |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
56 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
|
57 return 0 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
58 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
59 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
60 def generate_version(): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
61 """ 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
|
62 (this is loosely based on what Mercurial does)""" |
82
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
63 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
|
64 return generate_version_from_mercurial() |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
65 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
|
66 return generate_version_from_git() |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
67 else: |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
68 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
|
69 "Mercurial repository.") |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
70 |
179
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
71 |
82
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
72 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
|
73 try: |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
74 # 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
|
75 # changes. |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
76 cmd = ['hg', 'id', '-i'] |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
77 hgid, err = runcmd(cmd) |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
78 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
|
79 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
|
80 hgid = hgid.rstrip('+') |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
81 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
82 # Get the tags on the current version. |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
83 cmd = ['hg', 'log', '-r', '.', '--template', '{tags}\n'] |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
84 tags, err = runcmd(cmd) |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
85 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
|
86 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
87 if versions: |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
88 # Use the tag found at the current revision. |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
89 version = versions[-1] |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
90 else: |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
91 # 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
|
92 # 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
|
93 cmd = ['hg', 'parents', '--template', |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
94 '{latesttag}+{latesttagdistance}'] |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
95 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
|
96 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
|
97 if dist == '1': |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
98 # 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
|
99 # 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
|
100 version = tag |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
101 else: |
179
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
102 version = '%s+%s.%s' % (tag, dist, hgid) |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
104 if has_local_changes: |
179
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
105 if '+' in version: |
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
106 version += '.' |
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
107 else: |
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
108 version += '+' |
acc718ab56da
setup: Make version generation compatible with PEP440.
Ludovic Chabant <ludovic@chabant.com>
parents:
124
diff
changeset
|
109 version += time.strftime('%Y%m%d') |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
110 |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
111 return version |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
112 except OSError: |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
113 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
|
114 "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
|
115 except Exception as ex: |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
116 raise Exception("Can't generate version number: %s" % ex) |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
117 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
118 |
82
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
119 def generate_version_from_git(): |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
120 try: |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
121 cmd = ['git', 'describe', '--tags', '--dirty=+'] |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
122 version, err = runcmd(cmd) |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
123 version = version.decode('utf8').strip() |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
124 if version.endswith('+'): |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
125 version += time.strftime('%Y%m%d') |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
126 return version |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
127 except OSError: |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
128 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
|
129 "or in the PATH.") |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
130 except Exception as ex: |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
131 raise Exception("Can't generate version number: %s" % ex) |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
132 |
ae90caf26224
Support for installing from Git.
Ludovic Chabant <ludovic@chabant.com>
parents:
76
diff
changeset
|
133 |
69
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
134 def write_version(version): |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
135 if not version: |
cb1ed436642c
Always use version generated by `setup.py`. Better version generation.
Ludovic Chabant <ludovic@chabant.com>
parents:
66
diff
changeset
|
136 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
|
137 |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
138 f = open("piecrust/__version__.py", "w") |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
139 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
|
140 f.write('APP_VERSION = "%s"\n' % version) |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
141 f.close() |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
142 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
143 |
72
ecee3e8f35e5
Fix `setuptools` install.
Ludovic Chabant <ludovic@chabant.com>
parents:
69
diff
changeset
|
144 try: |
676
a04288f199a5
cm: Don't always generation the version when running `setuptools`.
Ludovic Chabant <ludovic@chabant.com>
parents:
588
diff
changeset
|
145 from piecrust.__version__ import APP_VERSION |
a04288f199a5
cm: Don't always generation the version when running `setuptools`.
Ludovic Chabant <ludovic@chabant.com>
parents:
588
diff
changeset
|
146 version = APP_VERSION |
a04288f199a5
cm: Don't always generation the version when running `setuptools`.
Ludovic Chabant <ludovic@chabant.com>
parents:
588
diff
changeset
|
147 except ImportError: |
678
551d06cc640c
cm: Don't raise an exception when no version file exists.
Ludovic Chabant <ludovic@chabant.com>
parents:
676
diff
changeset
|
148 print( |
884 | 149 "WARNING: Can't get version from version file. " |
150 "Will use version `0.0`.") | |
678
551d06cc640c
cm: Don't raise an exception when no version file exists.
Ludovic Chabant <ludovic@chabant.com>
parents:
676
diff
changeset
|
151 version = '0.0' |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
152 |
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
153 |
685
77cec2fa0e83
cm: Fix a packaging bug, update package metadata.
Ludovic Chabant <ludovic@chabant.com>
parents:
678
diff
changeset
|
154 install_requires = readlines('requirements.txt') |
77cec2fa0e83
cm: Fix a packaging bug, update package metadata.
Ludovic Chabant <ludovic@chabant.com>
parents:
678
diff
changeset
|
155 tests_require = readlines('dev-requirements.txt') |
373
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
156 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
157 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
158 setup( |
884 | 159 name="PieCrust", |
160 version=version, | |
161 description="A powerful static website generator and lightweight CMS.", | |
162 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'), | |
163 author="Ludovic Chabant", | |
164 author_email="ludovic@chabant.com", | |
165 license="Apache License 2.0", | |
166 url="http://bolt80.com/piecrust", | |
167 keywords=' '.join([ | |
168 'python', | |
169 'website', | |
170 'generator', | |
171 'blog', | |
172 'portfolio', | |
173 'gallery', | |
174 'cms' | |
175 ]), | |
176 packages=find_packages(exclude=['garcon', 'tests']), | |
177 include_package_data=True, | |
178 zip_safe=False, | |
179 install_requires=install_requires, | |
180 tests_require=tests_require, | |
181 cmdclass={ | |
182 'test': PyTest, | |
183 'version': GenerateVersionCommand | |
184 }, | |
185 classifiers=[ | |
186 'Development Status :: 4 - Beta', | |
187 'License :: OSI Approved :: Apache Software License', | |
188 'Environment :: Console', | |
189 'Intended Audience :: Developers', | |
190 'Intended Audience :: System Administrators', | |
191 'Natural Language :: English', | |
192 'Operating System :: MacOS :: MacOS X', | |
193 'Operating System :: POSIX :: Linux', | |
194 'Operating System :: Microsoft :: Windows', | |
195 'Programming Language :: Python :: 3 :: Only', | |
196 'Topic :: Internet :: WWW/HTTP :: Site Management' | |
197 ], | |
198 entry_points={'console_scripts': [ | |
199 'chef = piecrust.main:main' | |
200 ]} | |
201 ) | |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
202 |