Mercurial > piecrust2
annotate setup.py @ 1145:e94737572542
serve: Fix an issue where false positive matches were rendered as the requested page.
Now we try to render the page, but also try to detect for the most common "empty" pages.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 05 Jun 2018 22:08:51 -0700 |
parents | 8af2ea1f5c34 |
children | 0d699f04968c |
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 |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
154 install_requires = [ |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
155 'colorama>=0.3.3', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
156 'compressinja>=0.0.2', |
1114
8af2ea1f5c34
tasks: Add new `tasks` command and infrastructure, with `mention` task.
Ludovic Chabant <ludovic@chabant.com>
parents:
1063
diff
changeset
|
157 'beautifulsoup4>=4.6.0', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
158 'Flask>=0.10.1', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
159 'Flask-IndieAuth>=0.0.3.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
160 'Flask-Login>=0.3.2', |
1063
21834ab8fd9b
cm: Bump Inukshuk to `0.1.2`, regenerate `requirements.txt`.
Ludovic Chabant <ludovic@chabant.com>
parents:
1062
diff
changeset
|
161 'Inukshuk>=0.1.2', |
1062
7f7f91275578
cm: Upgrade Jinja2 to `2.10`, remove `dev-requirements.txt`.
Ludovic Chabant <ludovic@chabant.com>
parents:
1061
diff
changeset
|
162 'Jinja2>=2.10', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
163 'Markdown>=2.6.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
164 'MarkupSafe>=1.0', |
1114
8af2ea1f5c34
tasks: Add new `tasks` command and infrastructure, with `mention` task.
Ludovic Chabant <ludovic@chabant.com>
parents:
1063
diff
changeset
|
165 'mf2py>=1.0.5', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
166 'paramiko>=2.0.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
167 'Pillow>=4.3.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
168 'Pygments>=2.0.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
169 'pystache>=0.5.4', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
170 'python-dateutil>=2.4.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
171 'PyYAML>=3.11', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
172 'repoze.lru>=0.6', |
1114
8af2ea1f5c34
tasks: Add new `tasks` command and infrastructure, with `mention` task.
Ludovic Chabant <ludovic@chabant.com>
parents:
1063
diff
changeset
|
173 'requests>=2.18.0', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
174 'smartypants>=1.8.6', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
175 'strict-rfc3339>=0.5', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
176 'textile>=2.2.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
177 'Unidecode>=0.4.18', |
1043
54eb8ad9e809
serve: Use `watchdog` for a more efficient monitoring of assets files.
Ludovic Chabant <ludovic@chabant.com>
parents:
1039
diff
changeset
|
178 'watchdog>=0.8.3', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
179 'Werkzeug>=0.12.2' |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
180 ] |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
181 tests_require = [ |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
182 'invoke>=0.21.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
183 'pytest>=2.8.7', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
184 'pytest-cov>=2.2.1', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
185 'pytest-mock>=0.10.1' |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
186 ] |
373
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
187 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
188 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
189 setup( |
884 | 190 name="PieCrust", |
191 version=version, | |
192 description="A powerful static website generator and lightweight CMS.", | |
193 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'), | |
194 author="Ludovic Chabant", | |
195 author_email="ludovic@chabant.com", | |
196 license="Apache License 2.0", | |
197 url="http://bolt80.com/piecrust", | |
198 keywords=' '.join([ | |
199 'python', | |
200 'website', | |
201 'generator', | |
202 'blog', | |
203 'portfolio', | |
204 'gallery', | |
205 'cms' | |
206 ]), | |
207 packages=find_packages(exclude=['garcon', 'tests']), | |
208 include_package_data=True, | |
209 zip_safe=False, | |
210 install_requires=install_requires, | |
211 tests_require=tests_require, | |
212 cmdclass={ | |
213 'test': PyTest, | |
214 'version': GenerateVersionCommand | |
215 }, | |
216 classifiers=[ | |
217 'Development Status :: 4 - Beta', | |
218 'License :: OSI Approved :: Apache Software License', | |
219 'Environment :: Console', | |
220 'Intended Audience :: Developers', | |
221 'Intended Audience :: System Administrators', | |
222 'Natural Language :: English', | |
223 'Operating System :: MacOS :: MacOS X', | |
224 'Operating System :: POSIX :: Linux', | |
225 'Operating System :: Microsoft :: Windows', | |
226 'Programming Language :: Python :: 3 :: Only', | |
227 'Topic :: Internet :: WWW/HTTP :: Site Management' | |
228 ], | |
229 entry_points={'console_scripts': [ | |
230 'chef = piecrust.main:main' | |
231 ]} | |
232 ) | |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
233 |