setup.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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. "lxml==4.5.1",
  48. "requests==2.23.0",
  49. ],
  50. tests_require=["pytest-timeout==1.0", "py>=1.4.29", "pytest==3.0"],
  51. python_requires=">=3.5",
  52. extras_require={"percentwait": ["mutagen"]},
  53. cmdclass={"test": PyTest},
  54. zip_safe=False,
  55. include_package_data=True,
  56. entry_points={
  57. "console_scripts": [
  58. "larigira=larigira.main:main",
  59. "larigira-timegen=larigira.timegen:main",
  60. "larigira-audiogen=larigira.audiogen:main",
  61. "larigira-dbmanage=larigira.event_manage:main",
  62. ],
  63. "larigira.audiogenerators": [
  64. "mpd = larigira.audiogen_mpdrandom:generate_by_artist",
  65. "static = larigira.audiogen_static:generate",
  66. "http = larigira.audiogen_http:generate",
  67. "podcast = larigira.audiogen_podcast:generate",
  68. "randomdir = larigira.audiogen_randomdir:generate",
  69. "mostrecent = larigira.audiogen_mostrecent:generate",
  70. "script = larigira.audiogen_script:generate",
  71. ],
  72. "larigira.timegenerators": [
  73. "frequency = larigira.timegen_every:FrequencyAlarm",
  74. "single = larigira.timegen_every:SingleAlarm",
  75. "cron = larigira.timegen_cron:CronAlarm",
  76. ],
  77. "larigira.timeform_create": [
  78. "single = larigira.timeform_base:SingleAlarmForm",
  79. "frequency = larigira.timeform_base:FrequencyAlarmForm",
  80. "cron = larigira.timeform_cron:CronAlarmForm",
  81. ],
  82. "larigira.timeform_receive": [
  83. "single = larigira.timeform_base:singlealarm_receive",
  84. "frequency = larigira.timeform_base:frequencyalarm_receive",
  85. "cron = larigira.timeform_cron:cronalarm_receive",
  86. ],
  87. "larigira.audioform_create": [
  88. "static = larigira.audioform_static:StaticAudioForm",
  89. "http = larigira.audioform_http:AudioForm",
  90. "podcast = larigira.audioform_podcast:AudioForm",
  91. "script = larigira.audioform_script:ScriptAudioForm",
  92. "randomdir = larigira.audioform_randomdir:Form",
  93. "mostrecent = larigira.audioform_mostrecent:AudioForm",
  94. ],
  95. "larigira.audioform_receive": [
  96. "static = larigira.audioform_static:staticaudio_receive",
  97. "http = larigira.audioform_http:audio_receive",
  98. "podcast = larigira.audioform_podcast:audio_receive",
  99. "script = larigira.audioform_script:scriptaudio_receive",
  100. "randomdir = larigira.audioform_randomdir:receive",
  101. "mostrecent = larigira.audioform_mostrecent:audio_receive",
  102. ],
  103. "larigira.eventfilter": [
  104. "maxwait = larigira.filters:maxwait",
  105. "percentwait = larigira.filters:percentwait",
  106. ],
  107. },
  108. classifiers=[
  109. "License :: OSI Approved :: GNU Affero General Public License v3",
  110. "Development Status :: 5 - Production/Stable",
  111. "Programming Language :: Python :: 3.4",
  112. "Programming Language :: Python :: 3.5",
  113. "Programming Language :: Python :: 3.6",
  114. "Programming Language :: Python :: 3.7",
  115. "Topic :: Multimedia :: Sound/Audio",
  116. ],
  117. )