fix choco_regex

fixes new regex needed for upstream blender cmake adjustment, 
pulls all regex and url into contant variables, 
improves error message, when a version cannot be retrieved
This commit is contained in:
ay-ex
2023-07-19 07:26:59 +00:00
parent 5ec1dec6ec
commit 2baf07a8ee
+49 -40
View File
@@ -13,68 +13,77 @@ def request_repo_info(url: str):
return resp return resp
def get_choco_package_info() -> str:
resp = request_repo_info(URL_CHOCO_PACKAGE)
html_txt = str(resp.read())
return html_txt
def get_latest_blender_version() -> list:
html_txt = get_choco_package_info()
return re.findall(RE_BLENDER_VERSION_MIN_MAJ_PAT, html_txt)
if sys.argv[1] == "--do_choco_release?": if sys.argv[1] == "--do_choco_release?":
now = datetime.datetime.now() now = datetime.datetime.now()
blenderbim_date = (now - datetime.timedelta(days=1)).strftime("%y%m%d") blenderbim_date = (now - datetime.timedelta(days=1)).strftime("%y%m%d")
url = "https://github.com/IfcOpenShell/IfcOpenShell/releases" resp = request_repo_info(URL_IFCOS_RELEASES)
resp = request_repo_info(url)
text = str(resp.read()) text = str(resp.read())
if blenderbim_date in text: if blenderbim_date in text:
print("do_choco_release", end="") print("do_choco_release", end="")
elif sys.argv[1] == "--latest_blender_release_maj_min_pat?": elif sys.argv[1] == "--latest_blender_release_maj_min_pat?":
re_blender_version_min_maj_pat = r"Latest Version.+<span>Blender (\d+\.\d+\.\d+)</span>" latest_blender_version = get_latest_blender_version()
url = "https://community.chocolatey.org/packages/blender" if latest_blender_version:
resp = request_repo_info(url) print(latest_blender_version[0], end="")
html_txt = str(resp.read()) else:
found = re.findall(re_blender_version_min_maj_pat, html_txt) print("[ERROR] could not contact determine blender_version_min_maj_pat")
if found: quit(1)
print(found[0], end="")
elif sys.argv[1] == "--latest_blender_release_maj_min?": elif sys.argv[1] == "--latest_blender_release_maj_min?":
re_blender_version_min_maj = r"Latest Version.+<span>Blender (\d+\.\d+)\..+</span>" html_txt = get_choco_package_info()
url = "https://community.chocolatey.org/packages/blender" blender_version_min_maj = re.findall(RE_BLENDER_VERSION_MIN_MAJ, html_txt)
resp = request_repo_info(url) if blender_version_min_maj:
html_txt = str(resp.read()) print(blender_version_min_maj[0], end="")
found = re.findall(re_blender_version_min_maj, html_txt) else:
if found: print("[ERROR] could not contact determine blender_version_min_maj")
print(found[0], end="") quit(1)
elif sys.argv[1] == "--latest_blender_python_version_maj_min?": elif sys.argv[1] == "--latest_blender_python_version_maj_min?":
# get latest blender version first latest_blender_version = get_latest_blender_version()
re_blender_version_min_maj_pat = r"Latest Version.+<span>Blender (\d+\.\d+\.\d+)</span>" if latest_blender_version:
url = "https://community.chocolatey.org/packages/blender" latest_blender_version_tag = f"v{latest_blender_version[0]}"
resp = request_repo_info(url) resp = request_repo_info(URL_BLENDER_CMAKE)
html_txt = str(resp.read())
found = re.findall(re_blender_version_min_maj_pat, html_txt)
if found:
latest_blender_version_tag = f"v{found[0]}"
re_blender_python_version_maj_min = r"SET\(PYTHON_VERSION (\d+.\d+) "
url = f"https://raw.githubusercontent.com/blender/blender/{latest_blender_version_tag}/build_files/cmake/Modules/FindPythonLibsUnix.cmake"
resp = request_repo_info(url)
html_txt = str(resp.read()) html_txt = str(resp.read())
found = re.findall(re_blender_python_version_maj_min, html_txt) found = re.findall(RE_BLENDER_PYTHON_VERSION_MAJ_MIN, html_txt)
if found: if found:
print(found[0], end="") print(found[0], end="")
else:
print("[ERROR] could not contact determine blender_python_version_maj_min")
quit(1)
elif sys.argv[1] == "--pyver?": elif sys.argv[1] == "--pyver?":
# get latest blender version first latest_blender_version = get_latest_blender_version()
re_blender_version_min_maj_pat = r"Latest Version.+<span>Blender (\d+\.\d+\.\d+)</span>" if latest_blender_version:
url = "https://community.chocolatey.org/packages/blender" latest_blender_version_tag = f"v{latest_blender_version[0]}"
resp = request_repo_info(url) resp = request_repo_info(URL_BLENDER_CMAKE)
html_txt = str(resp.read())
found = re.findall(re_blender_version_min_maj_pat, html_txt)
if found:
latest_blender_version_tag = f"v{found[0]}"
re_blender_python_version_maj_min = r"^SET\(_PYTHON_VERSION_SUPPORTED (\d+\.\d+)\)$"
url = f"https://raw.githubusercontent.com/blender/blender/{latest_blender_version_tag}/build_files/cmake/Modules/FindPythonLibsUnix.cmake"
resp = request_repo_info(url)
html_txt = str(resp.read()) html_txt = str(resp.read())
found = re.findall(re_blender_python_version_maj_min, html_txt) found = re.findall(RE_BLENDER_PYTHON_VERSION_MAJ_MIN, html_txt)
if found: if found:
print(f"py{found[0].replace('.', '')}", end="") print(f"py{found[0].replace('.', '')}", end="")
else:
print("[ERROR] could not contact determine pyver")
quit(1)
URL_IFCOS_RELEASES = "https://github.com/IfcOpenShell/IfcOpenShell/releases"
URL_CHOCO_PACKAGE = "https://community.chocolatey.org/packages/blender"
URL_BLENDER_CMAKE = f"https://raw.githubusercontent.com/blender/blender/{latest_blender_version_tag}/build_files/cmake/Modules/FindPythonLibsUnix.cmake"
RE_BLENDER_VERSION_MIN_MAJ = r"Latest Version.+<span>Blender (\d+\.\d+)\..+</span>"
RE_BLENDER_VERSION_MIN_MAJ_PAT = r"Latest Version.+<span>Blender (\d+\.\d+\.\d+)</span>"
RE_BLENDER_PYTHON_VERSION_MAJ_MIN = r"SET\(_PYTHON_VERSION_SUPPORTED (\d+\.\d+)\)"