Migrate to pyproject.toml (#1131)
Migrate away from setuptools to pyproject.toml
diff --git a/CHANGELOG b/CHANGELOG.md
similarity index 99%
rename from CHANGELOG
rename to CHANGELOG.md
index 70b3c9b..eb5df20 100644
--- a/CHANGELOG
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@
- The verification module has been removed. NOTE: this changes the public APIs
by removing the "verify" parameter.
- Changed FORCE_MULTILINE_DICT to override SPLIT_ALL_TOP_LEVEL_COMMA_SEPARATED_VALUES.
+- Adopt pyproject.toml (PEP 517) for build system
## [0.40.1] 2023-06-20
### Fixed
diff --git a/MANIFEST.in b/MANIFEST.in
index c88aede..26bd40e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,4 @@
-include HACKING.md LICENSE AUTHORS CHANGELOG CONTRIBUTING.md CONTRIBUTORS
+include HACKING.md LICENSE AUTHORS CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS
include .coveragerc .editorconfig .flake8 plugins/README.md
include plugins/vim/autoload/yapf.vim plugins/vim/plugin/yapf.vim pylintrc
include .style.yapf tox.ini .travis.yml .vimrc
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..afc9ccc
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,61 @@
+[build-system]
+requires = ["setuptools>=58.5.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "yapf"
+description = "A formatter for Python code"
+authors = [{ name = "Google Inc." }]
+maintainers = [{ name = "Bill Wendling", email = "morbo@google.com" }]
+license = { file = "LICENSE" }
+readme = "README.md"
+requires-python = ">=3.7"
+version = "0.40.1"
+classifiers = [
+ 'Development Status :: 4 - Beta',
+ 'Environment :: Console',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Apache Software License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 3 :: Only',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
+ 'Programming Language :: Python :: 3.11',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'Topic :: Software Development :: Quality Assurance',
+]
+dependencies = [
+ 'importlib-metadata>=6.6.0',
+ 'platformdirs>=3.5.1',
+ 'tomli>=2.0.1',
+]
+
+[project.scripts]
+yapf = "yapf:run_main"
+yapf-diff = "yapf_third_party.yapf_diff.yapf_diff:main"
+
+[project.urls]
+url = 'https://github.com/google/yapf'
+changelog = "https://github.com/google/yapf/blob/main/CHANGELOG.md"
+
+[tool.distutils.bdist_wheel]
+python_tag = "py3"
+
+[tool.setuptools]
+include-package-data = true
+package-dir = { yapf_third_party = 'third_party/yapf_third_party' }
+
+[tool.setuptools.packages.find]
+where = [".", 'third_party']
+include = ["yapf*", 'yapftests*']
+
+[tool.setuptools.package-data]
+yapf_third_party = [
+ 'yapf_diff/LICENSE',
+ '_ylib2to3/Grammar.txt',
+ '_ylib2to3/PatternGrammar.txt',
+ '_ylib2to3/LICENSE',
+]
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 605b78a..0000000
--- a/setup.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 Google Inc. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import codecs
-import sys
-import unittest
-
-from setuptools import Command
-from setuptools import find_packages
-from setuptools import setup
-
-
-class RunTests(Command):
- user_options = []
-
- def initialize_options(self):
- pass
-
- def finalize_options(self):
- pass
-
- def run(self):
- loader = unittest.TestLoader()
- tests = loader.discover('yapftests', pattern='*_test.py', top_level_dir='.')
- runner = unittest.TextTestRunner()
- results = runner.run(tests)
- sys.exit(0 if results.wasSuccessful() else 1)
-
-
-with codecs.open('README.md', 'r', 'utf-8') as fd:
- setup(
- name='yapf',
- version='0.40.1',
- description='A formatter for Python code.',
- url='https://github.com/google/yapf',
- long_description=fd.read(),
- license='Apache License, Version 2.0',
- author='Google Inc.',
- maintainer='Bill Wendling',
- maintainer_email='morbo@google.com',
- options={'bdist_wheel': {
- 'python_tag': 'py3'
- }},
- packages=find_packages(where='.', include=['yapf*', 'yapftests*']) +
- find_packages(where='third_party'),
- package_dir={'yapf_third_party': 'third_party/yapf_third_party'},
- project_urls={
- 'Source': 'https://github.com/google/yapf',
- },
- classifiers=[
- 'Development Status :: 4 - Beta',
- 'Environment :: Console',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: Apache Software License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3 :: Only',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
- 'Programming Language :: Python :: 3.10',
- 'Programming Language :: Python :: 3.11',
- 'Topic :: Software Development :: Libraries :: Python Modules',
- 'Topic :: Software Development :: Quality Assurance',
- ],
- entry_points={
- 'console_scripts': [
- 'yapf = yapf:run_main',
- 'yapf-diff = yapf_third_party.yapf_diff.yapf_diff:main',
- ],
- },
- cmdclass={
- 'test': RunTests,
- },
- package_data={
- 'yapf_third_party': [
- 'yapf_diff/LICENSE',
- '_ylib2to3/Grammar.txt',
- '_ylib2to3/PatternGrammar.txt',
- '_ylib2to3/LICENSE',
- ]
- },
- include_package_data=True,
- python_requires='>=3.7',
- setup_requires=[
- 'setuptools>=58.5.0', # for include_package_data fix (issue #1107)
- ],
- install_requires=[
- 'importlib-metadata>=6.6.0',
- 'platformdirs>=3.5.1',
- 'tomli>=2.0.1',
- ],
- )