blob: c49232ed6e64ce1a839d97751449f31a04b85515 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
"""Version script for the OpenBB Platform."""
import shutil
import subprocess
from importlib.metadata import (
PackageNotFoundError,
version as pkg_version,
)
from pathlib import Path
PACKAGE = "openbb"
def get_package_version(package: str):
"""Retrieve the version of a package from installed pip packages."""
is_nightly = False
try:
version = pkg_version(package)
except PackageNotFoundError:
package += "-nightly"
is_nightly = True
try:
version = pkg_version(package)
except PackageNotFoundError:
package = "openbb-core"
version = pkg_version(package)
version += "core"
if is_git_repo(Path(__file__).parent.resolve()) and not is_nightly:
version += "dev"
return version
def is_git_repo(path: Path):
"""Check if the given directory is a git repository."""
git_executable = shutil.which("git")
if not git_executable:
return False
try:
subprocess.run(
[git_executable, "rev-parse", "--is-inside-work-tree"], # noqa: S603
cwd=path,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
check=True,
)
return True
except subprocess.CalledProcessError:
return False
def get_major_minor(version: str) -> tuple[int, int]:
"""Retrieve the major and minor version from a version string."""
parts = version.split(".")
return (int(parts[0]), int(parts[1]))
try:
VERSION = get_package_version(PACKAGE)
except PackageNotFoundError:
VERSION = "unknown"
try:
CORE_VERSION = get_package_version("openbb-core")
except PackageNotFoundError:
CORE_VERSION = "unknown"
|