1#!/usr/bin/env python
2
3from setuptools import setup, Command
4
5import versioneer
6
7commands = versioneer.get_cmdclass().copy()
8
9class Trial(Command):
10    description = "run trial"
11    user_options = []
12
13    def initialize_options(self):
14        pass
15    def finalize_options(self):
16        pass
17    def run(self):
18        import sys
19        from twisted.scripts import trial
20        sys.argv = ["trial", "--rterrors", "foolscap.test"]
21        trial.run()  # does not return
22commands["trial"] = Trial
23commands["test"] = Trial
24
25trove_classifiers = [
26    "Development Status :: 3 - Alpha",
27    "Operating System :: OS Independent",
28    "License :: OSI Approved :: MIT License",
29    "Programming Language :: Python",
30    "Programming Language :: Python :: 2",
31    "Programming Language :: Python :: 2.7",
32    "Programming Language :: Python :: 3",
33    "Programming Language :: Python :: 3.5",
34    "Programming Language :: Python :: 3.6",
35    "Programming Language :: Python :: 3.7",
36    "Programming Language :: Python :: 3.8",
37    "Programming Language :: Python :: Implementation :: CPython",
38    "Topic :: Internet",
39    "Topic :: Software Development :: Libraries :: Python Modules",
40    "Topic :: System :: Distributed Computing",
41    "Topic :: System :: Networking",
42    "Topic :: Software Development :: Object Brokering",
43    ]
44
45setup_args = {
46    "name": "foolscap",
47    "version": versioneer.get_version(),
48    "description": "Foolscap contains an RPC protocol for Twisted.",
49    "author": "Brian Warner",
50    "author_email": "warner-foolscap@lothar.com",
51    "url": "http://foolscap.lothar.com/trac",
52    "license": "MIT",
53    "long_description": """\
54Foolscap (aka newpb) is a new version of Twisted's native RPC protocol, known
55as 'Perspective Broker'. This allows an object in one process to be used by
56code in a distant process. This module provides data marshaling, a remote
57object reference system, and a capability-based security model.
58""",
59    "classifiers": trove_classifiers,
60    "platforms": ["any"],
61
62    "package_dir": {"": "src"},
63    "packages": ["foolscap", "foolscap.slicers", "foolscap.logging",
64                 "foolscap.connections",
65                 "foolscap.appserver", "foolscap.test"],
66    "entry_points": {"console_scripts": [
67        "flogtool = foolscap.logging.cli:run_flogtool",
68        "flappserver = foolscap.appserver.cli:run_flappserver",
69        "flappclient = foolscap.appserver.client:run_flappclient",
70        ] },
71    "cmdclass": commands,
72    "install_requires": ["six", "twisted[tls] >= 16.0.0", "pyOpenSSL"],
73    "extras_require": {
74        "dev": ["mock", "txtorcon >= 19.0.0",
75                "txi2p-tahoe >= 0.3.5; python_version > '3.0'",
76                "txi2p >= 0.3.2; python_version < '3.0'",
77                "pywin32 ; sys_platform == 'win32'"],
78        "tor": ["txtorcon >= 19.0.0"],
79        "i2p": ["txi2p-tahoe >= 0.3.5; python_version > '3.0'",
80                "txi2p >= 0.3.2; python_version < '3.0'"],
81        },
82}
83
84setup_args.update(
85    include_package_data=True,
86)
87
88if __name__ == "__main__":
89    setup(**setup_args)
90
91