From c8beac47cfe5e55b23e3e8fe6777f84324b637aa Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Wed, 4 Feb 2026 20:26:22 +0300 Subject: [PATCH] Add pyproject.toml for versioning and packaging --- media_server/main.py | 3 ++- pyproject.toml | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 pyproject.toml diff --git a/media_server/main.py b/media_server/main.py index 1cecaa6..bba298a 100644 --- a/media_server/main.py +++ b/media_server/main.py @@ -9,6 +9,7 @@ import uvicorn from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware +from . import __version__ from .config import settings, generate_default_config, get_config_dir from .routes import health_router, media_router, scripts_router from .services import get_media_controller @@ -49,7 +50,7 @@ def create_app() -> FastAPI: app = FastAPI( title="Media Server", description="REST API for controlling system media playback", - version="1.0.0", + version=__version__, lifespan=lifespan, ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..364dd4a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,61 @@ +[project] +name = "media-server" +version = "1.0.0" +description = "REST API server for controlling system-wide media playback" +readme = "README.md" +license = { text = "MIT" } +requires-python = ">=3.10" +authors = [ + { name = "Alexei Dolgolyov" } +] +keywords = ["media", "player", "api", "home-assistant", "fastapi"] +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Framework :: FastAPI", + "Intended Audience :: End Users/Desktop", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Multimedia :: Sound/Audio", + "Topic :: Home Automation", +] + +dependencies = [ + "fastapi>=0.109.0", + "uvicorn[standard]>=0.27.0", + "pydantic>=2.0", + "pydantic-settings>=2.0", + "pyyaml>=6.0", +] + +[project.optional-dependencies] +windows = [ + "winsdk>=1.0.0b10", + "pywin32>=306", + "comtypes>=1.2.0", + "pycaw>=20230407", +] +dev = [ + "pytest>=7.0", + "pytest-asyncio>=0.21", + "httpx>=0.24", +] + +[project.urls] +Homepage = "https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server" +Repository = "https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server" +Issues = "https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server/issues" + +[project.scripts] +media-server = "media_server.main:main" + +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[tool.setuptools.packages.find] +include = ["media_server*"]