-
Notifications
You must be signed in to change notification settings - Fork 5
/
setup.py
76 lines (61 loc) · 2.1 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
import sys
from setuptools import setup, find_packages
from setuptools.command.test import test as TestCommand
from setuptools.command import egg_info
def _topLevel(name):
return name.split('.', 1)[0]
def _hacked_write_toplevel_names(cmd, basename, filename):
names = map(_topLevel, cmd.distribution.iter_distribution_names())
pkgs = dict.fromkeys(set(names) - set(["twisted"]))
cmd.write_file("top-level names", filename, '\n'.join(pkgs) + '\n')
egg_info.write_toplevel_names = _hacked_write_toplevel_names
packageName = "c101ws"
dependencies = [
"twisted>=13.2.0",
"PyOpenSSL>=0.14",
"treq==0.2.0",
"pem==0.2.0"
]
import re
versionLine = open("{0}/_version.py".format(packageName), "rt").read()
match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", versionLine, re.M)
versionString = match.group(1)
class Tox(TestCommand):
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_suite = True
def run_tests(self):
#import here, cause outside the eggs aren't loaded
import tox
sys.exit(tox.cmdline([]))
setup(name=packageName,
version=versionString,
description='The web site for Crypto 101',
url='https://github.com/crypto101/website',
author='Laurens Van Houtven',
author_email='[email protected]',
packages=find_packages() + ["twisted.plugins"],
test_suite=packageName + ".test",
install_requires=dependencies,
cmdclass={'test': Tox},
zip_safe=True,
license='ISC',
keywords="crypto twisted",
classifiers=[
"Development Status :: 3 - Alpha",
"Framework :: Twisted",
"Intended Audience :: Education",
"License :: OSI Approved :: ISC License (ISCL)",
"Programming Language :: Python :: 2 :: Only",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Topic :: Education",
"Topic :: Security :: Cryptography",
]
)
try:
from twisted.plugin import IPlugin, getPlugins
except ImportError:
pass
else:
list(getPlugins(IPlugin))