diff --git a/django_spanner/__init__.py b/django_spanner/__init__.py index ad4bc4e38d..8217f2a573 100644 --- a/django_spanner/__init__.py +++ b/django_spanner/__init__.py @@ -12,7 +12,6 @@ # do that. from uuid import uuid4 -import pkg_resources from google.cloud.spanner_v1 import JsonObject from django.db.models.fields import ( NOT_PROVIDED, @@ -24,6 +23,7 @@ from .functions import register_functions from .lookups import register_lookups from .utils import check_django_compatability +from .version import __version__ # Monkey-patch google.DatetimeWithNanoseconds's __eq__ compare against # datetime.datetime. @@ -41,8 +41,6 @@ ) from django.db.models import JSONField -__version__ = pkg_resources.get_distribution("django-google-spanner").version - USE_EMULATOR = os.getenv("SPANNER_EMULATOR_HOST") is not None # Only active LTS django versions (2.2.*, 3.2.*) are supported by this library right now. diff --git a/version.py b/django_spanner/version.py similarity index 100% rename from version.py rename to django_spanner/version.py diff --git a/setup.py b/setup.py index 8d88553793..6e064ae949 100644 --- a/setup.py +++ b/setup.py @@ -6,6 +6,7 @@ import io import os +import re from setuptools import find_packages, setup @@ -27,16 +28,20 @@ } BASE_DIR = os.path.dirname(__file__) -VERSION_FILENAME = os.path.join(BASE_DIR, "version.py") -PACKAGE_INFO = {} -with open(VERSION_FILENAME) as f: - exec(f.read(), PACKAGE_INFO) -version = PACKAGE_INFO["__version__"] - -# Setup boilerplate below this line. package_root = os.path.abspath(BASE_DIR) +version = None + +with open( + os.path.join(package_root, "django_spanner/version.py") +) as fp: + version_candidates = re.findall(r"(?<=\")\d+.\d+.\d+(?=\")", fp.read()) + assert len(version_candidates) == 1 + version = version_candidates[0] + +# Setup boilerplate below this line. + readme_filename = os.path.join(package_root, "README.rst") with io.open(readme_filename, encoding="utf-8") as readme_file: readme = readme_file.read()