certbot/setup.py

140 lines
4.1 KiB
Python
Raw Normal View History

2015-01-29 17:28:22 -05:00
import codecs
import os
import re
import sys
from setuptools import setup
2015-05-10 07:07:56 -04:00
from setuptools import find_packages
# Workaround for http://bugs.python.org/issue8876, see
# http://bugs.python.org/issue8876#msg208792
# This can be removed when using Python 2.7.9 or later:
# https://hg.python.org/cpython/raw-file/v2.7.9/Misc/NEWS
if os.path.abspath(__file__).split(os.path.sep)[1] == 'vagrant':
del os.link
2015-03-23 13:53:44 -04:00
def read_file(filename, encoding='utf8'):
2015-01-29 17:28:22 -05:00
"""Read unicode from given file."""
with codecs.open(filename, encoding=encoding) as fd:
return fd.read()
here = os.path.abspath(os.path.dirname(__file__))
# read version number (and other metadata) from package init
init_fn = os.path.join(here, 'letsencrypt', '__init__.py')
2015-09-27 02:30:30 -04:00
meta = dict(re.findall(r"""__([a-z]+)__ = '([^']+)""", read_file(init_fn)))
readme = read_file(os.path.join(here, 'README.rst'))
changes = read_file(os.path.join(here, 'CHANGES.rst'))
version = meta['version']
2014-11-22 08:19:19 -05:00
install_requires = [
'acme=={0}'.format(version),
'ConfigArgParse',
2015-04-21 22:12:49 -04:00
'configobj',
'cryptography>=0.7', # load_pem_x509_certificate
2015-04-21 22:12:49 -04:00
'parsedatetime',
'psutil>=2.1.0', # net_connections introduced in 2.1.0
'PyOpenSSL',
2015-03-25 12:01:32 -04:00
'pyrfc3339',
2015-04-05 03:58:15 -04:00
'python2-pythondialog>=3.2.2rc1', # Debian squeeze support, cf. #280
2015-03-27 04:43:05 -04:00
'pytz',
2015-09-01 15:57:41 -04:00
'requests',
2015-09-26 06:54:24 -04:00
'setuptools', # pkg_resources
2015-09-26 12:47:29 -04:00
'six',
2014-12-17 06:02:15 -05:00
'zope.component',
2014-12-17 04:12:59 -05:00
'zope.interface',
2014-11-22 08:19:19 -05:00
]
# env markers in extras_require cause problems with older pip: #517
if sys.version_info < (2, 7):
install_requires.extend([
# only some distros recognize stdlib argparse as already satisfying
'argparse',
'mock<1.1.0',
])
else:
install_requires.append('mock')
2015-02-06 18:41:28 -05:00
dev_extras = [
# Pin astroid==1.3.5, pylint==1.4.2 as a workaround for #289
'astroid==1.3.5',
'pylint==1.4.2', # upstream #248
2015-09-27 02:54:31 -04:00
'twine',
'wheel',
]
docs_extras = [
2015-01-30 19:28:09 -05:00
'repoze.sphinx.autointerface',
2015-02-24 09:39:26 -05:00
'Sphinx>=1.0', # autodoc_member_order = 'bysource', autodoc_default_flags
2015-02-24 11:12:31 -05:00
'sphinx_rtd_theme',
'sphinxcontrib-programoutput',
2014-11-23 14:36:34 -05:00
]
2014-11-22 08:19:19 -05:00
testing_extras = [
'coverage',
'nose',
2014-11-27 14:30:56 -05:00
'nosexcover',
2015-09-11 03:04:13 -04:00
'pep8',
'tox',
2014-11-22 08:19:19 -05:00
]
setup(
name='letsencrypt',
version=version,
description="Let's Encrypt client",
long_description=readme, # later: + '\n\n' + changes
url='https://github.com/letsencrypt/letsencrypt',
author="Let's Encrypt Project",
author_email='client-dev@letsencrypt.org',
license='Apache License 2.0',
classifiers=[
2015-09-26 19:02:41 -04:00
'Development Status :: 3 - Alpha',
'Environment :: Console',
'Environment :: Console :: Curses',
'Intended Audience :: System Administrators',
'License :: OSI Approved :: Apache Software License',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Security',
'Topic :: System :: Installation/Setup',
'Topic :: System :: Networking',
'Topic :: System :: Systems Administration',
'Topic :: Utilities',
],
2015-05-10 07:07:56 -04:00
packages=find_packages(exclude=['docs', 'examples', 'tests', 'venv']),
2015-09-27 04:10:39 -04:00
include_package_data=True,
2014-11-22 08:19:19 -05:00
install_requires=install_requires,
extras_require={
2015-02-06 18:41:28 -05:00
'dev': dev_extras,
'docs': docs_extras,
2014-11-22 08:19:19 -05:00
'testing': testing_extras,
},
tests_require=install_requires,
2015-05-10 08:52:40 -04:00
# to test all packages run "python setup.py test -s
# {acme,letsencrypt_apache,letsencrypt_nginx}"
test_suite='letsencrypt',
entry_points={
'console_scripts': [
2015-05-10 08:25:29 -04:00
'letsencrypt = letsencrypt.cli:main',
'letsencrypt-renewer = letsencrypt.renewer:main',
2014-11-21 20:52:03 -05:00
],
2015-03-30 08:34:22 -04:00
'letsencrypt.plugins': [
'manual = letsencrypt.plugins.manual:Authenticator',
'null = letsencrypt.plugins.null:Installer',
2015-09-26 12:47:29 -04:00
'standalone = letsencrypt.plugins.standalone:Authenticator',
2015-10-04 05:11:37 -04:00
'webroot = letsencrypt.plugins.webroot:Authenticator',
2015-03-26 09:55:23 -04:00
],
},
)