[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "uj-mastering-master" version = "0.1.0" requires-python = ">=3.10" dependencies = [ "librosa", "numpy", "matplotlib", "mutagen", "pyloudnorm", "PyQt5>=5.15.10", # 5.15.2 is the only pyqt5-qt5 release with a Windows wheel; later # versions are Linux/macOS only. "PyQt5-Qt5==5.15.2 ; sys_platform == 'win32'", "pyqtgraph>=0.14.0", ] license = {text = "Apache-2.0"} [project.optional-dependencies] # Web front end (the `feature/web-ui` branch). Installed with: # uv sync --extra web # Deliberately separate from the desktop path: a server install of the web UI # needs no Qt/wheel stack, and a desktop install needs no ASGI stack. web = [ "fastapi>=0.110", "uvicorn[standard]>=0.27", "python-multipart>=0.0.9", # multipart upload parsing for FastAPI ] [project.scripts] ujm = "main:main" ujm-web = "webapp:main" [tool.setuptools] py-modules = [ "main", "analysis_results_manager", "audio_visualization_widget", "master_core", "metrics", "plotspec", "font_manager", "plot_control_widget", "ref_line_widget", "logger_setup", "setup_fonts", # web front end "webapp", "web_session", "metrics_json", ] [tool.setuptools.package-data] # Vendored browser assets: uPlot (curves), no CDN at runtime. `webapp.py` # resolves them relative to `__file__`, so on an installed wheel they must sit # next to the modules — see `[tool.setuptools.data-files]` for the sdist path. "*" = ["static/*"] [tool.setuptools.data-files] # The web assets live next to the *modules*, not in site-packages/static, so a # wheel install needs them copied into the package directory. `MANIFEST.in` # keeps them in the sdist; running from a checkout (the documented path) needs # neither. "lib/python-static" = ["static/*"]