setup.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # -*- encoding: utf-8 *-*
  2. #!/usr/bin/env python
  3. import os
  4. import sys
  5. from glob import glob
  6. from setuptools import setup, Extension
  7. from setuptools.command.sdist import sdist
  8. hashindex_sources = ['darc/hashindex.pyx', 'darc/_hashindex.c']
  9. try:
  10. from Cython.Distutils import build_ext
  11. import Cython.Compiler.Main as cython_compiler
  12. class Sdist(sdist):
  13. def __init__(self, *args, **kwargs):
  14. for src in glob('darc/*.pyx'):
  15. print 'src', src
  16. cython_compiler.compile(glob('darc/*.pyx'),
  17. cython_compiler.default_options)
  18. sdist.__init__(self, *args, **kwargs)
  19. def run(self):
  20. sdist.run(self)
  21. self.filelist.append('darc/hashindex.c', 'darc/hashindex.h')
  22. except ImportError:
  23. hashindex_sources[0] = hashindex_sources[0].replace('.pyx', '.c')
  24. from setuptools.command.build_ext import build_ext
  25. Sdist = sdist
  26. if not os.path.exists('darc/hashindex.c'):
  27. raise ImportError('The GIT version of darc needs Cython. Install Cython or use a released version')
  28. dependencies = ['pycrypto', 'msgpack-python', 'pbkdf2.py', 'xattr', 'paramiko']
  29. if sys.version_info < (2, 7):
  30. dependencies.append('argparse')
  31. setup(name='darc',
  32. version='0.1',
  33. author='Jonas Borgström',
  34. author_email='jonas@borgstrom.se',
  35. url='http://github.com/jborg/darc/',
  36. packages=['darc'],
  37. cmdclass = {'build_ext': build_ext, 'sdist': Sdist},
  38. ext_modules=[
  39. Extension('darc._speedups', ['darc/_speedups.c']),
  40. Extension('darc.hashindex', hashindex_sources)],
  41. install_requires=dependencies,
  42. entry_points = {
  43. 'console_scripts': [
  44. 'darc = darc.archiver:main',
  45. ]
  46. })