From aa6a5389921c88ad96cc53841cd1874cb07f9605 Mon Sep 17 00:00:00 2001 From: Branch Vincent Date: Mon, 12 Aug 2024 19:42:32 -0700 Subject: [PATCH] migrate to pyproject.toml --- .github/workflows/release.yml | 4 +- .gitignore | 1 + MANIFEST.in | 1 - pyproject.toml | 58 ++++++++++++++++++++++++++++ setup.py | 73 ----------------------------------- 5 files changed, 61 insertions(+), 76 deletions(-) delete mode 100644 MANIFEST.in create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 70ea3402e..274be72c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,12 +21,12 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install setuptools wheel twine importlib-metadata==7.2.1 + pip install build setuptools wheel twine importlib-metadata==7.2.1 - name: Build and publish env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} run: | - python setup.py sdist bdist_wheel + python -m build twine upload dist/* diff --git a/.gitignore b/.gitignore index a6a3dbfed..ae668b707 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ aider.code-workspace .aider* aider_chat.egg-info/ build +dist/ Gemfile.lock _site .jekyll-cache/ diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index f9bd1455b..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -include requirements.txt diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..9b9e9baa6 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,58 @@ +[project] +name = "aider-chat" +description = "Aider is AI pair programming in your terminal" +readme = "README.md" +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python", + "Topic :: Software Development", +] +requires-python = ">=3.9,<3.13" +dynamic = ["dependencies", "optional-dependencies", "version"] + +[project.urls] +Homepage = "https://github.com/paul-gauthier/aider" + +[project.scripts] +aider = "aider.main:main" + +[tool.setuptools.dynamic] +version = { attr = "aider.__init__.__version__" } +dependencies = { file = "requirements.txt" } + +[tool.setuptools.dynamic.optional-dependencies] +dev = { file = "requirements/requirements-dev.txt" } +help = { file = "requirements/requirements-help.txt" } +browser = { file = "requirements/requirements-browser.txt" } +playwright = { file = "requirements/requirements-playwright.txt" } + +[tool.setuptools.packages.find] +include = ["aider*", "aider.website"] + +[tool.setuptools.package-data] +"aider" = ["queries/*.scm"] +"aider.website" = ["**/*.md"] + +[tool.setuptools.exclude-package-data] +"aider.website" = [ + "examples/**", + "_posts/**", + "HISTORY.md", + "docs/benchmarks*md", + "docs/ctags.md", + "docs/unified-diffs.md", + "docs/leaderboards/index.md", + "assets/**", +] + +[build-system] +requires = ["setuptools>=68"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py deleted file mode 100644 index 10a0b8c76..000000000 --- a/setup.py +++ /dev/null @@ -1,73 +0,0 @@ -import re -from pathlib import Path - -from setuptools import find_packages, setup - -from aider import __version__ -from aider.help_pats import exclude_website_pats - - -def get_requirements(suffix=""): - if suffix: - fname = "requirements-" + suffix + ".txt" - fname = Path("requirements") / fname - else: - fname = Path("requirements.txt") - - requirements = fname.read_text().splitlines() - - return requirements - - -requirements = get_requirements() - -# README -with open("README.md", "r", encoding="utf-8") as f: - long_description = f.read() - long_description = re.sub(r"\n!\[.*\]\(.*\)", "", long_description) - # long_description = re.sub(r"\n- \[.*\]\(.*\)", "", long_description) - -# Discover packages, plus the website -packages = find_packages(exclude=["benchmark", "tests"]) -packages += ["aider.website"] - -print("Packages:", packages) - -extras = "dev help browser playwright".split() - -setup( - name="aider-chat", - version=__version__, - packages=packages, - include_package_data=True, - package_data={ - "aider": ["queries/*.scm"], - "aider.website": ["**/*.md"], - }, - exclude_package_data={"aider.website": exclude_website_pats}, - install_requires=requirements, - extras_require={extra: get_requirements(extra) for extra in extras}, - python_requires=">=3.9,<3.13", - entry_points={ - "console_scripts": [ - "aider = aider.main:main", - ], - }, - description="Aider is AI pair programming in your terminal", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/paul-gauthier/aider", - classifiers=[ - "Development Status :: 4 - Beta", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python", - "Topic :: Software Development", - ], -)