From e78525449210bd1c0b4e0f5e4c38aa7137e26be8 Mon Sep 17 00:00:00 2001 From: Kartik Ohri Date: Sat, 17 May 2025 18:41:44 +0530 Subject: [PATCH 1/2] Migrate to pyproject.toml and modernize packaging Replaced setup.py and requirements files with a pyproject.toml-based setup. --- .gitignore | 1 + README.md | 7 +++++++ pyproject.toml | 31 +++++++++++++++++++++++++++++++ requirements.txt | 2 +- setup.py | 16 ---------------- 5 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/.gitignore b/.gitignore index 876539c..c5e9821 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ __pycache__/ # Distribution / packaging .Python env/ +venv/ build/ develop-eggs/ dist/ diff --git a/README.md b/README.md index 040f37a..e93b277 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,13 @@ Note that v1.18.* will be the last line of releases compatible with Python 2. Please report issues at https://tickets.musicbrainz.org/browse/BU. +# Development +To develop BrainzUtils itself, install it locally in editable mode with development +dependencies by running: `pip install --group dev -e .`. + +> [!NOTE] +> Support for dependency groups (`--group`) was added to pip in 25.1.0. + ## Usage You can include this line into a `requirements.txt` file: diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..961660b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,31 @@ +[project] +name = "brainzutils" +description = "Python tools for MetaBrainz projects" +authors = [ + { name = "MetaBrainz Foundation", email = "support@metabrainz.org" } +] +dynamic = ["version"] +requires-python = ">=3.10" +dependencies = [ + "Flask>=3.1.0", + "Jinja2>=3.1.6", + "itsdangerous>=2.2.0", + "click>=8.1.8", + "Werkzeug>=3.1.3", + "Flask-DebugToolbar", + "sentry-sdk[flask]>=2.27.0", + "redis>=5.2.1", + "msgpack>=1.1.0", + "requests>=2.32.3", + "SQLAlchemy>=2.0.40", + "mbdata@git+https://github.com/metabrainz/mbdata.git@v30.0.0" +] + +[tool.setuptools] +packages = ["brainzutils"] + +[tool.setuptools_scm] + +[build-system] +requires = ["setuptools>=80", "setuptools-scm>=8"] +build-backend = "setuptools.build_meta" diff --git a/requirements.txt b/requirements.txt index 18facd0..42aa9d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,4 @@ redis>=5.2.1 msgpack>=1.1.0 requests>=2.32.3 SQLAlchemy>=2.0.40 -mbdata@git+https://github.com/acoustid/mbdata.git@v29.0.0 +mbdata@git+https://github.com/metabrainz/mbdata.git@v30.0.0 diff --git a/setup.py b/setup.py deleted file mode 100644 index c78fdae..0000000 --- a/setup.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python - -from setuptools import setup, find_packages - -setup( - name="brainzutils", - description="Python tools for MetaBrainz projects", - author="MetaBrainz Foundation", - author_email="support@metabrainz.org", - py_modules=["brainzutils"], - python_requires='>=3.10', - packages=find_packages(), - use_scm_version=True, - setup_requires=['setuptools_scm'], - install_requires=open("requirements.txt").read().splitlines(), -) From d6c154c99bb1df0fa9746acbc54ff89bc7fe428e Mon Sep 17 00:00:00 2001 From: Kartik Ohri Date: Sun, 18 May 2025 00:09:50 +0530 Subject: [PATCH 2/2] Downgrade mbdata until a new sample dump is available --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 42aa9d4..c7201a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,4 @@ redis>=5.2.1 msgpack>=1.1.0 requests>=2.32.3 SQLAlchemy>=2.0.40 -mbdata@git+https://github.com/metabrainz/mbdata.git@v30.0.0 +mbdata@git+https://github.com/metabrainz/mbdata.git@v29.0.0