Skip to content

Commit 280ae3a

Browse files
committed
do the minimum we can do to have pip resolve and start installing a wheel
1 parent 648a34a commit 280ae3a

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/WinregModuleBuiltins.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@
4545
import com.oracle.graal.python.annotations.ArgumentClinic;
4646
import com.oracle.graal.python.builtins.Builtin;
4747
import com.oracle.graal.python.builtins.CoreFunctions;
48+
import com.oracle.graal.python.builtins.Python3Core;
4849
import com.oracle.graal.python.builtins.PythonBuiltins;
4950
import com.oracle.graal.python.builtins.PythonOS;
5051
import com.oracle.graal.python.builtins.objects.exception.OSErrorEnum;
5152
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
53+
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
5254
import com.oracle.graal.python.nodes.function.builtins.PythonQuaternaryClinicBuiltinNode;
5355
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
5456
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
@@ -63,6 +65,18 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
6365
return WinregModuleBuiltinsFactory.getFactories();
6466
}
6567

68+
private static final int HKEY_CURRENT_USER = 1;
69+
private static final int HKEY_LOCAL_MACHINE = 2;
70+
private static final int HKEY_CLASSES_ROOT = 3;
71+
72+
@Override
73+
public void initialize(Python3Core core) {
74+
super.initialize(core);
75+
addBuiltinConstant("HKEY_CURRENT_USER", HKEY_CURRENT_USER);
76+
addBuiltinConstant("HKEY_LOCAL_MACHINE", HKEY_LOCAL_MACHINE);
77+
addBuiltinConstant("HKEY_CLASSES_ROOT", HKEY_CLASSES_ROOT);
78+
}
79+
6680
@Builtin(name = "OpenKey", minNumOfPositionalArgs = 2, parameterNames = {"key", "sub_key", "reserved", "access"})
6781
@ArgumentClinic(name = "reserved", defaultValue = "0")
6882
@ArgumentClinic(name = "access", defaultValue = "131097")
@@ -76,6 +90,21 @@ protected ArgumentClinicProvider getArgumentClinic() {
7690
@SuppressWarnings("unused")
7791
@Specialization
7892
Object openKey(VirtualFrame frame, Object key, Object subKey, Object reserved, Object access) {
93+
if (key instanceof Integer intKey) {
94+
if (intKey == HKEY_CLASSES_ROOT) {
95+
return factory().createLock();
96+
}
97+
}
98+
throw raiseOSError(frame, OSErrorEnum.ENOENT);
99+
}
100+
}
101+
102+
@Builtin(name = "EnumKey", minNumOfPositionalArgs = 2, parameterNames = {"key", "index"})
103+
@GenerateNodeFactory
104+
public abstract static class EnumKeyNode extends PythonBinaryBuiltinNode {
105+
@SuppressWarnings("unused")
106+
@Specialization
107+
Object enumKey(VirtualFrame frame, Object key, Object index) {
79108
throw raiseOSError(frame, OSErrorEnum.ENOENT);
80109
}
81110
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/common/CExtContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
import java.io.IOException;
5555

56+
import com.oracle.graal.python.builtins.PythonOS;
5657
import org.graalvm.shadowed.com.ibm.icu.impl.Punycode;
5758
import org.graalvm.shadowed.com.ibm.icu.text.StringPrepParseException;
5859
import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext;
@@ -389,6 +390,12 @@ public static Object loadCExtModule(Node location, PythonContext context, Module
389390
}
390391

391392
private static boolean isForcedLLVM(String name) {
393+
if (PythonOS.getPythonOS() == PythonOS.PLATFORM_WIN32 &&
394+
("_cpython_unicodedata".equals(name) || "_cpython_sre".equals(name) || "_sqlite3".equals(name))) {
395+
// We build these internal extensions with the LLVM toolchain and link against the bitcode python-native,
396+
// not the fully native pythonjni. We cannot load them natively on Windows like that.
397+
return true;
398+
}
392399
return "_mmap".equals(name) || "_cpython_struct".equals(name);
393400
}
394401

graalpython/lib-python/3/asyncio/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@
3636
transports.__all__)
3737

3838
if sys.platform == 'win32': # pragma: no cover
39-
from .windows_events import *
40-
__all__ += windows_events.__all__
39+
# Truffle change: windows_events relies on features we haven't implemented yet
40+
pass
41+
# from .windows_events import *
42+
# __all__ += windows_events.__all__
4143
else:
4244
from .unix_events import * # pragma: no cover
4345
__all__ += unix_events.__all__

0 commit comments

Comments
 (0)