summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py133
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",]
+)