blob: 2edb712e6bb6233b1e7e0b4e82fa2c6e2ea65987 [file] [log] [blame]
Jean-Paul Calderonecf20dd62008-06-12 16:38:38 -04001#!/usr/bin/env python
Jean-Paul Calderone0db6cdb2008-04-11 11:52:15 -04002# -*- coding: utf-8 -*-
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05003#
Hynek Schlawack76ecf942015-04-14 11:09:44 -04004# Copyright (C) Jean-Paul Calderone 2008-2015, All rights reserved
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05005#
Jean-Paul Calderonee53ccf72008-04-11 11:40:39 -04006
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05007"""
Hynek Schlawack5bc17cb2015-04-30 19:21:40 +02008Installation script for the OpenSSL module.
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05009"""
10
Hynek Schlawack5bc17cb2015-04-30 19:21:40 +020011import codecs
12import os
13import re
Hynek Schlawackf982efd2015-04-15 12:08:54 -040014
Hynek Schlawackf0e66852015-10-16 20:18:38 +020015from setuptools import setup, find_packages
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050016
Hynek Schlawack76ecf942015-04-14 11:09:44 -040017
Hynek Schlawack5bc17cb2015-04-30 19:21:40 +020018HERE = os.path.abspath(os.path.dirname(__file__))
Hynek Schlawackf0e66852015-10-16 20:18:38 +020019META_PATH = os.path.join("src", "OpenSSL", "version.py")
Hynek Schlawack5bc17cb2015-04-30 19:21:40 +020020
21
22def read_file(*parts):
23 """
24 Build an absolute path from *parts* and and return the contents of the
25 resulting file. Assume UTF-8 encoding.
26 """
27 with codecs.open(os.path.join(HERE, *parts), "rb", "ascii") as f:
28 return f.read()
29
30
31META_FILE = read_file(META_PATH)
32
33
34def find_meta(meta):
35 """
36 Extract __*meta*__ from META_FILE.
37 """
38 meta_match = re.search(
39 r"^__{meta}__ = ['\"]([^'\"]*)['\"]".format(meta=meta),
40 META_FILE, re.M
41 )
42 if meta_match:
43 return meta_match.group(1)
44 raise RuntimeError("Unable to find __{meta}__ string.".format(meta=meta))
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050045
Hynek Schlawackf982efd2015-04-15 12:08:54 -040046
Hynek Schlawackf0e66852015-10-16 20:18:38 +020047if __name__ == "__main__":
48 setup(
49 name=find_meta("title"),
50 version=find_meta("version"),
51 description=find_meta("summary"),
52 long_description=read_file("README.rst"),
53 author=find_meta("author"),
54 author_email=find_meta("email"),
55 maintainer="Hynek Schlawack",
56 maintainer_email="hs@ox.cx",
57 url=find_meta("uri"),
58 license=find_meta("license"),
59 classifiers=[
60 'Development Status :: 6 - Mature',
61 'Intended Audience :: Developers',
62 'License :: OSI Approved :: Apache Software License',
63 'Operating System :: MacOS :: MacOS X',
64 'Operating System :: Microsoft :: Windows',
65 'Operating System :: POSIX',
Hynek Schlawackf982efd2015-04-15 12:08:54 -040066
Hynek Schlawackf0e66852015-10-16 20:18:38 +020067 'Programming Language :: Python :: 2',
68 'Programming Language :: Python :: 2.6',
69 'Programming Language :: Python :: 2.7',
70 'Programming Language :: Python :: 3',
71 'Programming Language :: Python :: 3.3',
72 'Programming Language :: Python :: 3.4',
73 'Programming Language :: Python :: 3.5',
Hynek Schlawackf982efd2015-04-15 12:08:54 -040074
Hynek Schlawackf0e66852015-10-16 20:18:38 +020075 'Programming Language :: Python :: Implementation :: CPython',
76 'Programming Language :: Python :: Implementation :: PyPy',
77 'Topic :: Security :: Cryptography',
78 'Topic :: Software Development :: Libraries :: Python Modules',
79 'Topic :: System :: Networking',
80 ],
Hynek Schlawackf982efd2015-04-15 12:08:54 -040081
Hynek Schlawackf0e66852015-10-16 20:18:38 +020082 packages=find_packages(where="src"),
83 package_dir={"": "src"},
84 install_requires=[
Paul Kehrerb3ba7082016-03-09 21:48:38 -040085 "cryptography>=1.2",
Hynek Schlawackf0e66852015-10-16 20:18:38 +020086 "six>=1.5.2"
87 ],
88 )