diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..6fb7cbe2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,58 @@ +# Copyright 2024 Google LLC +# +# 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. + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "proto-plus" +authors = [{ name = "Google LLC", email = "googleapis-packages@google.com" }] +license = { text = "Apache 2.0" } +requires-python = ">=3.7" +description = "Beautiful, Pythonic protocol buffers" +readme = "README.rst" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "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", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Operating System :: OS Independent", + "Topic :: Software Development :: Code Generators", + "Topic :: Software Development :: Libraries :: Python Modules", +] +dependencies = ["protobuf >=3.19.0, < 6.0.0dev"] +dynamic = ["version"] + +[project.urls] +Documentation = "https://googleapis.dev/python/proto-plus/latest/" +Repository = "https://github.com/googleapis/proto-plus-python" + +[project.optional-dependencies] +testing = ["google-api-core >= 1.31.5"] + +[tool.setuptools.dynamic] +version = { attr = "proto.version.__version__" } + +[tool.setuptools.packages.find] +# Only include packages under the 'proto' namespace. Do not include build, docs, tests +include = ["proto*"] diff --git a/setup.py b/setup.py index 6f8d8970..12e9ed26 100644 --- a/setup.py +++ b/setup.py @@ -12,59 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -import io -import re -import os -from setuptools import find_namespace_packages, setup +from setuptools import setup -PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__)) -version = None - -with open(os.path.join(PACKAGE_ROOT, "proto/version.py")) as fp: - version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read()) - assert len(version_candidates) == 1 - version = version_candidates[0] - -with io.open(os.path.join(PACKAGE_ROOT, "README.rst")) as file_obj: - README = file_obj.read() - -setup( - name="proto-plus", - version=version, - license="Apache 2.0", - author="Google LLC", - author_email="googleapis-packages@google.com", - url="https://github.com/googleapis/proto-plus-python.git", - packages=find_namespace_packages(include=["proto", "proto.*"]), - description="Beautiful, Pythonic protocol buffers.", - long_description=README, - platforms="Posix; MacOS X", - include_package_data=True, - install_requires=("protobuf >=3.19.0, <6.0.0dev",), - extras_require={ - "testing": [ - "google-api-core >= 1.31.5", - ], - }, - python_requires=">=3.7", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Operating System :: POSIX", - "Programming Language :: Python :: 3", - "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", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Topic :: Software Development :: Code Generators", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - zip_safe=False, -) +setup()