Skip to content

Commit 8642f56

Browse files
committed
move _functools classes into a package
1 parent 7b19d34 commit 8642f56

File tree

9 files changed

+82
-60
lines changed

9 files changed

+82
-60
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/Python3Core.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
import com.oracle.graal.python.builtins.modules.ErrnoModuleBuiltins;
7676
import com.oracle.graal.python.builtins.modules.FaulthandlerModuleBuiltins;
7777
import com.oracle.graal.python.builtins.modules.FcntlModuleBuiltins;
78-
import com.oracle.graal.python.builtins.modules.FunctoolsModuleBuiltins;
7978
import com.oracle.graal.python.builtins.modules.GcModuleBuiltins;
8079
import com.oracle.graal.python.builtins.modules.GraalHPyDebugModuleBuiltins;
8180
import com.oracle.graal.python.builtins.modules.GraalHPyUniversalModuleBuiltins;
@@ -158,6 +157,9 @@
158157
import com.oracle.graal.python.builtins.modules.ctypes.StructUnionTypeBuiltins;
159158
import com.oracle.graal.python.builtins.modules.ctypes.StructureBuiltins;
160159
import com.oracle.graal.python.builtins.modules.ctypes.UnionTypeBuiltins;
160+
import com.oracle.graal.python.builtins.modules.functools.FunctoolsModuleBuiltins;
161+
import com.oracle.graal.python.builtins.modules.functools.KeyWrapperBuiltins;
162+
import com.oracle.graal.python.builtins.modules.functools.PartialBuiltins;
161163
import com.oracle.graal.python.builtins.modules.hashlib.Blake2ModuleBuiltins;
162164
import com.oracle.graal.python.builtins.modules.hashlib.Blake2bObjectBuiltins;
163165
import com.oracle.graal.python.builtins.modules.hashlib.Blake2sObjectBuiltins;
@@ -280,7 +282,6 @@
280282
import com.oracle.graal.python.builtins.objects.itertools.TeeBuiltins;
281283
import com.oracle.graal.python.builtins.objects.itertools.TeeDataObjectBuiltins;
282284
import com.oracle.graal.python.builtins.objects.itertools.ZipLongestBuiltins;
283-
import com.oracle.graal.python.builtins.objects.keywrapper.KeyWrapperBuiltins;
284285
import com.oracle.graal.python.builtins.objects.list.ListBuiltins;
285286
import com.oracle.graal.python.builtins.objects.list.PList;
286287
import com.oracle.graal.python.builtins.objects.map.MapBuiltins;
@@ -302,7 +303,6 @@
302303
import com.oracle.graal.python.builtins.objects.namespace.SimpleNamespaceBuiltins;
303304
import com.oracle.graal.python.builtins.objects.object.ObjectBuiltins;
304305
import com.oracle.graal.python.builtins.objects.object.PythonObject;
305-
import com.oracle.graal.python.builtins.objects.partial.PartialBuiltins;
306306
import com.oracle.graal.python.builtins.objects.posix.DirEntryBuiltins;
307307
import com.oracle.graal.python.builtins.objects.posix.ScandirIteratorBuiltins;
308308
import com.oracle.graal.python.builtins.objects.property.PropertyBuiltins;
@@ -455,8 +455,6 @@ private static PythonBuiltins[] initializeBuiltins(boolean nativeAccessAllowed)
455455
new TypeBuiltins(),
456456
new IntBuiltins(),
457457
new ForeignObjectBuiltins(),
458-
new KeyWrapperBuiltins(),
459-
new PartialBuiltins(),
460458
new ListBuiltins(),
461459
new DictBuiltins(),
462460
new DictReprBuiltin(),
@@ -579,7 +577,12 @@ private static PythonBuiltins[] initializeBuiltins(boolean nativeAccessAllowed)
579577

580578
new StringModuleBuiltins(),
581579
new ItertoolsModuleBuiltins(),
580+
581+
// _functools
582+
new KeyWrapperBuiltins(),
583+
new PartialBuiltins(),
582584
new FunctoolsModuleBuiltins(),
585+
583586
new ErrnoModuleBuiltins(),
584587
new CodecsModuleBuiltins(),
585588
new CodecsTruffleModuleBuiltins(),
@@ -976,6 +979,7 @@ public final void postInitialize() {
976979
if (!PythonOptions.AUTOMATIC_ASYNC_ACTIONS) {
977980
if (getContext().getEnv().isPolyglotBindingsAccessAllowed()) {
978981
getContext().getEnv().exportSymbol("PollPythonAsyncActions", getContext().getEnv().asGuestValue(new Runnable() {
982+
@Override
979983
public void run() {
980984
getContext().pollAsyncActions();
981985
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/FunctoolsModuleBuiltins.java renamed to graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/functools/FunctoolsModuleBuiltins.java

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@
3838
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
* SOFTWARE.
4040
*/
41-
package com.oracle.graal.python.builtins.modules;
41+
package com.oracle.graal.python.builtins.modules.functools;
4242

43-
import static com.oracle.graal.python.builtins.objects.partial.PartialBuiltins.getNewPartialArgs;
43+
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.PythonObject;
4444
import static com.oracle.graal.python.nodes.BuiltinNames.J_PARTIAL;
4545
import static com.oracle.graal.python.nodes.ErrorMessages.REDUCE_EMPTY_SEQ;
4646
import static com.oracle.graal.python.nodes.ErrorMessages.S_ARG_MUST_BE_CALLABLE;
4747
import static com.oracle.graal.python.nodes.ErrorMessages.S_ARG_N_MUST_SUPPORT_ITERATION;
4848
import static com.oracle.graal.python.nodes.ErrorMessages.TYPE_S_TAKES_AT_LEAST_ONE_ARGUMENT;
49+
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___INIT__;
4950
import static com.oracle.truffle.api.nodes.LoopNode.reportLoopCount;
5051

5152
import java.util.List;
@@ -61,7 +62,6 @@
6162
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageLen;
6263
import com.oracle.graal.python.builtins.objects.dict.PDict;
6364
import com.oracle.graal.python.builtins.objects.function.PKeyword;
64-
import com.oracle.graal.python.builtins.objects.partial.PPartial;
6565
import com.oracle.graal.python.lib.GetNextNode;
6666
import com.oracle.graal.python.lib.PyCallableCheckNode;
6767
import com.oracle.graal.python.lib.PyObjectGetIter;
@@ -76,6 +76,7 @@
7676
import com.oracle.graal.python.runtime.exception.PException;
7777
import com.oracle.graal.python.util.PythonUtils;
7878
import com.oracle.truffle.api.CompilerDirectives;
79+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
7980
import com.oracle.truffle.api.dsl.Bind;
8081
import com.oracle.truffle.api.dsl.Cached;
8182
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
@@ -271,3 +272,64 @@ Object noCallable(Object cls, Object[] args, PKeyword[] keywords) {
271272
}
272273
}
273274
}
275+
276+
@CoreFunctions(extendClasses = PythonBuiltinClassType.LsprofProfiler)
277+
class ProfilerBuiltins extends PythonBuiltins {
278+
@Override
279+
protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFactories() {
280+
return ProfilerBuiltinsFactory.getFactories();
281+
}
282+
283+
@Builtin(name = J___INIT__, minNumOfPositionalArgs = 1, parameterNames = {"$self", "timer", "timeunit", "subcalls", "builtins"})
284+
@GenerateNodeFactory
285+
abstract static class Init extends PythonBuiltinNode {
286+
@Specialization
287+
PNone doit(Profiler self, Object timer, double timeunit, long subcalls, long builtins) {
288+
self.subcalls = subcalls > 0;
289+
self.builtins = builtins > 0;
290+
self.timeunit = timeunit;
291+
self.externalTimer = timer;
292+
return PNone.NONE;
293+
}
294+
295+
@Specialization
296+
@SuppressWarnings("unused")
297+
PNone doit(Profiler self, Object timer, PNone timeunit, PNone subcalls, PNone builtins) {
298+
self.subcalls = true;
299+
self.builtins = true;
300+
self.timeunit = -1;
301+
self.externalTimer = timer;
302+
return PNone.NONE;
303+
}
304+
}
305+
306+
@Builtin(name = "enable", minNumOfPositionalArgs = 1, parameterNames = {"$self", "subcalls", "builtins"})
307+
@GenerateNodeFactory
308+
abstract static class Enable extends PythonBuiltinNode {
309+
@Specialization
310+
@TruffleBoundary
311+
PNone doit(Profiler self, long subcalls, long builtins) {
312+
self.subcalls = subcalls > 0;
313+
self.builtins = builtins > 0;
314+
// TODO: deal with any arguments
315+
self.time = System.currentTimeMillis();
316+
self.sampler.setCollecting(true);
317+
return PNone.NONE;
318+
}
319+
320+
@Specialization
321+
PNone doit(Profiler self, long subcalls, @SuppressWarnings("unused") PNone builtins) {
322+
return doit(self, subcalls, self.builtins ? 1 : 0);
323+
}
324+
325+
@Specialization
326+
PNone doit(Profiler self, @SuppressWarnings("unused") PNone subcalls, long builtins) {
327+
return doit(self, self.subcalls ? 1 : 0, builtins);
328+
}
329+
330+
@Specialization
331+
PNone doit(Profiler self, @SuppressWarnings("unused") PNone subcalls, @SuppressWarnings("unused") PNone builtins) {
332+
return doit(self, self.subcalls ? 1 : 0, self.builtins ? 1 : 0);
333+
}
334+
}
335+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
* SOFTWARE.
4040
*/
41-
package com.oracle.graal.python.builtins.objects.keywrapper;
41+
package com.oracle.graal.python.builtins.modules.functools;
4242

4343
import static com.oracle.graal.python.nodes.ErrorMessages.OTHER_ARG_MUST_BE_KEY;
4444
import static com.oracle.graal.python.nodes.SpecialMethodNames.J___CALL__;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -38,7 +38,7 @@
3838
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
* SOFTWARE.
4040
*/
41-
package com.oracle.graal.python.builtins.objects.keywrapper;
41+
package com.oracle.graal.python.builtins.modules.functools;
4242

4343
import com.oracle.graal.python.builtins.objects.PNone;
4444
import com.oracle.graal.python.builtins.objects.object.PythonBuiltinObject;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
* SOFTWARE.
4040
*/
41-
package com.oracle.graal.python.builtins.objects.partial;
41+
package com.oracle.graal.python.builtins.modules.functools;
4242

4343
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageCopy;
4444
import com.oracle.graal.python.builtins.objects.common.HashingStorageNodes.HashingStorageLen;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3939
* SOFTWARE.
4040
*/
41-
package com.oracle.graal.python.builtins.objects.partial;
41+
package com.oracle.graal.python.builtins.modules.functools;
4242

4343
import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
4444
import static com.oracle.graal.python.nodes.ErrorMessages.INVALID_PARTIAL_STATE;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,6 @@
3939
* SOFTWARE.
4040
*/
4141
@SuppressPackageWarnings({"truffle-inlining", "truffle-sharing", "truffle-limit", "deprecated", "truffle-static-method"})
42-
package com.oracle.graal.python.builtins.objects.partial;
42+
package com.oracle.graal.python.builtins.modules.functools;
4343

4444
import com.oracle.truffle.api.dsl.SuppressPackageWarnings;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/keywrapper/package-info.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/object/PythonObjectFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
import com.oracle.graal.python.builtins.modules.ctypes.StgDictObject;
5858
import com.oracle.graal.python.builtins.modules.ctypes.StructParamObject;
5959
import com.oracle.graal.python.builtins.modules.ctypes.memory.Pointer;
60+
import com.oracle.graal.python.builtins.modules.functools.PKeyWrapper;
61+
import com.oracle.graal.python.builtins.modules.functools.PPartial;
6062
import com.oracle.graal.python.builtins.modules.hashlib.DigestObject;
6163
import com.oracle.graal.python.builtins.modules.io.PBuffered;
6264
import com.oracle.graal.python.builtins.modules.io.PBytesIO;
@@ -152,7 +154,6 @@
152154
import com.oracle.graal.python.builtins.objects.itertools.PTee;
153155
import com.oracle.graal.python.builtins.objects.itertools.PTeeDataObject;
154156
import com.oracle.graal.python.builtins.objects.itertools.PZipLongest;
155-
import com.oracle.graal.python.builtins.objects.keywrapper.PKeyWrapper;
156157
import com.oracle.graal.python.builtins.objects.list.PList;
157158
import com.oracle.graal.python.builtins.objects.list.PList.ListOrigin;
158159
import com.oracle.graal.python.builtins.objects.map.PMap;
@@ -166,7 +167,6 @@
166167
import com.oracle.graal.python.builtins.objects.module.PythonModule;
167168
import com.oracle.graal.python.builtins.objects.namespace.PSimpleNamespace;
168169
import com.oracle.graal.python.builtins.objects.object.PythonObject;
169-
import com.oracle.graal.python.builtins.objects.partial.PPartial;
170170
import com.oracle.graal.python.builtins.objects.posix.PDirEntry;
171171
import com.oracle.graal.python.builtins.objects.posix.PScandirIterator;
172172
import com.oracle.graal.python.builtins.objects.property.PProperty;

0 commit comments

Comments
 (0)