{% extends '_base.py.j2' %}

{% block content %}

import os
import re

import setuptools  # type: ignore

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

name = '{{ api.naming.warehouse_package_name }}'

{% set warehouse_description = api.naming.warehouse_package_name.replace('-',' ')|title %}
{% set package_path = api.naming.module_namespace|join('/') + "/" + api.naming.module_name + "/" + api.naming.version %}

description = "{{ warehouse_description }} API client library"

version = None

with open(os.path.join(package_root, '{{ package_path }}/gapic_version.py')) as fp:
    version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read())
    assert (len(version_candidates) == 1)
    version = version_candidates[0]

if version[0] == "0":
    release_status = "Development Status :: 4 - Beta"
else:
    release_status = "Development Status :: 5 - Production/Stable"

dependencies = [
    "google-api-core[grpc] >= 2.10.0, < 3.0.0",
    "google-auth >= 2.14.1, <3.0.0",
    "googleapis-common-protos >= 1.53.0",
    "grpcio >= 1.10.0",
    "proto-plus >= 1.22.3, <2.0.0",
    "protobuf >= 4.25.8, < 8.0.0",
    {% if api.requires_package(('google', 'iam', 'v1')) %}
    "grpc-google-iam-v1",
    {% endif %}
]

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

packages = [
    package
    for package in setuptools.find_namespace_packages()
    if package.startswith("{{ api.naming.namespace_packages|first }}")
]

setuptools.setup(
    name=name,
    version=version,
    description=description,
    author="Google LLC",
    author_email="googleapis-packages@google.com",
    license="Apache 2.0",
    setup_requires=[
        'libcst >= 0.2.5',
    ],
    classifiers=[
        release_status,
        "Intended Audience :: Developers",
        "License :: OSI Approved :: Apache Software License",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "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",
        "Programming Language :: Python :: 3.14",
        "Operating System :: OS Independent",
        "Topic :: Internet",
    ],
    platforms="Posix; MacOS X; Windows",
    packages=packages,
    python_requires=">=3.9",
    install_requires=dependencies,
    include_package_data=True,
    zip_safe=False,
)
{% endblock %}
