setup.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import re
  5. import sys
  6. try:
  7. from setuptools import setup
  8. except ImportError:
  9. from distutils.core import setup
  10. if sys.argv[-1] == 'publish':
  11. os.system("python setup.py sdist upload")
  12. sys.exit()
  13. if sys.argv[-1] == 'speedups':
  14. try:
  15. __import__('pip')
  16. except ImportError:
  17. print('Pip required.')
  18. sys.exit(1)
  19. os.system('pip install ujson')
  20. sys.exit()
  21. if sys.argv[-1] == 'test':
  22. try:
  23. __import__('py')
  24. except ImportError:
  25. print('py.test required.')
  26. sys.exit(1)
  27. errors = os.system('py.test test_tablib.py')
  28. sys.exit(bool(errors))
  29. packages = [
  30. 'tablib', 'tablib.formats',
  31. 'tablib.packages',
  32. 'tablib.packages.dbfpy',
  33. 'tablib.packages.dbfpy3'
  34. ]
  35. install = [
  36. 'odfpy',
  37. 'openpyxl',
  38. 'unicodecsv',
  39. 'xlrd',
  40. 'xlwt',
  41. 'pyyaml',
  42. ]
  43. with open('tablib/core.py', 'r') as fd:
  44. version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]',
  45. fd.read(), re.MULTILINE).group(1)
  46. setup(
  47. name='tablib',
  48. version=version,
  49. description='Format agnostic tabular data library (XLS, JSON, YAML, CSV)',
  50. long_description=(open('README.rst').read() + '\n\n' +
  51. open('HISTORY.rst').read()),
  52. author='Kenneth Reitz',
  53. author_email='me@kennethreitz.org',
  54. url='http://python-tablib.org',
  55. packages=packages,
  56. license='MIT',
  57. classifiers=[
  58. 'Development Status :: 5 - Production/Stable',
  59. 'Intended Audience :: Developers',
  60. 'Natural Language :: English',
  61. 'License :: OSI Approved :: MIT License',
  62. 'Programming Language :: Python',
  63. 'Programming Language :: Python :: 2.7',
  64. 'Programming Language :: Python :: 3.3',
  65. 'Programming Language :: Python :: 3.4',
  66. 'Programming Language :: Python :: 3.5',
  67. 'Programming Language :: Python :: 3.6',
  68. ],
  69. tests_require=['pytest'],
  70. install_requires=install,
  71. extras_require={
  72. 'pandas': ['pandas'],
  73. },
  74. )