Skip to content

Commit

Permalink
feat: migrate to pyproject.toml (#496)
Browse files Browse the repository at this point in the history
* migrate to pyproject.toml

* Rebase following #502

* add entries such as documentation and classifiers which exist in other projects

* Use correct url for docs

---------

Co-authored-by: Anthonios Partheniou <[email protected]>
  • Loading branch information
rinarakaki and parthea authored Jan 22, 2025
1 parent 77e252e commit 82ed3b9
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 53 deletions.
58 changes: 58 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -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 = "[email protected]" }]
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*"]
55 changes: 2 additions & 53 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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="[email protected]",
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()

0 comments on commit 82ed3b9

Please sign in to comment.