Skip to content

Commit 3b10c1b

Browse files
authored
Merge pull request #188 from bkemper24/main
updates due to build path changes
2 parents 8894819 + ccc23b0 commit 3b10c1b

File tree

1 file changed

+53
-16
lines changed

1 file changed

+53
-16
lines changed

cicd/install-tk.py

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@
2525
import os
2626
import platform
2727
import re
28-
import requests
28+
try:
29+
import requests
30+
except ImportError:
31+
pass
2932
import subprocess
3033
import sys
3134
import zipfile
@@ -130,6 +133,8 @@ def extract_zip(root, data, py_versions=None):
130133
if py_versions and re.match(r'_py\d*swat', basename):
131134
ver = re.match(r'_py(\d*)swat', basename).group(1) or '27'
132135
if ver not in py_versions:
136+
print_err("***** extract_zip : version {} not in py_versions"
137+
.format(ver))
133138
continue
134139

135140
# Write file
@@ -152,6 +157,8 @@ def create_placeholders(root, data, py_versions=None):
152157
if py_versions:
153158
ver = re.match(r'_py(\d*)swat', basename).group(1) or '27'
154159
if ver not in py_versions:
160+
print_err("***** create_placeholders : version {} not in py_versions"
161+
.format(ver))
155162
continue
156163

157164
# Write placeholder file
@@ -160,6 +167,31 @@ def create_placeholders(root, data, py_versions=None):
160167
out_file.write(b'')
161168

162169

170+
def create_restonly_placeholders(root):
171+
''' Write placeholder files for each Python extension file '''
172+
py_versions = [x.replace('.', '')
173+
for x in get_python_versions()]
174+
175+
for ver in py_versions:
176+
if ver == '27':
177+
out_path = os.path.join(root, "_pyswat.na")
178+
print_err("***** create_restonly_placeholders : write placeholder file {}"
179+
.format(out_path))
180+
with open(out_path, 'wb') as out_file:
181+
out_file.write(b'')
182+
out_path = os.path.join(root, "_pyswatw.na")
183+
print_err("***** create_restonly_placeholders : write placeholder file {}"
184+
.format(out_path))
185+
with open(out_path, 'wb') as out_file:
186+
out_file.write(b'')
187+
else:
188+
out_path = os.path.join(root, "_py{}swat.na".format(ver))
189+
print_err("***** create_restonly_placeholders : write placeholder file {}"
190+
.format(out_path))
191+
with open(out_path, 'wb') as out_file:
192+
out_file.write(b'')
193+
194+
163195
def update_tk_version(root, version):
164196
''' Add the TK version to the __init__.py file of the package '''
165197
tk_file = os.path.join(root, 'swat', '__init__.py')
@@ -220,7 +252,7 @@ def get_packages(lib_root, tk_base, release, platform, pkgs, versions_only=False
220252

221253
if not py_versions:
222254
py_versions = [x.replace('.', '')
223-
for x in get_python_versions(platform)]
255+
for x in get_python_versions()]
224256

225257
if versions_only:
226258
create_placeholders(lib_root, resp.content, py_versions=py_versions)
@@ -231,21 +263,18 @@ def get_packages(lib_root, tk_base, release, platform, pkgs, versions_only=False
231263

232264
# Package was not found, bail out
233265
if resp.status_code == 404:
266+
print_err(("***** get_packages : resp.status_code was 404, "
267+
"bail out and set is_installed to False"))
234268
is_installed = False
235269
break
236270

237271
return is_installed
238272

239273

240-
def get_python_versions(platform):
274+
def get_python_versions():
241275
'''
242-
Retrieve all possible Python versions for the given platform
243-
244-
This function actually uses information about the pandas library
245-
instead of Python itself. Pandas is the primary dependency of
246-
SWAT, so it is the limiting factor on what Python versions can
247-
be used.
248-
276+
Retrieve all possible Python versions.
277+
Currently, every platform supports the same python versions.
249278
'''
250279

251280
versions = set()
@@ -282,12 +311,20 @@ def main(args):
282311
# Create output directory
283312
os.makedirs(lib_root, exist_ok=True)
284313

285-
is_installed = get_packages(lib_root, args.tk_base, args.release,
286-
args.platform, TK_PKGS)
287-
288-
if not is_installed:
289-
get_packages(lib_root, args.tk_base, args.release, 'linux-64',
290-
[TK_PACKAGE_NAME], versions_only=True)
314+
if args.platform.lower() in ("linux-64", "win-64"):
315+
print_err("***** main : binary supported on platform {}".format(args.platform))
316+
is_installed = get_packages(lib_root, args.tk_base, args.release,
317+
args.platform, TK_PKGS)
318+
319+
if not is_installed:
320+
print_err(("***** main : get_packages failed to get TK packages. "
321+
"Retrying with just placeholder files."))
322+
get_packages(lib_root, args.tk_base, args.release, 'linux-64',
323+
[TK_PACKAGE_NAME], versions_only=True)
324+
else:
325+
print_err("***** main : REST ONLY platform {}".format(args.platform))
326+
is_installed = False
327+
create_restonly_placeholders(lib_root)
291328

292329
update_tk_version(args.root, is_installed and args.release or 'none')
293330

0 commit comments

Comments
 (0)