#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright (C) Jean-Paul Calderone 2008-2015, All rights reserved # """ Installation script for the OpenSSL module. """ import codecs import os import re import sys from setuptools import setup from setuptools.command.test import test as TestCommand HERE = os.path.abspath(os.path.dirname(__file__)) META_PATH = os.path.join("OpenSSL", "version.py") def read_file(*parts): """ Build an absolute path from *parts* and and return the contents of the resulting file. Assume UTF-8 encoding. """ with codecs.open(os.path.join(HERE, *parts), "rb", "ascii") as f: return f.read() META_FILE = read_file(META_PATH) def find_meta(meta): """ Extract __*meta*__ from META_FILE. """ meta_match = re.search( r"^__{meta}__ = ['\"]([^'\"]*)['\"]".format(meta=meta), META_FILE, re.M ) if meta_match: return meta_match.group(1) raise RuntimeError("Unable to find __{meta}__ string.".format(meta=meta)) class PyTest(TestCommand): user_options = [("pytest-args=", "a", "Arguments to pass to py.test")] def initialize_options(self): TestCommand.initialize_options(self) self.pytest_args = None def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [] self.test_suite = True def run_tests(self): # import here, cause outside the eggs aren't loaded import pytest errno = pytest.main(self.pytest_args or [] + ["OpenSSL"]) sys.exit(errno) setup( name=find_meta("title"), version=find_meta("version"), description=find_meta("summary"), long_description=read_file("README.rst"), author=find_meta("author"), author_email=find_meta("email"), maintainer="Hynek Schlawack", maintainer_email="hs@ox.cx", url=find_meta("uri"), license=find_meta("license"), classifiers=[ 'Development Status :: 6 - Mature', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Security :: Cryptography', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: System :: Networking', ], packages=['OpenSSL'], package_dir={'OpenSSL': 'OpenSSL'}, py_modules=['OpenSSL.__init__', 'OpenSSL.tsafe', 'OpenSSL.rand', 'OpenSSL.crypto', 'OpenSSL.SSL', 'OpenSSL.version', 'OpenSSL.test.__init__', 'OpenSSL.test.util', 'OpenSSL.test.test_crypto', 'OpenSSL.test.test_rand', 'OpenSSL.test.test_ssl', 'OpenSSL.test.test_tsafe', 'OpenSSL.test.test_util',], install_requires=[ "cryptography>=0.7", "six>=1.5.2" ], test_suite="OpenSSL", tests_require=[ "pytest", ], cmdclass={ "test": PyTest, } )