From bfe6ea29b662222fa2dfa3356504ede8f7dfe550 Mon Sep 17 00:00:00 2001 From: Gabriel Rasskin <43894452+grasskin@users.noreply.github.com> Date: Tue, 28 Nov 2023 18:56:18 +0000 Subject: [PATCH 1/5] Unify `version` API with keras and keras_nlp --- keras_cv/__init__.py | 2 +- keras_cv/version.py | 23 +++++++++++++++++++++++ setup.py | 17 +++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 keras_cv/version.py diff --git a/keras_cv/__init__.py b/keras_cv/__init__.py index e5fa243940..619f14341a 100644 --- a/keras_cv/__init__.py +++ b/keras_cv/__init__.py @@ -41,5 +41,5 @@ from keras_cv.core import FactorSampler from keras_cv.core import NormalFactorSampler from keras_cv.core import UniformFactorSampler +from keras_cv.version import __version__ -__version__ = "0.7.0" diff --git a/keras_cv/version.py b/keras_cv/version.py new file mode 100644 index 0000000000..acb416db07 --- /dev/null +++ b/keras_cv/version.py @@ -0,0 +1,23 @@ +# Copyright 2023 The KerasCV Authors +# +# 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. + +from keras_cv.api_export import keras_cv_export + +# Unique source of truth for the version number. +__version__ = "0.7.0" + +@keras_cv_export("keras_cv.version") +def version(): + return __version__ + diff --git a/setup.py b/setup.py index 6ca3d37aa6..4dbb461018 100644 --- a/setup.py +++ b/setup.py @@ -21,6 +21,21 @@ from setuptools import setup from setuptools.dist import Distribution + +def read(rel_path): + here = os.path.abspath(os.path.dirname(__file__)) + with open(os.path.join(here, rel_path)) as fp: + return fp.read() + + +def get_version(rel_path): + for line in read(rel_path).splitlines(): + if line.startswith("__version__"): + delim = '"' if '"' in line else "'" + return line.split(delim)[1] + raise RuntimeError("Unable to find version string.") + + BUILD_WITH_CUSTOM_OPS = ( "BUILD_WITH_CUSTOM_OPS" in os.environ and os.environ["BUILD_WITH_CUSTOM_OPS"] == "true" @@ -28,6 +43,7 @@ HERE = pathlib.Path(__file__).parent README = (HERE / "README.md").read_text() +VERSION = get_version("keras_cv/version.py") class BinaryDistribution(Distribution): @@ -45,6 +61,7 @@ def is_pure(self): description="Industry-strength computer Vision extensions for Keras.", long_description=README, long_description_content_type="text/markdown", + version=VERSION, url="https://github.com/keras-team/keras-cv", author="Keras team", author_email="keras-cv@google.com", From aee0356449b1f39e12915076a58134494157b8e5 Mon Sep 17 00:00:00 2001 From: Gabriel Rasskin <43894452+grasskin@users.noreply.github.com> Date: Tue, 28 Nov 2023 19:42:29 +0000 Subject: [PATCH 2/5] Formatting --- keras_cv/__init__.py | 1 - keras_cv/version.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/keras_cv/__init__.py b/keras_cv/__init__.py index 619f14341a..6b87a1f863 100644 --- a/keras_cv/__init__.py +++ b/keras_cv/__init__.py @@ -42,4 +42,3 @@ from keras_cv.core import NormalFactorSampler from keras_cv.core import UniformFactorSampler from keras_cv.version import __version__ - diff --git a/keras_cv/version.py b/keras_cv/version.py index acb416db07..b53cc46c35 100644 --- a/keras_cv/version.py +++ b/keras_cv/version.py @@ -17,7 +17,7 @@ # Unique source of truth for the version number. __version__ = "0.7.0" + @keras_cv_export("keras_cv.version") def version(): - return __version__ - + return __version__ From 79954471b20e230975a35bf0a7209c7a030cf3c3 Mon Sep 17 00:00:00 2001 From: Gabriel Rasskin <43894452+grasskin@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:42:55 +0000 Subject: [PATCH 3/5] Update to keep `version` parity with KerasNLP, support nightly version string --- keras_cv/__init__.py | 3 ++- keras_cv/{version.py => version_utils.py} | 0 pip_build.py | 13 ++++++++++++- setup.py | 5 ++++- 4 files changed, 18 insertions(+), 3 deletions(-) rename keras_cv/{version.py => version_utils.py} (100%) diff --git a/keras_cv/__init__.py b/keras_cv/__init__.py index 6b87a1f863..36c7d3511b 100644 --- a/keras_cv/__init__.py +++ b/keras_cv/__init__.py @@ -41,4 +41,5 @@ from keras_cv.core import FactorSampler from keras_cv.core import NormalFactorSampler from keras_cv.core import UniformFactorSampler -from keras_cv.version import __version__ +from keras_cv.version_utils import __version__ +from keras_cv.version_utils import version diff --git a/keras_cv/version.py b/keras_cv/version_utils.py similarity index 100% rename from keras_cv/version.py rename to keras_cv/version_utils.py diff --git a/pip_build.py b/pip_build.py index 24ad3799dd..35abc5b85c 100644 --- a/pip_build.py +++ b/pip_build.py @@ -64,11 +64,22 @@ def export_version_string(version, is_nightly=False): ) f.write(setup_contents) + # Overwrite the version string with our package version. + with open(os.path.join(package, "src", "version_utils.py")) as f: + version_contents = f.readlines() + with open(os.path.join(package, "src", "version_utils.py"), "w") as f: + for line in version_contents: + if line.startswith("__version__"): + f.write(f'__version__ = "{version}"\n') + else: + f.write(line) + # Make sure to export the __version__ string with open(os.path.join(package, "__init__.py")) as f: init_contents = f.read() with open(os.path.join(package, "__init__.py"), "w") as f: - f.write(init_contents + "\n\n" + f'__version__ = "{version}"\n') + f.write(init_contents) + f.write("from keras_cv.src.version_utils import __version__\n") def build(root_path, is_nightly=False): diff --git a/setup.py b/setup.py index 4dbb461018..7e273ffada 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,10 @@ def get_version(rel_path): HERE = pathlib.Path(__file__).parent README = (HERE / "README.md").read_text() -VERSION = get_version("keras_cv/version.py") +if os.path.exists("keras_cv/version_utils.py"): + VERSION = get_version("keras_cv/version_utils.py") +else: + VERSION = get_version("keras_cv/src/version_utils.py") class BinaryDistribution(Distribution): From 93bc90719482a81a9859ca99ab0f97f00f9cd1b2 Mon Sep 17 00:00:00 2001 From: Gabriel Rasskin <43894452+grasskin@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:52:56 +0100 Subject: [PATCH 4/5] Update version_utils.py --- keras_cv/version_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keras_cv/version_utils.py b/keras_cv/version_utils.py index b53cc46c35..0f055514cc 100644 --- a/keras_cv/version_utils.py +++ b/keras_cv/version_utils.py @@ -15,7 +15,7 @@ from keras_cv.api_export import keras_cv_export # Unique source of truth for the version number. -__version__ = "0.7.0" +__version__ = "0.8.0" @keras_cv_export("keras_cv.version") From ee7d19cd6d910653c5643ed0c17565cab6b788c3 Mon Sep 17 00:00:00 2001 From: Gabriel Rasskin <43894452+grasskin@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:53:31 +0100 Subject: [PATCH 5/5] Update version_utils.py --- keras_cv/version_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keras_cv/version_utils.py b/keras_cv/version_utils.py index 0f055514cc..527546c643 100644 --- a/keras_cv/version_utils.py +++ b/keras_cv/version_utils.py @@ -15,7 +15,7 @@ from keras_cv.api_export import keras_cv_export # Unique source of truth for the version number. -__version__ = "0.8.0" +__version__ = "0.8.2" @keras_cv_export("keras_cv.version")