Skip to content

Commit

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

* remove version

* remove readme_filename

* remove long_description

* dynamic version

* move description

* move urls

* move packages

* zip_safe is deprecated

* include-package-data = true by default

* platforms are ignored

* Add copyright notice

* proto-plus when python_version >= '3.13'

* remove mypy.ini

* remove pytest.ini

---------

Co-authored-by: Anthonios Partheniou <[email protected]>
  • Loading branch information
rinarakaki and parthea authored Oct 28, 2024
1 parent e1b5a11 commit 159e9a4
Show file tree
Hide file tree
Showing 4 changed files with 108 additions and 118 deletions.
4 changes: 0 additions & 4 deletions mypy.ini

This file was deleted.

107 changes: 107 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# 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 = "google-api-core"
authors = [{ name = "Google LLC", email = "[email protected]" }]
license = { text = "Apache 2.0" }
requires-python = ">=3.7"
readme = "README.rst"
description = "Google API client core library"
classifiers = [
# Should be one of:
# "Development Status :: 3 - Alpha"
# "Development Status :: 4 - Beta"
# "Development Status :: 5 - Production/Stable"
"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 :: Internet",
]
dependencies = [
"googleapis-common-protos >= 1.56.2, < 2.0.dev0",
"protobuf >= 3.19.5, < 6.0.0.dev0, != 3.20.0, != 3.20.1, != 4.21.0, != 4.21.1, != 4.21.2, != 4.21.3, != 4.21.4, != 4.21.5",
"proto-plus >= 1.22.3, < 2.0.0dev",
"proto-plus >= 1.25.0, < 2.0.0dev; python_version >= '3.13'",
"google-auth >= 2.14.1, < 3.0.dev0",
"requests >= 2.18.0, < 3.0.0.dev0",
]
dynamic = ["version"]

[project.urls]
Documentation = "https://googleapis.dev/python/google-api-core/latest/"
Repository = "https://github.com/googleapis/python-api-core"

[project.optional-dependencies]
async_rest = ["google-auth[aiohttp] >= 2.35.0, < 3.0.dev0"]
grpc = [
"grpcio >= 1.33.2, < 2.0dev",
"grpcio >= 1.49.1, < 2.0dev; python_version >= '3.11'",
"grpcio-status >= 1.33.2, < 2.0.dev0",
"grpcio-status >= 1.49.1, < 2.0.dev0; python_version >= '3.11'",
]
grpcgcp = ["grpcio-gcp >= 0.2.2, < 1.0.dev0"]
grpcio-gcp = ["grpcio-gcp >= 0.2.2, < 1.0.dev0"]

[tool.setuptools.dynamic]
version = { attr = "google.api_core.version.__version__" }

[tool.setuptools.packages.find]
# Only include packages under the 'google' namespace. Do not include tests,
# benchmarks, etc.
include = ["google*"]

[tool.mypy]
python_version = "3.7"
namespace_packages = true
ignore_missing_imports = true

[tool.pytest]
filterwarnings = [
# treat all warnings as errors
"error",
# Remove once https://github.com/pytest-dev/pytest-cov/issues/621 is fixed
"ignore:.*The --rsyncdir command line argument and rsyncdirs config variable are deprecated:DeprecationWarning",
# Remove once https://github.com/protocolbuffers/protobuf/issues/12186 is fixed
"ignore:.*custom tp_new.*in Python 3.14:DeprecationWarning",
# Remove once support for python 3.7 is dropped
# This warning only appears when using python 3.7
"ignore:.*Using or importing the ABCs from.*collections:DeprecationWarning",
# Remove once support for grpcio-gcp is deprecated
# See https://github.com/googleapis/python-api-core/blob/42e8b6e6f426cab749b34906529e8aaf3f133d75/google/api_core/grpc_helpers.py#L39-L45
"ignore:.*Support for grpcio-gcp is deprecated:DeprecationWarning",
"ignore: The `compression` argument is ignored for grpc_gcp.secure_channel creation:DeprecationWarning",
"ignore:The `attempt_direct_path` argument is ignored for grpc_gcp.secure_channel creation:DeprecationWarning",
# Remove once the minimum supported version of googleapis-common-protos is 1.62.0
"ignore:.*pkg_resources.declare_namespace:DeprecationWarning",
"ignore:.*pkg_resources is deprecated as an API:DeprecationWarning",
# Remove once https://github.com/grpc/grpc/issues/35086 is fixed (and version newer than 1.60.0 is published)
"ignore:There is no current event loop:DeprecationWarning",
# Remove after support for Python 3.7 is dropped
"ignore:After January 1, 2024, new releases of this library will drop support for Python 3.7:DeprecationWarning",
]
23 changes: 0 additions & 23 deletions pytest.ini

This file was deleted.

92 changes: 1 addition & 91 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,97 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import io
import os

import setuptools


# Package metadata.

name = "google-api-core"
description = "Google API client core library"

# Should be one of:
# 'Development Status :: 3 - Alpha'
# 'Development Status :: 4 - Beta'
# 'Development Status :: 5 - Production/Stable'
release_status = "Development Status :: 5 - Production/Stable"
dependencies = [
"googleapis-common-protos >= 1.56.2, < 2.0.dev0",
"protobuf>=3.19.5,<6.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
"proto-plus >= 1.22.3, < 2.0.0dev",
"proto-plus >= 1.25.0, < 2.0.0dev; python_version >= '3.13'",
"google-auth >= 2.14.1, < 3.0.dev0",
"requests >= 2.18.0, < 3.0.0.dev0",
]
extras = {
"async_rest": [
"google-auth[aiohttp] >= 2.35.0, < 3.0.dev0",
],
"grpc": [
"grpcio >= 1.33.2, < 2.0dev",
"grpcio >= 1.49.1, < 2.0dev; python_version>='3.11'",
"grpcio-status >= 1.33.2, < 2.0.dev0",
"grpcio-status >= 1.49.1, < 2.0.dev0; python_version>='3.11'",
],
"grpcgcp": "grpcio-gcp >= 0.2.2, < 1.0.dev0",
"grpcio-gcp": "grpcio-gcp >= 0.2.2, < 1.0.dev0",
}


# Setup boilerplate below this line.

package_root = os.path.abspath(os.path.dirname(__file__))


version = {}
with open(os.path.join(package_root, "google/api_core/version.py")) as fp:
exec(fp.read(), version)
version = version["__version__"]

readme_filename = os.path.join(package_root, "README.rst")
with io.open(readme_filename, encoding="utf-8") as readme_file:
readme = readme_file.read()

# Only include packages under the 'google' namespace. Do not include tests,
# benchmarks, etc.
packages = [
package
for package in setuptools.find_namespace_packages()
if package.startswith("google")
]

setuptools.setup(
name=name,
version=version,
description=description,
long_description=readme,
author="Google LLC",
author_email="[email protected]",
license="Apache 2.0",
url="https://github.com/googleapis/python-api-core",
classifiers=[
release_status,
"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 :: Internet",
],
platforms="Posix; MacOS X; Windows",
packages=packages,
install_requires=dependencies,
extras_require=extras,
python_requires=">=3.7",
include_package_data=True,
zip_safe=False,
)
setuptools.setup()

0 comments on commit 159e9a4

Please sign in to comment.