Mercurial > piecrust2
annotate setup.py @ 1051:971b4d67e82a
serve: Fix problems with assets disappearing between servings.
When an asset file changes, its source's pipeline is re-run. But that created
a bake record that only had that pipeline's output, so the other outputs were
incorrectly considered empty and therefore any stray files were removed. Now we
copy over bake records for the pipelines we don't run.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 26 Jan 2018 18:05:02 -0800 |
parents | 54eb8ad9e809 |
children | 8178671f9a04 |
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', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
157 'Flask>=0.10.1', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
158 'Flask-IndieAuth>=0.0.3.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
159 'Flask-Login>=0.3.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
160 'Inukshuk>=0.1.1', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
161 'Jinja2>=2.9.6', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
162 'Markdown>=2.6.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
163 'MarkupSafe>=1.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
164 'misaka>=2.1.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
165 'paramiko>=2.0.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
166 'Pillow>=4.3.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
167 'Pygments>=2.0.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
168 'pystache>=0.5.4', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
169 'python-dateutil>=2.4.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
170 'PyYAML>=3.11', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
171 'repoze.lru>=0.6', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
172 'smartypants>=1.8.6', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
173 'strict-rfc3339>=0.5', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
174 'textile>=2.2.2', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
175 '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
|
176 'watchdog>=0.8.3', |
1039
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
177 'Werkzeug>=0.12.2' |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
178 ] |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
179 tests_require = [ |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
180 'invoke>=0.21.0', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
181 'pytest>=2.8.7', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
182 'pytest-cov>=2.2.1', |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
183 'pytest-mock>=0.10.1' |
3133ddc3cb73
cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents:
884
diff
changeset
|
184 ] |
373
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
185 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
186 |
9fb7c4921d75
setup: Keep the requirements in sync between `setuptools` and `pip`.
Ludovic Chabant <ludovic@chabant.com>
parents:
179
diff
changeset
|
187 setup( |
884 | 188 name="PieCrust", |
189 version=version, | |
190 description="A powerful static website generator and lightweight CMS.", | |
191 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'), | |
192 author="Ludovic Chabant", | |
193 author_email="ludovic@chabant.com", | |
194 license="Apache License 2.0", | |
195 url="http://bolt80.com/piecrust", | |
196 keywords=' '.join([ | |
197 'python', | |
198 'website', | |
199 'generator', | |
200 'blog', | |
201 'portfolio', | |
202 'gallery', | |
203 'cms' | |
204 ]), | |
205 packages=find_packages(exclude=['garcon', 'tests']), | |
206 include_package_data=True, | |
207 zip_safe=False, | |
208 install_requires=install_requires, | |
209 tests_require=tests_require, | |
210 cmdclass={ | |
211 'test': PyTest, | |
212 'version': GenerateVersionCommand | |
213 }, | |
214 classifiers=[ | |
215 'Development Status :: 4 - Beta', | |
216 'License :: OSI Approved :: Apache Software License', | |
217 'Environment :: Console', | |
218 'Intended Audience :: Developers', | |
219 'Intended Audience :: System Administrators', | |
220 'Natural Language :: English', | |
221 'Operating System :: MacOS :: MacOS X', | |
222 'Operating System :: POSIX :: Linux', | |
223 'Operating System :: Microsoft :: Windows', | |
224 'Programming Language :: Python :: 3 :: Only', | |
225 'Topic :: Internet :: WWW/HTTP :: Site Management' | |
226 ], | |
227 entry_points={'console_scripts': [ | |
228 'chef = piecrust.main:main' | |
229 ]} | |
230 ) | |
9
8f7ba2c95025
Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
231 |