forked from jazzband/django-ddp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
159 lines (145 loc) · 4.98 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/usr/bin/env python
"""Django/PostgreSQL implementation of the Meteor server."""
import os.path
import setuptools
import subprocess
from distutils import log
from distutils.version import StrictVersion
from distutils.command.build import build
# setuptools 18.5 introduces support for the `platform_python_implementation`
# environment marker: https://github.com/jaraco/setuptools/pull/28
__requires__ = 'setuptools>=18.5'
assert StrictVersion(setuptools.__version__) >= StrictVersion('18.5'), \
'Installation from source requires setuptools>=18.5.'
class Build(build):
"""Build all files of a package."""
def run(self):
"""Build our package."""
cmdline = [
'meteor',
'build',
'--directory',
'../build',
]
meteor_dir = os.path.join(
os.path.dirname(__file__),
'dddp',
'test',
'meteor_todos',
)
log.info('Building meteor app %r (%s)', meteor_dir, ' '.join(cmdline))
subprocess.check_call(cmdline, cwd=meteor_dir)
return build.run(self)
CLASSIFIERS = [
# Beta status until 1.0 is released
"Development Status :: 4 - Beta",
# Who and what the project is for
"Intended Audience :: Developers",
"Topic :: Database",
"Topic :: Internet",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Browsers",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Internet :: WWW/HTTP :: Session",
"Topic :: Internet :: WWW/HTTP :: WSGI",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Object Brokering",
"Topic :: System :: Distributed Computing",
# License classifiers
"License :: OSI Approved :: MIT License",
"License :: DFSG approved",
"License :: OSI Approved",
# Generally, we support the following.
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Framework :: Django",
# Specifically, we support the following releases.
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Framework :: Django :: 1.8",
"Framework :: Django :: 1.9",
]
setuptools.setup(
name='django-ddp',
version='0.19.0',
description=__doc__,
long_description=open('README.rst').read(),
author='Tyson Clugg',
author_email='[email protected]',
url='https://github.com/django-ddp/django-ddp',
keywords=[
'django ddp meteor websocket websockets realtime real-time live '
'liveupdate live-update livequery live-query'
],
license='MIT',
packages=setuptools.find_packages(),
include_package_data=True, # install data files specified in MANIFEST.in
zip_safe=False, # TODO: Move dddp.test into it's own package.
setup_requires=[
# packages required to run the setup script
__requires__,
],
install_requires=[
'Django>=1.8',
'django-dbarray>=0.2',
'meteor-ejson>=1.0',
'psycogreen>=1.0',
'pybars3>=0.9.1',
'six>=1.10.0',
],
extras_require={
# We need gevent version dependent upon environment markers, but the
# extras_require seem to be a separate phase from setup/install of
# install_requires. So we specify gevent-websocket (which depends on
# gevent) here in order to honour environment markers.
'': [
'gevent-websocket>=0.9,!=0.9.4',
],
# Django 1.9 doesn't support Python 3.3
':python_version=="3.3"': [
'Django<1.9',
],
# CPython < 3.0 can use gevent 1.0
':platform_python_implementation=="CPython" and python_version<"3.0"': [
'gevent>=1.0',
],
# everything else needs gevent 1.1
':platform_python_implementation!="CPython" or python_version>="3.0"': [
'gevent>=1.1rc2',
],
# CPython can use plain old psycopg2
':platform_python_implementation=="CPython"': [
'psycopg2>=2.5.4',
],
# everything else must use psycopg2cffi
':platform_python_implementation != "CPython"': [
'psycopg2cffi>=2.7.2',
],
'develop': [
# things you need to distribute a wheel from source (`make dist`)
'Sphinx>=1.3.3',
'Sphinx-PyPI-upload>=0.2.1',
'twine>=1.6.4',
'sphinxcontrib-dashbuilder>=0.1.0',
],
},
entry_points={
'console_scripts': [
'dddp=dddp.main:main',
],
},
classifiers=CLASSIFIERS,
test_suite='dddp.test.run_tests',
tests_require=[
'requests',
],
cmdclass={
'build': Build,
},
)