Skip to content

Commit 6ce3328

Browse files
committed
Add integer conversion to os.urandom
Fixes #164
1 parent a4836b1 commit 6ce3328

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@
126126
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryClinicBuiltinNode;
127127
import com.oracle.graal.python.nodes.function.builtins.PythonTernaryBuiltinNode;
128128
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
129+
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryClinicBuiltinNode;
129130
import com.oracle.graal.python.nodes.function.builtins.clinic.ArgumentClinicProvider;
130131
import com.oracle.graal.python.nodes.truffle.PythonArithmeticTypes;
131132
import com.oracle.graal.python.nodes.util.CannotCastException;
@@ -1641,10 +1642,11 @@ private Object rename(VirtualFrame frame, String src, String dst) {
16411642
public abstract static class ReplaceNode extends RenameNode {
16421643
}
16431644

1644-
@Builtin(name = "urandom", minNumOfPositionalArgs = 1)
1645+
@Builtin(name = "urandom", minNumOfPositionalArgs = 1, numOfPositionalOnlyArgs = 1, parameterNames = {"size"})
1646+
@ArgumentClinic(name = "size", conversion = ClinicConversion.Index, defaultValue = "0")
16451647
@GenerateNodeFactory
16461648
@TypeSystemReference(PythonArithmeticTypes.class)
1647-
abstract static class URandomNode extends PythonBuiltinNode {
1649+
abstract static class URandomNode extends PythonUnaryClinicBuiltinNode {
16481650
private static SecureRandom secureRandom;
16491651

16501652
private static SecureRandom createRandomInstance() {
@@ -1666,9 +1668,9 @@ PBytes urandom(int size) {
16661668
return factory().createBytes(bytes);
16671669
}
16681670

1669-
@Fallback
1670-
Object urandomError(Object size) {
1671-
throw raise(TypeError, ErrorMessages.ARG_EXPECTED_GOT, "integer", size);
1671+
@Override
1672+
protected ArgumentClinicProvider getArgumentClinic() {
1673+
return PosixModuleBuiltinsClinicProviders.URandomNodeClinicProviderGen.INSTANCE;
16721674
}
16731675
}
16741676

0 commit comments

Comments
 (0)