diff --git a/google/__init__.py b/google/__init__.py deleted file mode 100644 index d71b1e55..00000000 --- a/google/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2020 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 -# -# https://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 pkg_resources - -pkg_resources.declare_namespace(__name__) diff --git a/google/cloud/__init__.py b/google/cloud/__init__.py deleted file mode 100644 index d71b1e55..00000000 --- a/google/cloud/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2020 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 -# -# https://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 pkg_resources - -pkg_resources.declare_namespace(__name__) diff --git a/google/cloud/pubsublite/internal/wire/pubsub_context.py b/google/cloud/pubsublite/internal/wire/pubsub_context.py index 802f067c..da363d1e 100644 --- a/google/cloud/pubsublite/internal/wire/pubsub_context.py +++ b/google/cloud/pubsublite/internal/wire/pubsub_context.py @@ -16,9 +16,11 @@ from typing import Mapping, Optional, NamedTuple import logging -import pkg_resources + from google.protobuf import struct_pb2 # pytype: disable=pyi-error +from google.cloud.pubsublite import gapic_version + _LOGGER = logging.getLogger(__name__) @@ -29,13 +31,7 @@ class _Semver(NamedTuple): def _version() -> _Semver: - try: - version = pkg_resources.get_distribution("google-cloud-pubsublite").version - except pkg_resources.DistributionNotFound: - _LOGGER.info( - "Failed to extract the google-cloud-pubsublite semver version. DistributionNotFound." - ) - return _Semver(0, 0) + version = gapic_version.__version__ splits = version.split(".") if len(splits) != 3: _LOGGER.info(f"Failed to extract semver from {version}.") diff --git a/noxfile.py b/noxfile.py index 937cd8da..93813ce8 100644 --- a/noxfile.py +++ b/noxfile.py @@ -311,7 +311,8 @@ def pytype(session): """Run type checks.""" install_test_deps(session) session.install(PYTYPE_VERSION) - session.run("pytype", "google/cloud/pubsublite") + # See https://github.com/google/pytype/issues/464 + session.run("pytype", "-P", ".", "google/cloud/pubsublite") @nox.session(python="3.10") diff --git a/owlbot.py b/owlbot.py index 184dfb4a..531b6e15 100644 --- a/owlbot.py +++ b/owlbot.py @@ -132,12 +132,14 @@ def pytype(session): \"\"\"Run type checks.\"\"\" install_test_deps(session) session.install(PYTYPE_VERSION) - session.run("pytype", "google/cloud/pubsublite") + # See https://github.com/google/pytype/issues/464 + session.run("pytype", "-P", ".", "google/cloud/pubsublite") @nox.session(python="3.10") def docfx(session):""", ) + python.py_samples(skip_readmes=True) # run format session for all directories which have a noxfile diff --git a/release-please-config.json b/release-please-config.json index 9c3eeb3b..f2e222f2 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -5,6 +5,7 @@ "release-type": "python", "extra-files": [ "google/cloud/pubsublite/gapic_version.py", + "google/cloud/pubsublite_v1/gapic_version.py", { "type": "json", "path": "samples/generated_samples/snippet_metadata_google.cloud.pubsublite.v1.json", diff --git a/tests/unit/test_packaging.py b/tests/unit/test_packaging.py new file mode 100644 index 00000000..c3974ce6 --- /dev/null +++ b/tests/unit/test_packaging.py @@ -0,0 +1,37 @@ +# Copyright 2023 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 os +import subprocess +import sys + + +def test_namespace_package_compat(tmp_path): + # The ``google`` namespace package should not be masked + # by the presence of ``google-cloud-pubsublite``. + google = tmp_path / "google" + google.mkdir() + google.joinpath("othermod.py").write_text("") + env = dict(os.environ, PYTHONPATH=str(tmp_path)) + cmd = [sys.executable, "-m", "google.othermod"] + subprocess.check_call(cmd, env=env) + + # The ``google.cloud`` namespace package should not be masked + # by the presence of ``google-cloud-pubsublite``. + google_cloud = tmp_path / "google" / "cloud" + google_cloud.mkdir() + google_cloud.joinpath("othermod.py").write_text("") + env = dict(os.environ, PYTHONPATH=str(tmp_path)) + cmd = [sys.executable, "-m", "google.cloud.othermod"] + subprocess.check_call(cmd, env=env)