Skip to content

Commit

Permalink
build: update package to use pyproject.toml (#1230)
Browse files Browse the repository at this point in the history
  • Loading branch information
jackwotherspoon authored Feb 3, 2025
1 parent 144311b commit 4fe1320
Show file tree
Hide file tree
Showing 9 changed files with 408 additions and 442 deletions.
3 changes: 3 additions & 0 deletions .kokoro/requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
615 changes: 318 additions & 297 deletions .kokoro/requirements.txt

Large diffs are not rendered by default.

22 changes: 0 additions & 22 deletions .mypy.ini

This file was deleted.

4 changes: 2 additions & 2 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
BLACK_VERSION = "black==24.10.0"
ISORT_VERSION = "isort==5.13.2"

LINT_PATHS = ["google", "tests", "noxfile.py", "setup.py"]
LINT_PATHS = ["google", "tests", "noxfile.py"]

TEST_PYTHON_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13"]

Expand Down Expand Up @@ -71,7 +71,7 @@ def lint(session):
"--non-interactive",
"--show-traceback",
)
# verify that setup.py is valid
# verify that pyproject.toml is valid
session.run("python", "-m", "build", "--sdist")
session.run("twine", "check", "--strict", "dist/*")

Expand Down
84 changes: 84 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -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.ini_options]
asyncio_mode = "auto"
15 changes: 0 additions & 15 deletions setup.cfg

This file was deleted.

90 changes: 0 additions & 90 deletions setup.py

This file was deleted.

15 changes: 0 additions & 15 deletions tests/pytest.ini

This file was deleted.

2 changes: 1 addition & 1 deletion tests/system/test_asyncpg_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ async def getconn(
password=password,
db=db,
ip_type="public", # can also be "private" or "psc",
**kwargs
**kwargs,
)
return conn

Expand Down

0 comments on commit 4fe1320

Please sign in to comment.