diff options
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..f21bc75 --- /dev/null +++ b/setup.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# This file is part of python-gnupg, a Python interface to GnuPG. +# Copyright © 2013 Isis Lovecruft, <isis@leap.se> 0xA3ADB67A2CDB8B35 +# © 2013 Andrej B. +# © 2013 LEAP Encryption Access Project +# © 2008-2012 Vinay Sajip +# © 2005 Steve Traugott +# © 2004 A.M. Kuchling +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the included LICENSE file for details. +#______________________________________________________________________________ + +from __future__ import absolute_import +from __future__ import print_function + +import setuptools +import sys +import os +import versioneer + + +versioneer.versionfile_source = 'gnupg/_version.py' +versioneer.versionfile_build = 'gnupg/_version.py' +versioneer.tag_prefix = '' +versioneer.parentdir_prefix = 'gnupg-' + +__author__ = "Isis Agora Lovecruft" +__contact__ = 'isis@patternsinthevoid.net' +__url__ = 'https://github.com/isislovecruft/python-gnupg' + + +def python26(): + """Returns True if we're running on Python2.6.""" + if sys.version[:3] == "2.6": + return True + return False + +def get_requirements(): + """Extract the list of requirements from our requirements.txt. + + :rtype: 2-tuple + :returns: Two lists, the first is a list of requirements in the form of + pkgname==version. The second is a list of URIs or VCS checkout strings + which specify the dependency links for obtaining a copy of the + requirement. + """ + requirements_file = os.path.join(os.getcwd(), 'requirements.txt') + requirements = [] + links=[] + try: + with open(requirements_file) as reqfile: + for line in reqfile.readlines(): + line = line.strip() + if line.startswith('#'): + continue + elif line.startswith( + ('https://', 'git://', 'hg://', 'svn://')): + links.append(line) + else: + requirements.append(line) + + except (IOError, OSError) as error: + print(error) + + if python26(): + # Required to make `collections.OrderedDict` available on Python<=2.6 + requirements.append('ordereddict==1.1#a0ed854ee442051b249bfad0f638bbec') + + return requirements, links + + +requires, deplinks = get_requirements() + + +setuptools.setup( + name = "gnupg", + description="A Python wrapper for GnuPG", + long_description = """\ +This module allows easy access to GnuPG's key management, encryption and \ +signature functionality from Python programs, by interacting with GnuPG \ +through file descriptors. Input arguments are strictly checked and sanitised, \ +and therefore this module should be safe to use in networked applications \ +requiring direct user input. It is intended for use with Python 2.6 or \ +greater. +""", + license="GPLv3+", + + version=versioneer.get_version(), + cmdclass=versioneer.get_cmdclass(), + + author=__author__, + author_email=__contact__, + maintainer=__author__, + maintainer_email=__contact__, + url=__url__, + + package_dir={'gnupg': 'gnupg'}, + packages=['gnupg'], + package_data={'': ['README', 'LICENSE', 'TODO', 'requirements.txt']}, + scripts=['versioneer.py'], + test_suite='gnupg.test.test_gnupg', + + install_requires=requires, + dependency_links=deplinks, + extras_require={'docs': ["Sphinx>=1.1", + "sphinxcontrib-fulltoc==1.0"]}, + + platforms="Linux, BSD, OSX, Windows", + download_url="https://github.com/isislovecruft/python-gnupg/archive/master.zip", + classifiers=[ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Topic :: Security :: Cryptography", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Utilities",] +) |