Skip to content

Commit 7adee6d

Browse files
committed
[GR-27828] Add integer conversion to os.urandom
PullRequest: graalpython/1437
2 parents a4836b1 + 8b8d850 commit 7adee6d

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
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

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
public final class TimeModuleBuiltins extends PythonBuiltins {
8888
private static final int DELAY_NANOS = 10;
8989
private static final long PERF_COUNTER_START = TruffleOptions.AOT ? 0 : System.nanoTime();
90+
private static final String CTIME_FORMAT = "%s %s %2d %02d:%02d:%02d %d";
9091

9192
@Override
9293
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {
@@ -850,16 +851,14 @@ private static long op(int[] integers) {
850851
@GenerateNodeFactory
851852
public abstract static class CTimeNode extends PythonBuiltinNode {
852853

853-
private static final String FORMAT = "%s %s %2d %02d:%02d:%02d %d";
854-
855854
@Specialization
856855
public String localtime(VirtualFrame frame, Object seconds,
857856
@Cached ToLongTime toLongTime) {
858857
return format(getIntLocalTimeStruct(toLongTime.execute(frame, seconds)));
859858
}
860859

861860
protected static String format(int[] tm) {
862-
return ASCTimeNode.format(FORMAT, tm);
861+
return ASCTimeNode.format(CTIME_FORMAT, tm);
863862
}
864863
}
865864

@@ -868,7 +867,6 @@ protected static String format(int[] tm) {
868867
@GenerateNodeFactory
869868
public abstract static class ASCTimeNode extends PythonBuiltinNode {
870869

871-
private static final String FORMAT = "%s %s %02d %02d:%02d:%02d %d";
872870
static final String[] WDAY_NAME = new String[]{
873871
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
874872
};
@@ -892,7 +890,7 @@ public String localtime(PTuple time,
892890
}
893891

894892
protected static String format(int[] tm) {
895-
return format(FORMAT, tm);
893+
return format(CTIME_FORMAT, tm);
896894
}
897895

898896
@TruffleBoundary

0 commit comments

Comments
 (0)