1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-22 08:56:17 +00:00

Rationalizing/modernizing building stuff

Metadata in `setup.cfg` rather than `pyproject.toml` as I'm a bit confused
about `setuptools` support for PEP-621.
Test stuff still in `setup.py`, this needs updating and I'm not satisfied with
the way they are loaded/discovered.
This commit is contained in:
Alban Féron 2021-11-14 18:08:22 +01:00
parent 64475a8dfa
commit 8ab9f444b7
No known key found for this signature in database
GPG Key ID: 8CE0313646D16165
5 changed files with 95 additions and 75 deletions

View File

@ -1,11 +1,13 @@
import supysonic
# -- Project information -----------------------------------------------------
project = "Supysonic"
author = "Alban Féron"
project = supysonic.NAME
author = supysonic.AUTHOR
copyright = "2013-2021, " + author
version = "0.6.3"
release = "0.6.3"
version = supysonic.VERSION
release = supysonic.VERSION
# -- General configuration ---------------------------------------------------
@ -26,7 +28,7 @@ language = None
html_theme = "alabaster"
html_theme_options = {
"description": "A Python implementation of the Subsonic server API",
"description": supysonic.DESCRIPTION,
"github_user": "spl0k",
"github_repo": "supysonic",
}

3
pyproject.toml Normal file
View File

@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools>=51.0.0", "wheel"]
build-backend = "setuptools.build_meta"

74
setup.cfg Normal file
View File

@ -0,0 +1,74 @@
[metadata]
name = Supysonic
version = attr: supysonic.VERSION
url = https://supysonic.readthedocs.io
download_url = https://github.com/spl0k/supysonic
author = Alban Féron
author_email = alban.feron@gmail.com
license = GNU AGPLv3
license_files = LICENSE
description = Python implementation of the Subsonic server API
long_description =
Supysonic is a Python implementation of the [Subsonic][] server API.
Current supported features are:
* browsing (by folders or tags)
* streaming of various audio file formats
* transcoding
* user or random playlists
* cover art
* starred tracks/albums and ratings
* [Last.FM][lastfm] scrobbling
* Jukebox mode
Supysonic currently targets the version 1.10.2 of the Subsonic API. For more
details, go check the [API implementation status][docs-api].
[subsonic]: http://www.subsonic.org/
[lastfm]: https://www.last.fm/
[docs-api]: https://supysonic.readthedocs.io/en/latest/api.html
long_description_content_type = text/markdown
keywords = subsonic, music, server
classifiers =
Development Status :: 3 - Alpha
Environment :: Console
Environment :: Web Environment
Framework :: Flask
Intended Audience :: End Users/Desktop
Intended Audience :: System Administrators
License :: OSI Approved :: GNU Affero General Public License v3
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Topic :: Multimedia :: Sound/Audio
[options]
python_requires = >=3.5,<3.10
install_requires =
click
flask >=0.11
pony >=0.7.6
Pillow
requests >=1.0.0
mediafile
watchdog >=0.8.0
zipstream-ng >=1.1.0, <2.0.0
packages = find:
include_package_data = true
zip_safe = false
[options.packages.find]
include = supysonic*
[options.entry_points]
console_scripts =
supysonic-cli = supysonic.cli:main
supysonic-daemon = supysonic.daemon:main
supysonic-server = supysonic.server:mai

View File

@ -1,64 +1,15 @@
# This file is part of Supysonic.
# Supysonic is a Python implementation of the Subsonic server API.
#
# Copyright (C) 2013-2019 Alban 'spl0k' Féron
# Copyright (C) 2013-2021 Alban 'spl0k' Féron
# 2017 Óscar García Amor
#
# Distributed under terms of the GNU AGPLv3 license.
import supysonic as project
from setuptools import setup
from setuptools import find_packages
reqs = [
"click",
"flask>=0.11",
"pony>=0.7.6",
"Pillow",
"requests>=1.0.0",
"mediafile",
"watchdog>=0.8.0",
"zipstream-ng>=1.1.0,<2.0.0",
]
setup(
name=project.NAME,
version=project.VERSION,
description=project.DESCRIPTION,
keywords=project.KEYWORDS,
long_description=project.LONG_DESCRIPTION,
author=project.AUTHOR_NAME,
author_email=project.AUTHOR_EMAIL,
url=project.URL,
license=project.LICENSE,
packages=find_packages(exclude=["tests*"]),
install_requires=reqs,
entry_points={
"console_scripts": [
"supysonic-cli=supysonic.cli:main",
"supysonic-daemon=supysonic.daemon:main",
"supysonic-server=supysonic.server:main"
]
},
zip_safe=False,
include_package_data=True,
test_suite="tests.suite",
tests_require=["lxml"],
classifiers=[
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Environment :: Web Environment",
"Framework :: Flask",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Topic :: Multimedia :: Sound/Audio",
],
)
if __name__ == "__main__":
setup(
test_suite="tests.suite",
tests_require=["lxml"],
)

View File

@ -6,21 +6,11 @@
#
# Distributed under terms of the GNU AGPLv3 license.
NAME = "supysonic"
NAME = "Supysonic"
VERSION = "0.6.3"
DESCRIPTION = "Python implementation of the Subsonic server API."
KEYWORDS = "subsonic music api"
AUTHOR_NAME = "Alban Féron"
DESCRIPTION = "Python implementation of the Subsonic server API"
AUTHOR = "Alban Féron"
AUTHOR_EMAIL = "alban.feron@gmail.com"
URL = "https://github.com/spl0k/supysonic"
URL = "https://supysonic.readthedocs.io/"
DOWNLOAD_URL = "https://github.com/spl0k/supysonic"
LICENSE = "GNU AGPLv3"
LONG_DESCRIPTION = """Supysonic is a Python implementation of the Subsonic server API.
Current supported features are:
* browsing (by folders or tags)
* streaming of various audio file formats
* transcoding
* user or random playlists
* cover art (cover.jpg files in the same folder as music files)
* starred tracks/albums and ratings
* Last.FM scrobbling
* Jukebox mode"""