diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index ec867d9f..ea07d570 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -8,3 +8,6 @@ setuptools nox>=2022.11.21 # required to remove dependency on py charset-normalizer<3 click<8.1.0 +build +tomli +secretstorage \ No newline at end of file diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index b4737fb5..00000000 --- a/.mypy.ini +++ /dev/null @@ -1,22 +0,0 @@ -[mypy] -python_version = 3.9 -warn_unused_configs = True -namespace_packages = True - -[mypy-google.auth.*] -ignore_missing_imports = True - -[mypy-google.oauth2.*] -ignore_missing_imports = True - -[mypy-pg8000] -ignore_missing_imports = True - -[mypy-asyncpg] -ignore_missing_imports = True - -[mypy-pytds] -ignore_missing_imports = True - -[mypy-pytest] -ignore_missing_imports = True diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..aea8bd3d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,84 @@ +# Copyright 2025 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] +description = "Google Cloud SQL Python Connector library" +name = "cloud-sql-python-connector" +authors = [{ name = "Google LLC", email = "googleapis-packages@google.com" }] +license = { text = "Apache 2.0" } +requires-python = ">=3.9" +readme = "README.md" +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.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", +] +dependencies = [ + "aiofiles", + "aiohttp", + "cryptography>=42.0.0", + "dnspython>=2.0.0", + "Requests", + "google-auth>=2.28.0", +] +dynamic = ["version"] + +[project.urls] +Homepage = "https://github.com/GoogleCloudPlatform/cloud-sql-python-connector" +Repository = "https://github.com/GoogleCloudPlatform/cloud-sql-python-connector.git" +Issues = "https://github.com/GoogleCloudPlatform/cloud-sql-python-connector/issues" +Changelog = "https://github.com/GoogleCloudPlatform/cloud-sql-python-connector/blob/main/CHANGELOG.md" + +[project.optional-dependencies] +pymysql = ["PyMySQL>=1.1.0"] +pg8000 = ["pg8000>=1.31.1"] +pytds = ["python-tds>=1.15.0"] +asyncpg = ["asyncpg>=0.30.0"] + +[tool.setuptools.dynamic] +version = { attr = "google.cloud.sql.connector.version.__version__" } + +[tool.setuptools.package-data] +"google.cloud.sql.connector" = ["py.typed"] + +[tool.setuptools.packages.find] +# Only include packages under the 'google' namespace. Do not include tests, +# benchmarks, etc. +include = ["google*"] + +[tool.mypy] +python_version = "3.9" +namespace_packages = true +ignore_missing_imports = true +warn_unused_configs = true +exclude = ['docs/*', 'samples/*'] + +[tool.pytest] +asyncio_mode = "auto" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index ea688bb8..00000000 --- a/setup.cfg +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2021 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. -[bdist_wheel] -universal = 1 \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 79c6acf7..00000000 --- a/setup.py +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 2019 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. -import io -import os - -import setuptools - -name = "cloud-sql-python-connector" -description = ( - "The Cloud SQL Python Connector is a library that can be used" - " alongside a database driver to allow users with sufficient" - " permissions to connect to a Cloud SQL database without having" - " to manually allowlist IPs or manage SSL certificates." -) -release_status = "Development Status :: 5 - Production/Stable" -dependencies = [ - "aiofiles", - "aiohttp", - "cryptography>=42.0.0", - "dnspython>=2.0.0", - "Requests", - "google-auth>=2.28.0", -] - -package_root = os.path.abspath(os.path.dirname(__file__)) - -readme_filename = os.path.join(package_root, "README.md") -with io.open(readme_filename, encoding="utf-8") as readme_file: - readme = readme_file.read() - -version = {} -with open(os.path.join(package_root, "google/cloud/sql/connector/version.py")) as fp: - exec(fp.read(), version) -version = version["__version__"] - -# Only include packages under the 'google' namespace. Do not include tests, -# samples, 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, - long_description_content_type="text/markdown", - author="Google LLC", - author_email="googleapis-packages@google.com", - license="Apache 2.0", - url="https://github.com/GoogleCloudPlatform/cloud-sql-python-connector", - classifiers=[ - release_status, - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python", - "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", - ], - platforms="Posix; MacOS X; Windows", - packages=packages, - install_requires=dependencies, - extras_require={ - "pymysql": ["PyMySQL>=1.1.0"], - "pg8000": ["pg8000>=1.31.1"], - "pytds": ["python-tds>=1.15.0"], - "asyncpg": ["asyncpg>=0.30.0"], - }, - python_requires=">=3.9", - include_package_data=True, - zip_safe=False, - package_data={"google.cloud.sql.connector": ["py.typed"]}, -) diff --git a/tests/pytest.ini b/tests/pytest.ini deleted file mode 100644 index 26a6998f..00000000 --- a/tests/pytest.ini +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2022 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. -[pytest] -asyncio_mode = auto