From f23c7ced2c6448c22acd1400ed453490fb156a04 Mon Sep 17 00:00:00 2001 From: Eitan Turok <150733043+eitanturok@users.noreply.github.com> Date: Wed, 31 Jul 2024 11:53:53 -0400 Subject: [PATCH] read version from _version.py file --- llmfoundry/__init__.py | 5 ++--- llmfoundry/_version.py | 6 ++++++ setup.py | 17 ++++++++--------- 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 llmfoundry/_version.py diff --git a/llmfoundry/__init__.py b/llmfoundry/__init__.py index 8dbd180c0a..8815573c4c 100644 --- a/llmfoundry/__init__.py +++ b/llmfoundry/__init__.py @@ -26,6 +26,7 @@ ' in LLM Foundry setup.py and update accordingly. The latest Docker image can be found in the README.', ) from e +from llmfoundry._version import __version__ from llmfoundry.utils.logging_utils import SpecificWarningFilter # Filter out Hugging Face warning for not using a pinned revision of the model @@ -86,6 +87,4 @@ 'optim', 'tokenizers', 'utils', -] - -__version__ = '0.11.0.dev0' +] \ No newline at end of file diff --git a/llmfoundry/_version.py b/llmfoundry/_version.py new file mode 100644 index 0000000000..a8256924a3 --- /dev/null +++ b/llmfoundry/_version.py @@ -0,0 +1,6 @@ +# Copyright 2024 MosaicML LLM Foundry authors +# SPDX-License-Identifier: Apache-2.0 + +"""The LLM Foundry Version.""" + +__version__ = '0.10.0' \ No newline at end of file diff --git a/setup.py b/setup.py index bc84f9fac8..3417777a06 100644 --- a/setup.py +++ b/setup.py @@ -6,6 +6,7 @@ import copy import os import re +from typing import Any, Dict, Mapping import setuptools from setuptools import setup @@ -15,17 +16,15 @@ _REPO_REAL_PATH = os.path.dirname(os.path.realpath(__file__)) _PACKAGE_REAL_PATH = os.path.join(_REPO_REAL_PATH, _PACKAGE_DIR) -# Read the repo version +# Read the composer version # We can't use `.__version__` from the library since it's not installed yet -with open(os.path.join(_PACKAGE_REAL_PATH, '__init__.py')) as f: +version_path = os.path.join(_PACKAGE_REAL_PATH, '_version.py') +with open(version_path, encoding='utf-8') as f: + version_globals: Dict[str, Any] = {} + version_locals: Mapping[str, object] = {} content = f.read() -# regex: '__version__', whitespace?, '=', whitespace, quote, version, quote -# we put parens around the version so that it becomes elem 1 of the match -expr = re.compile( - r"""^__version__\s*=\s*['"]([0-9]+\.[0-9]+\.[0-9]+(?:\.\w+)?)['"]""", - re.MULTILINE, -) -repo_version = expr.findall(content)[0] + exec(content, version_globals, version_locals) + repo_version = version_locals['__version__'] # Use repo README for PyPi description with open('README.md', 'r', encoding='utf-8') as fh: