annotate setup.py @ 1154:aad9b5a0a809

prepare: Add micro-blogging template.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 19 Jan 2019 17:41:56 -0800
parents 0d699f04968c
children c5c98d0fb4ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
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
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
149 "WARNING: Can't get version from version file. "
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
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 = [
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
155 'colorama>=0.4.0',
1039
3133ddc3cb73 cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents: 884
diff changeset
156 'compressinja>=0.0.2',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
157 'beautifulsoup4>=4.6.3',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
158 'Flask>=1.0.2',
1039
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',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
160 'Flask-Login>=0.4.1',
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',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
163 'Markdown>=3.0.1',
1039
3133ddc3cb73 cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents: 884
diff changeset
164 'MarkupSafe>=1.0',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
165 'mf2py>=1.1.2',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
166 'paramiko>=2.4.2',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
167 'Pillow>=5.3.0',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
168 'Pygments>=2.2.0',
1039
3133ddc3cb73 cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents: 884
diff changeset
169 'pystache>=0.5.4',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
170 'python-dateutil>=2.7.5',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
171 'PyYAML>=3.13',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
172 'repoze.lru>=0.7',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
173 'requests>=2.20.0',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
174 'smartypants>=2.0.1',
1039
3133ddc3cb73 cm: Separate `requirements` from what `setup.py` wants.
Ludovic Chabant <ludovic@chabant.com>
parents: 884
diff changeset
175 'strict-rfc3339>=0.5',
1151
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
176 'textile>=3.0.3',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
177 'Unidecode>=1.0.22',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
178 'watchdog>=0.9.0',
0d699f04968c cm: Update dependencies and fix imports of Flask plugins.
Ludovic Chabant <ludovic@chabant.com>
parents: 1114
diff changeset
179 'Werkzeug>=0.14.1'
1039
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
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
190 name="PieCrust",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
191 version=version,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
192 description="A powerful static website generator and lightweight CMS.",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
193 long_description=read('README.rst') + '\n\n' + read('CHANGELOG.rst'),
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
194 author="Ludovic Chabant",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
195 author_email="ludovic@chabant.com",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
196 license="Apache License 2.0",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
197 url="http://bolt80.com/piecrust",
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
198 keywords=' '.join([
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
199 'python',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
200 'website',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
201 'generator',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
202 'blog',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
203 'portfolio',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
204 'gallery',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
205 'cms'
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
206 ]),
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
207 packages=find_packages(exclude=['garcon', 'tests']),
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
208 include_package_data=True,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
209 zip_safe=False,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
210 install_requires=install_requires,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
211 tests_require=tests_require,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
212 cmdclass={
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
213 'test': PyTest,
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
214 'version': GenerateVersionCommand
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
215 },
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
216 classifiers=[
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
217 'Development Status :: 4 - Beta',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
218 'License :: OSI Approved :: Apache Software License',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
219 'Environment :: Console',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
220 'Intended Audience :: Developers',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
221 'Intended Audience :: System Administrators',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
222 'Natural Language :: English',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
223 'Operating System :: MacOS :: MacOS X',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
224 'Operating System :: POSIX :: Linux',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
225 'Operating System :: Microsoft :: Windows',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
226 'Programming Language :: Python :: 3 :: Only',
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
227 'Topic :: Internet :: WWW/HTTP :: Site Management'
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
228 ],
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
229 entry_points={'console_scripts': [
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
230 'chef = piecrust.main:main'
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
231 ]}
18b3e2acd069 pep8: Fix indenting.
Ludovic Chabant <ludovic@chabant.com>
parents: 780
diff changeset
232 )
9
8f7ba2c95025 Add packaging and related files.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
233