setup.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import os
  2. import sys
  3. from setuptools import setup
  4. from setuptools.command.test import test as TestCommand
  5. def read(fname):
  6. with open(os.path.join(os.path.dirname(__file__), fname)) as buf:
  7. return buf.read()
  8. class PyTest(TestCommand):
  9. user_options = [("pytest-args=", "a", "Arguments to pass to py.test")]
  10. def initialize_options(self):
  11. TestCommand.initialize_options(self)
  12. self.pytest_args = []
  13. def finalize_options(self):
  14. TestCommand.finalize_options(self)
  15. self.test_args = []
  16. self.test_suite = True
  17. def run_tests(self):
  18. # import here, cause outside the eggs aren't loaded
  19. import pytest
  20. errno = pytest.main(self.pytest_args)
  21. sys.exit(errno)
  22. setup(
  23. name="larigira",
  24. version="1.3.3",
  25. description="A radio automation based on MPD",
  26. long_description=read("README.rst"),
  27. long_description_content_type="text/x-rst",
  28. author="boyska",
  29. author_email="piuttosto@logorroici.org",
  30. license="AGPL",
  31. packages=["larigira", "larigira.dbadmin", "larigira.filters"],
  32. install_requires=[
  33. "Babel==2.6.0",
  34. "Flask-Babel==1.0.0",
  35. "pyxdg==0.26",
  36. "gevent==1.4.0",
  37. "flask-bootstrap",
  38. "python-mpd2",
  39. "wtforms==2.2.1",
  40. "Flask-WTF==0.14.2",
  41. "flask==0.11",
  42. "pytimeparse==1.1.8",
  43. "croniter==0.3.29",
  44. "werkzeug==0.14.1",
  45. "cachelib==0.1",
  46. "tinydb==3.12.2",
  47. ],
  48. tests_require=["pytest-timeout==1.0", "py>=1.4.29", "pytest==3.0"],
  49. python_requires=">=3.5",
  50. extras_require={"percentwait": ["mutagen"]},
  51. cmdclass={"test": PyTest},
  52. zip_safe=False,
  53. include_package_data=True,
  54. entry_points={
  55. "console_scripts": [
  56. "larigira=larigira.larigira:main",
  57. "larigira-timegen=larigira.timegen:main",
  58. "larigira-audiogen=larigira.audiogen:main",
  59. "larigira-dbmanage=larigira.event_manage:main",
  60. ],
  61. "larigira.audiogenerators": [
  62. "mpd = larigira.audiogen_mpdrandom:generate_by_artist",
  63. "static = larigira.audiogen_static:generate",
  64. "http = larigira.audiogen_http:generate",
  65. "randomdir = larigira.audiogen_randomdir:generate",
  66. "mostrecent = larigira.audiogen_mostrecent:generate",
  67. "script = larigira.audiogen_script:generate",
  68. ],
  69. "larigira.timegenerators": [
  70. "frequency = larigira.timegen_every:FrequencyAlarm",
  71. "single = larigira.timegen_every:SingleAlarm",
  72. "cron = larigira.timegen_cron:CronAlarm",
  73. ],
  74. "larigira.timeform_create": [
  75. "single = larigira.timeform_base:SingleAlarmForm",
  76. "frequency = larigira.timeform_base:FrequencyAlarmForm",
  77. "cron = larigira.timeform_cron:CronAlarmForm",
  78. ],
  79. "larigira.timeform_receive": [
  80. "single = larigira.timeform_base:singlealarm_receive",
  81. "frequency = larigira.timeform_base:frequencyalarm_receive",
  82. "cron = larigira.timeform_cron:cronalarm_receive",
  83. ],
  84. "larigira.audioform_create": [
  85. "static = larigira.audioform_static:StaticAudioForm",
  86. "http = larigira.audioform_http:AudioForm",
  87. "script = larigira.audioform_script:ScriptAudioForm",
  88. "randomdir = larigira.audioform_randomdir:Form",
  89. "mostrecent = larigira.audioform_mostrecent:AudioForm",
  90. ],
  91. "larigira.audioform_receive": [
  92. "static = larigira.audioform_static:staticaudio_receive",
  93. "http = larigira.audioform_http:audio_receive",
  94. "script = larigira.audioform_script:scriptaudio_receive",
  95. "randomdir = larigira.audioform_randomdir:receive",
  96. "mostrecent = larigira.audioform_mostrecent:audio_receive",
  97. ],
  98. "larigira.eventfilter": [
  99. "maxwait = larigira.filters:maxwait",
  100. "percentwait = larigira.filters:percentwait",
  101. ],
  102. },
  103. classifiers=[
  104. "License :: OSI Approved :: GNU Affero General Public License v3",
  105. "Development Status :: 5 - Production/Stable",
  106. "Programming Language :: Python :: 3.4",
  107. "Programming Language :: Python :: 3.5",
  108. "Programming Language :: Python :: 3.6",
  109. "Programming Language :: Python :: 3.7",
  110. "Topic :: Multimedia :: Sound/Audio",
  111. ],
  112. )