PyORAm
[iotcloud.git] / PyORAM / setup.py
1 import os
2 import sys
3 import platform
4 from setuptools import setup, find_packages
5 from codecs import open
6
7 here = os.path.abspath(os.path.dirname(__file__))
8
9 about = {}
10 with open(os.path.join("src", "pyoram", "__about__.py")) as f:
11     exec(f.read(), about)
12
13 # Get the long description from the README file
14 def _readme():
15     with open(os.path.join(here, 'README.rst'), encoding='utf-8') as f:
16         return f.read()
17
18 setup_requirements = []
19 requirements = ['cryptography',
20                 'paramiko',
21                 'boto3',
22                 'six',
23                 'tqdm']
24
25 if platform.python_implementation() == "PyPy":
26     if sys.pypy_version_info < (2, 6):
27         raise RuntimeError(
28             "PyORAM is not compatible with PyPy < 2.6. Please "
29             "upgrade PyPy to use this library.")
30 else:
31     if sys.version_info <= (2, 6):
32         raise RuntimeError(
33             "PyORAM is not compatible with Python < 2.7. Please "
34             "upgrade Python to use this library.")
35     requirements.append("cffi>=1.0.0")
36     setup_requirements.append("cffi>=1.0.0")
37
38 setup(
39     name=about['__title__'],
40     version=about['__version__'],
41     description=about['__summary__'],
42     long_description=_readme(),
43     url=about['__uri__'],
44     author=about['__author__'],
45     author_email=about['__email__'],
46     license=about['__license__'],
47     # https://pypi.python.org/pypi?%3Aaction=list_classifiers
48     classifiers=[
49         'Development Status :: 4 - Beta',
50         'Intended Audience :: Science/Research',
51         'Topic :: Security :: Cryptography',
52         "Natural Language :: English",
53         'License :: OSI Approved :: MIT License',
54         'Programming Language :: Python :: 2.7',
55         'Programming Language :: Python :: 3',
56         'Programming Language :: Python :: 3.3',
57         'Programming Language :: Python :: 3.4',
58         'Programming Language :: Python :: 3.5',
59         'Programming Language :: Python :: Implementation :: CPython',
60         'Programming Language :: Python :: Implementation :: PyPy',
61     ],
62     keywords='oram, storage, privacy, cryptography, cloud storage',
63     package_dir={'': 'src'},
64     packages=find_packages(where="src", exclude=["_cffi_src", "_cffi_src.*"]),
65     setup_requires=setup_requirements,
66     install_requires=requirements,
67     cffi_modules=["src/_cffi_src/virtual_heap_helper_build.py:ffi"],
68     # use MANIFEST.in
69     include_package_data=True,
70     test_suite='nose2.collector.collector',
71     tests_require=['unittest2','nose2']
72 )