modernize build system
All checks were successful
Test on Python 3.11 / build (push) Successful in 2m40s

This commit is contained in:
boyska 2025-02-28 20:55:49 +01:00
parent 932eabf4e0
commit 92a690bbef
3 changed files with 109 additions and 132 deletions

15
oldsetup.py Executable file
View file

@ -0,0 +1,15 @@
#!/usr/bin/env python3
import os
import sys
from setuptools import setup
from setuptools.command.test import test as TestCommand
setup(
packages=["larigira", "larigira.dbadmin", "larigira.filters"],
tests_require=["pytest-timeout==1.0", "py>=1.4.29", "pytest~=7.0"],
zip_safe=False,
include_package_data=True,
)

View file

@ -1,3 +1,97 @@
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "larigira"
version = "1.3.3"
dependencies = [
"Babel==2.17.0",
"Flask-Babel==4.0.*",
"Flask-WTF==1.2.*",
"Jinja2==3.1.4",
"cachelib==0.1",
"croniter==3.0.*",
"flask-bootstrap==3.3.*",
"flask==3.1.0",
"gevent==24.11.1",
"itsdangerous==2.2.0",
"lxml==5.3.1",
"python-mpd2",
"pytimeparse==1.1.8",
"pyxdg==0.26",
"requests==2.23.0",
"tinydb==3.12.2",
"werkzeug==3.1.3",
"wtforms==2.2.1",
]
requires-python=">=3.5"
readme = "README.rst"
authors = [
{name = "boyska", email = "piuttosto@logorroici.org"},
]
description = "A radio automation based on MPD"
license = { text = "AGPL-3.0-only" }
keywords = ["radio automation", "music"]
classifiers = [
"License :: OSI Approved :: GNU Affero General Public License v3",
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Multimedia :: Sound/Audio",
]
[project.optional-dependencies]
percentwait = ["mutagen==1.47.*"]
["project.entry-points.console_scripts"]
larigira = "larigira.main:main"
larigira-timegen = "larigira.timegen:main"
larigira-audiogen = "larigira.audiogen:main"
larigira-dbmanage = "larigira.event_manage:main"
["project.entry-points.larigira.audiogenerators"]
mpd = "larigira.audiogen_mpdrandom:generate_by_artist"
static = "larigira.audiogen_static:generate"
http = "larigira.audiogen_http:generate"
podcast = "larigira.audiogen_podcast:generate"
randomdir = "larigira.audiogen_randomdir:generate"
mostrecent = "larigira.audiogen_mostrecent:generate"
script = "larigira.audiogen_script:generate"
["project.entry-points.larigira.timegenerators"]
frequency = "larigira.timegen_every:FrequencyAlarm"
single = "larigira.timegen_every:SingleAlarm"
cron = "larigira.timegen_cron:CronAlarm"
["project.entry-points.larigira.timeform_create"]
single = "larigira.timeform_base:SingleAlarmForm"
frequency = "larigira.timeform_base:FrequencyAlarmForm"
cron = "larigira.timeform_cron:CronAlarmForm"
["project.entry-points.larigira.timeform_receive"]
single = "larigira.timeform_base:SingleAlarmForm.form_receive"
frequency = "larigira.timeform_base:FrequencyAlarmForm.form_receive"
cron = "larigira.timeform_cron:CronAlarmForm.form_receive"
["project.entry-points.larigira.audioform_create"]
static = "larigira.audioform_static:StaticAudioForm"
http = "larigira.audioform_http:AudioForm"
podcast = "larigira.audioform_podcast:AudioForm"
script = "larigira.audioform_script:ScriptAudioForm"
randomdir = "larigira.audioform_randomdir:Form"
mostrecent = "larigira.audioform_mostrecent:AudioForm"
["project.entry-points.larigira.audioform_receive"]
static = "larigira.audioform_static:staticaudio_receive"
http = "larigira.audioform_http:audio_receive"
podcast = "larigira.audioform_podcast:audio_receive"
script = "larigira.audioform_script:scriptaudio_receive"
randomdir = "larigira.audioform_randomdir:receive"
mostrecent = "larigira.audioform_mostrecent:audio_receive"
["project.entry-points.larigira.eventfilter"]
maxwait = "larigira.filters:maxwait"
percentwait = "larigira.filters:percentwait"

132
setup.py
View file

