setup.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import re
  4. from setuptools import setup, find_packages
  5. from codecs import open
  6. from os import path
  7. basedir = path.abspath(path.dirname(__file__))
  8. # Get the long description from the README file
  9. with open(path.join(basedir, 'README.md'), encoding='utf-8') as f:
  10. long_description = f.read()
  11. # locate our version number
  12. def read_version_py(file_name):
  13. try:
  14. version_string_line = open(file_name, "rt").read()
  15. except EnvironmentError:
  16. return None
  17. else:
  18. version_regex = r"^version_str = ['\"]([^'\"]*)['\"]"
  19. mo = re.search(version_regex, version_string_line, re.M)
  20. if mo:
  21. return mo.group(1)
  22. VERSION_PY_FILENAME = 'kalliope/_version.py'
  23. version = read_version_py(VERSION_PY_FILENAME)
  24. setup(
  25. name='kalliope',
  26. version=version,
  27. description='Kalliope is a modular always-on voice controlled personal assistant designed for home automation.',
  28. long_description=long_description,
  29. url='https://github.com/kalliope-project/kalliope',
  30. author='The dream team of Kalliope-project',
  31. author_email='kalliope-project@googlegroups.com',
  32. license='MIT',
  33. # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
  34. classifiers=[
  35. 'Development Status :: 3 - Alpha',
  36. 'Environment :: Console',
  37. 'Intended Audience :: Developers',
  38. 'License :: OSI Approved :: MIT License',
  39. 'Operating System :: POSIX :: Linux',
  40. 'Programming Language :: Python :: 2',
  41. 'Programming Language :: Python :: 2.7',
  42. 'Topic :: Home Automation',
  43. 'Topic :: Multimedia :: Sound/Audio :: Speech',
  44. 'Topic :: Multimedia :: Sound/Audio :: Sound Synthesis',
  45. 'Topic :: Scientific/Engineering :: Artificial Intelligence'
  46. ],
  47. keywords='assistant bot TTS STT',
  48. # included packages
  49. packages=find_packages(exclude=['contrib', 'docs', 'tests']),
  50. # required libs
  51. install_requires=[
  52. 'six==1.10.0',
  53. 'SpeechRecognition>=3.5.0',
  54. 'markupsafe==0.23',
  55. 'pyaudio==0.2.9',
  56. 'ansible==2.2.0.0',
  57. 'python2-pythondialog==3.4.0',
  58. 'jinja2==2.8',
  59. 'cffi==1.9.1',
  60. 'ipaddress==1.0.17',
  61. 'flask==0.11.1',
  62. 'Flask-Restful==0.3.5',
  63. 'requests==2.12.4',
  64. 'httpretty==0.8.14',
  65. 'mock==2.0.0',
  66. 'Flask-Testing==0.6.1',
  67. 'apscheduler==3.3.0',
  68. 'GitPython==2.1.1'
  69. ],
  70. # additional files
  71. package_data={
  72. 'kalliope': [
  73. 'brain.yml',
  74. 'settings.yml',
  75. 'trigger/snowboy/armv7l/_snowboydetect.so',
  76. 'trigger/snowboy/x86_64/_snowboydetect.so',
  77. 'trigger/snowboy/resources/*',
  78. ],
  79. },
  80. # entry point script
  81. entry_points={
  82. 'console_scripts': [
  83. 'kalliope=kalliope:main',
  84. ],
  85. },
  86. )