Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
"""Fake uv executable used by behavioral Windows installer tests."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
|
||||
|
||||
_FAKE_UV = r'''
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
public static class FakeUv {
|
||||
public static int Main(string[] args) {
|
||||
if (Path.GetFileName(Environment.GetCommandLineArgs()[0]).Equals(
|
||||
"python.exe", StringComparison.OrdinalIgnoreCase)) {
|
||||
Console.WriteLine(Environment.GetEnvironmentVariable("FAKE_PYTHON_VERSION")
|
||||
?? "Python 3.11.0");
|
||||
return 0;
|
||||
}
|
||||
|
||||
File.AppendAllText(Environment.GetEnvironmentVariable("FAKE_UV_LOG"),
|
||||
string.Join(" ", args) + Environment.NewLine);
|
||||
|
||||
if (args.Length >= 2 && args[0] == "python" && args[1] == "find") {
|
||||
string findDelayMs = Environment.GetEnvironmentVariable(
|
||||
"FAKE_UV_FIND_DELAY_MS");
|
||||
if (!string.IsNullOrEmpty(findDelayMs)) {
|
||||
System.Threading.Thread.Sleep(int.Parse(findDelayMs));
|
||||
}
|
||||
string stderrBytes = Environment.GetEnvironmentVariable(
|
||||
"FAKE_UV_FIND_STDERR_BYTES");
|
||||
if (!string.IsNullOrEmpty(stderrBytes)) {
|
||||
Console.Error.Write(new string('x', int.Parse(stderrBytes)));
|
||||
}
|
||||
bool managed = args.Contains("--managed-python");
|
||||
string availableVersion = Environment.GetEnvironmentVariable(
|
||||
"FAKE_MANAGED_PYTHON_VERSION");
|
||||
if (managed && !string.IsNullOrEmpty(availableVersion)
|
||||
&& (args.Length < 3 || args[2] != availableVersion)) {
|
||||
return 1;
|
||||
}
|
||||
Console.WriteLine(Environment.GetEnvironmentVariable(
|
||||
managed ? "FAKE_MANAGED_PYTHON" : "FAKE_THIRD_PARTY_PYTHON"));
|
||||
return 0;
|
||||
}
|
||||
if (args.Length >= 2 && args[0] == "python" && args[1] == "install") {
|
||||
return 0;
|
||||
}
|
||||
if (args.Length >= 2 && args[0] == "venv" && args[1] == "venv") {
|
||||
string forcedExit = Environment.GetEnvironmentVariable("FAKE_UV_VENV_EXIT");
|
||||
if (!string.IsNullOrEmpty(forcedExit)) {
|
||||
return int.Parse(forcedExit);
|
||||
}
|
||||
string managedPython = Environment.GetEnvironmentVariable("FAKE_MANAGED_PYTHON");
|
||||
int pythonAt = Array.IndexOf(args, "--python");
|
||||
bool correctPython = pythonAt >= 0 && pythonAt + 1 < args.Length
|
||||
&& string.Equals(args[pythonAt + 1], managedPython,
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
if (!correctPython || !args.Contains("--managed-python")
|
||||
|| !args.Contains("--no-python-downloads")) {
|
||||
return 42;
|
||||
}
|
||||
string scripts = Path.Combine(Environment.CurrentDirectory, "venv", "Scripts");
|
||||
Directory.CreateDirectory(scripts);
|
||||
File.Copy(managedPython, Path.Combine(scripts, "python.exe"), true);
|
||||
return 0;
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
'''
|
||||
|
||||
|
||||
def compile_fake_uv(powershell: str, output: Path) -> None:
|
||||
source = output.with_suffix(".cs")
|
||||
source.write_text(_FAKE_UV, encoding="utf-8")
|
||||
compile_script = output.with_name("compile-fake-uv.ps1")
|
||||
compile_script.write_text(
|
||||
"param([string]$Source, [string]$Output)\n"
|
||||
"Add-Type -Path $Source -OutputAssembly $Output "
|
||||
"-OutputType ConsoleApplication\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
subprocess.run(
|
||||
[
|
||||
powershell,
|
||||
"-NoProfile",
|
||||
"-ExecutionPolicy",
|
||||
"Bypass",
|
||||
"-File",
|
||||
str(compile_script),
|
||||
"-Source",
|
||||
str(source),
|
||||
"-Output",
|
||||
str(output),
|
||||
],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
Reference in New Issue
Block a user