@ -1,132 +0,0 @@
#!/usr/bin/env python3
import os
import sys
from setuptools import setup
from setuptools.command.test import test as TestCommand
def read(fname):
with open(os.path.join(os.path.dirname(__file__), fname)) as buf:
return buf.read()
class PyTest(TestCommand):
user_options = [("pytest-args=", "a", "Arguments to pass to py.test")]
def initialize_options(self):
TestCommand.initialize_options(self)
self.pytest_args = []
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_args = []
self.test_suite = True
def run_tests(self):
# import here, cause outside the eggs aren't loaded
import pytest
errno = pytest.main(self.pytest_args)
sys.exit(errno)
setup(
name="larigira",
version="1.3.3",
description="A radio automation based on MPD",
long_description=read("README.rst"),
long_description_content_type="text/x-rst",
author="boyska",
author_email="piuttosto@logorroici.org",
license="AGPL",
packages=["larigira", "larigira.dbadmin", "larigira.filters"],
install_requires=[
"Babel==2.17.0",
"Flask-Babel==4.0.*",
"Flask-WTF==1.2.*",
"Jinja2==3.1.4",
"cachelib==0.1",
"croniter==3.0.*",
"flask-bootstrap==3.3.*",
"flask==3.1.0",
"gevent==24.11.1",
"itsdangerous==2.2.0",
"lxml==5.3.1",
"python-mpd2",
"pytimeparse==1.1.8",
"pyxdg==0.26",
"requests==2.23.0",
"tinydb==3.12.2",
"werkzeug==3.1.3",
"wtforms==2.2.1",
],
tests_require=["pytest-timeout==1.0", "py>=1.4.29", "pytest~=7.0"],
python_requires=">=3.5",
extras_require={"percentwait": ["mutagen"]},
cmdclass={"test": PyTest},
zip_safe=False,
include_package_data=True,
entry_points={
"console_scripts": [
"larigira=larigira.main:main",
"larigira-timegen=larigira.timegen:main",
"larigira-audiogen=larigira.audiogen:main",
"larigira-dbmanage=larigira.event_manage:main",
],
"larigira.audiogenerators": [
"mpd = larigira.audiogen_mpdrandom:generate_by_artist",
"static = larigira.audiogen_static:generate",
"http = larigira.audiogen_http:generate",
"podcast = larigira.audiogen_podcast:generate",
"randomdir = larigira.audiogen_randomdir:generate",
"mostrecent = larigira.audiogen_mostrecent:generate",
"script = larigira.audiogen_script:generate",
],
"larigira.timegenerators": [
"frequency = larigira.timegen_every:FrequencyAlarm",
"single = larigira.timegen_every:SingleAlarm",
"cron = larigira.timegen_cron:CronAlarm",
],
"larigira.timeform_create": [
"single = larigira.timeform_base:SingleAlarmForm",
"frequency = larigira.timeform_base:FrequencyAlarmForm",
"cron = larigira.timeform_cron:CronAlarmForm",
],
"larigira.timeform_receive": [
"single = larigira.timeform_base:SingleAlarmForm.form_receive",
"frequency = larigira.timeform_base:FrequencyAlarmForm.form_receive",
"cron = larigira.timeform_cron:CronAlarmForm.form_receive",
],
"larigira.audioform_create": [
"static = larigira.audioform_static:StaticAudioForm",
"http = larigira.audioform_http:AudioForm",
"podcast = larigira.audioform_podcast:AudioForm",
"script = larigira.audioform_script:ScriptAudioForm",
"randomdir = larigira.audioform_randomdir:Form",
"mostrecent = larigira.audioform_mostrecent:AudioForm",
],
"larigira.audioform_receive": [
"static = larigira.audioform_static:staticaudio_receive",
"http = larigira.audioform_http:audio_receive",
"podcast = larigira.audioform_podcast:audio_receive",
"script = larigira.audioform_script:scriptaudio_receive",
"randomdir = larigira.audioform_randomdir:receive",
"mostrecent = larigira.audioform_mostrecent:audio_receive",
],
"larigira.eventfilter": [
"maxwait = larigira.filters:maxwait",
"percentwait = larigira.filters:percentwait",
],
},
classifiers=[
"License :: OSI Approved :: GNU Affero General Public License v3",
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Multimedia :: Sound/Audio",
],
)