from setuptools import setup, Extension
except ImportError:
from distutils.core import setup, Extension
+ has_setuptools = False
+else:
+ has_setuptools = True
from distutils.core import Distribution
import os
import sys
-dulwich_version_string = '0.18.3'
+dulwich_version_string = '0.19.6'
include_dirs = []
# Windows MSVC support
['/usr/bin/xcodebuild', '-version'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE, env={})
out, err = p.communicate()
- for l in out.splitlines():
- l = l.decode("utf8")
+ for line in out.splitlines():
+ line = line.decode("utf8")
# Also parse only first digit, because 3.2.1 can't be parsed nicely
- if l.startswith('Xcode') and int(l.split()[1].split('.')[0]) >= 4:
+ if (line.startswith('Xcode') and
+ int(line.split()[1].split('.')[0]) >= 4):
os.environ['ARCHFLAGS'] = ''
tests_require = ['fastimport']
tests_require.extend([
'gevent', 'geventhttpclient', 'mock', 'setuptools>=17.1'])
+
ext_modules = [
Extension('dulwich._objects', ['dulwich/_objects.c'],
include_dirs=include_dirs),
include_dirs=include_dirs),
]
+setup_kwargs = {}
+
+if has_setuptools:
+ setup_kwargs['extras_require'] = {
+ 'fastimport': ['fastimport'],
+ 'https': ['urllib3[secure]>=1.21'],
+ }
+ setup_kwargs['install_requires'] = ['urllib3>=1.21', 'certifi']
+ setup_kwargs['include_package_data'] = True
+ setup_kwargs['test_suite'] = 'dulwich.tests.test_suite'
+ setup_kwargs['tests_require'] = tests_require
-if sys.platform == 'win32':
- # Win32 setup breaks with non-ascii characters.
- author = "Jelmer Vernooij"
-else:
- author = "Jelmer Vernooij"
setup(name='dulwich',
- description='Python Git Library',
- keywords='git',
version=dulwich_version_string,
- url='https://www.dulwich.io/',
license='Apachev2 or later or GPLv2',
- author_email='jelmer@jelmer.uk',
- long_description="""
- Python implementation of the Git file formats and protocols,
- without the need to have git installed.
-
- All functionality is available in pure Python. Optional
- C extensions can be built for improved performance.
-
- The project is named after the part of London that Mr. and Mrs. Git live
- in in the particular Monty Python sketch.
- """,
packages=['dulwich', 'dulwich.tests', 'dulwich.tests.compat',
'dulwich.contrib'],
package_data={'': ['../docs/tutorial/*.txt']},
scripts=['bin/dulwich', 'bin/dul-receive-pack', 'bin/dul-upload-pack'],
- classifiers=[
- 'Development Status :: 4 - Beta',
- 'License :: OSI Approved :: Apache Software License',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3.3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: Implementation :: CPython',
- 'Programming Language :: Python :: Implementation :: PyPy',
- 'Operating System :: POSIX',
- 'Operating System :: Microsoft :: Windows',
- 'Topic :: Software Development :: Version Control',
- ],
ext_modules=ext_modules,
- test_suite='dulwich.tests.test_suite',
- tests_require=tests_require,
distclass=DulwichDistribution,
- include_package_data=True,
+ **setup_kwargs
)