inoki-giskard commited on
Commit
a872114
1 Parent(s): 72b7e81

Add isolated env

Browse files
Files changed (1) hide show
  1. isolated_env.py +21 -21
isolated_env.py CHANGED
@@ -1,34 +1,34 @@
1
  import os
2
  import subprocess
3
 
4
- # Must have:
5
- # - giskard
6
- # - giskard_cicd
7
- # How to know the other deps?
8
- def prepare_venv(model_id, deps):
9
  python_executable = "python"
10
- venv_base = f"tmp/venvs/{model_id}"
11
 
12
  pip_executable = os.path.join(venv_base, "bin", "pip")
13
  # Check pyver
14
- subprocess.run([python_executable, "--version"])
 
 
 
 
15
  # Create venv
16
- subprocess.run([python_executable, "-m", "venv", venv_base, "--clear"])
 
 
 
 
17
  # Output requirements.txt
18
  requirement_file = os.path.join(venv_base, "requirements.txt")
19
  with open(requirement_file, "w") as f:
20
  f.writelines(deps)
21
  # Install deps
22
- subprocess.run([pip_executable, "install", "-r", requirement_file])
23
-
24
-
25
- # Need a file to run model, dataset to get the results back
26
- # Need to run `giskard_scanner ...` in the environment
27
- def run_venv(ver, port):
28
- python_ver = list(str(v) for v in ver)
29
- python_executable = "python" + (".".join(python_ver[:2]))
30
- print(f"{python_executable} started: {time.time()}")
31
- venv_base = "giskard-home/venvs/" + python_executable + "/123456789"
32
- executable = os.path.join(venv_base, "bin", "python")
33
- # Run
34
- subprocess.Popen([executable, "giskard_venv_boostrap.py", str(port)])
 
1
  import os
2
  import subprocess
3
 
4
+ from io_utils import write_log_to_user_file
5
+
6
+
7
+ def prepare_venv(execution_id, deps):
 
8
  python_executable = "python"
9
+ venv_base = f"tmp/venvs/{execution_id}"
10
 
11
  pip_executable = os.path.join(venv_base, "bin", "pip")
12
  # Check pyver
13
+ write_log_to_user_file(execution_id, "Checking Python version")
14
+ p = subprocess.run([python_executable, "--version"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
15
+ write_log_to_user_file(execution_id, p.stdout.decode())
16
+ if p.returncode != 0:
17
+ raise RuntimeError(f"{p.args} ended with {p.returncode}")
18
  # Create venv
19
+ write_log_to_user_file(execution_id, "Creating virtual environment")
20
+ p = subprocess.run([python_executable, "-m", "venv", venv_base, "--clear"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
21
+ write_log_to_user_file(execution_id, p.stdout.decode())
22
+ if p.returncode != 0:
23
+ raise RuntimeError(f"{p.args} ended with {p.returncode}")
24
  # Output requirements.txt
25
  requirement_file = os.path.join(venv_base, "requirements.txt")
26
  with open(requirement_file, "w") as f:
27
  f.writelines(deps)
28
  # Install deps
29
+ write_log_to_user_file(execution_id, "Installing dependencies")
30
+ p = subprocess.run([pip_executable, "install", "-r", requirement_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
31
+ write_log_to_user_file(execution_id, p.stdout.decode())
32
+ if p.returncode != 0:
33
+ raise RuntimeError(f"{p.args} ended with {p.returncode}")
34
+ return os.path.join(venv_base, "bin", "giskard_scanner")