# 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 = "googleapis-packages@google.com" }]
license = { text = "Apache 2.0" }
requires-python = ">=3.10"
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.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Programming Language :: Python :: 3.13",
  "Programming Language :: Python :: 3.14",
  "Operating System :: OS Independent",
  "Topic :: Internet",
]
dependencies = [
  "googleapis-common-protos >= 1.63.2, < 2.0.0",
  "protobuf >= 5.29.6, < 8.0.0",
  "proto-plus >= 1.24.0, < 2.0.0",
  "proto-plus >= 1.25.0, < 2.0.0; python_version >= '3.13'",
  "google-auth >= 2.14.1, < 3.0.0",
  "requests >= 2.33.0, < 3.0.0",
]
dynamic = ["version"]

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

[project.optional-dependencies]
async_rest = ["google-auth[aiohttp] >= 2.14.1, < 3.0.0", "aiohttp >= 3.13.4"]
grpc = [
  "grpcio >= 1.41.0, < 2.0.0",
  "grpcio >= 1.49.1, < 2.0.0; python_version >= '3.11'",
  "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'",
  "grpcio-status >= 1.41.0, < 2.0.0",
  "grpcio-status >= 1.49.1, < 2.0.0; python_version >= '3.11'",
  "grpcio-status >= 1.75.1, < 2.0.0; python_version >= '3.14'",
]


[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.14"
namespace_packages = true
ignore_missing_imports = true

[tool.pytest]
filterwarnings = [
  # treat all warnings as errors
  "error",
  # Prevent Python version warnings from interfering with tests
  "ignore:.* Python version .*:FutureWarning",
  # 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 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",
]
