Package io.deephaven.integrations.python
Class PythonDeephavenSession
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
io.deephaven.integrations.python.PythonDeephavenSession
- All Implemented Interfaces:
io.deephaven.base.log.LogOutputAppendable,io.deephaven.engine.liveness.LivenessManager,io.deephaven.engine.liveness.LivenessNode,io.deephaven.engine.liveness.LivenessReferent,io.deephaven.engine.util.ScriptSession,Serializable
public class PythonDeephavenSession
extends io.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
A ScriptSession that uses a JPy cpython interpreter internally.
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class io.deephaven.engine.util.AbstractScriptSession
io.deephaven.engine.util.AbstractScriptSession.ScriptSessionQueryScope, io.deephaven.engine.util.AbstractScriptSession.SnapshotNested classes/interfaces inherited from interface io.deephaven.engine.util.ScriptSession
io.deephaven.engine.util.ScriptSession.Changes, io.deephaven.engine.util.ScriptSession.Listener -
Field Summary
FieldsFields inherited from class io.deephaven.engine.util.AbstractScriptSession
classCacheDirectory, executionContext -
Constructor Summary
ConstructorsConstructorDescriptionPythonDeephavenSession(io.deephaven.engine.updategraph.UpdateGraph updateGraph, io.deephaven.engine.updategraph.OperationInitializer operationInitializer, io.deephaven.util.thread.ThreadInitializationFactory threadInitializationFactory, io.deephaven.engine.util.PythonScope<?> scope) Creates a Python "ScriptSession", for use where we should only be reading from the scope, such as an IPython kernel session.PythonDeephavenSession(io.deephaven.engine.updategraph.UpdateGraph updateGraph, io.deephaven.engine.updategraph.OperationInitializer operationInitializer, io.deephaven.util.thread.ThreadInitializationFactory threadInitializationFactory, io.deephaven.plugin.type.ObjectTypeLookup objectTypeLookup, @Nullable io.deephaven.engine.util.ScriptSession.Listener listener, boolean runInitScripts, io.deephaven.engine.util.PythonEvaluatorJpy pythonEvaluator) Create a Python ScriptSession. -
Method Summary
Modifier and TypeMethodDescriptionprotected io.deephaven.engine.util.ScriptSession.ChangescreateDiff(PythonDeephavenSession.PythonSnapshot from, PythonDeephavenSession.PythonSnapshot to, RuntimeException e) protected PythonDeephavenSession.PythonSnapshotprotected voidgetAllValues(@Nullable Function<Object, T> valueMapper, io.deephaven.engine.context.QueryScope.ParamFilter<T> filter) protected <T> TgetVariable(String name) protected booleanhasVariable(String name) voidpopScope()voidpushScope(org.jpy.PyObject pydict) protected ObjectsetVariable(String name, @Nullable Object newValue) protected PythonDeephavenSession.PythonSnapshotunwrapObject(@Nullable Object object) Methods inherited from class io.deephaven.engine.util.AbstractScriptSession
applyVariableChangeToDiff, createScriptCache, destroy, evaluateScript, evaluateScript, getExecutionContext, getQueryScope, newClassCacheLocation, observeScopeChanges, publishInitialMethods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScopeMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanageMethods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReferenceMethods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
append, decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, toString, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, tryManageMethods inherited from interface io.deephaven.engine.liveness.LivenessNode
tryUnmanage, tryUnmanage, unmanage, unmanageMethods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReferenceMethods inherited from interface io.deephaven.engine.util.ScriptSession
evaluateScript, sanitizeThrowable
-
Field Details
-
SCRIPT_TYPE
-
-
Constructor Details
-
PythonDeephavenSession
public PythonDeephavenSession(io.deephaven.engine.updategraph.UpdateGraph updateGraph, io.deephaven.engine.updategraph.OperationInitializer operationInitializer, io.deephaven.util.thread.ThreadInitializationFactory threadInitializationFactory, io.deephaven.plugin.type.ObjectTypeLookup objectTypeLookup, @Nullable @Nullable io.deephaven.engine.util.ScriptSession.Listener listener, boolean runInitScripts, io.deephaven.engine.util.PythonEvaluatorJpy pythonEvaluator) throws IOException Create a Python ScriptSession.- Parameters:
updateGraph- the default update graph to install for the reploperationInitializer- the default operation initializer to install for the replobjectTypeLookup- the object type lookuplistener- an optional listener that will be notified whenever the query scope changesrunInitScripts- if init scripts should be executedpythonEvaluator-- Throws:
IOException- if an IO error occurs running initialization scripts
-
PythonDeephavenSession
public PythonDeephavenSession(io.deephaven.engine.updategraph.UpdateGraph updateGraph, io.deephaven.engine.updategraph.OperationInitializer operationInitializer, io.deephaven.util.thread.ThreadInitializationFactory threadInitializationFactory, io.deephaven.engine.util.PythonScope<?> scope) Creates a Python "ScriptSession", for use where we should only be reading from the scope, such as an IPython kernel session.
-
-
Method Details
-
getVariable
protected <T> T getVariable(String name) throws io.deephaven.engine.context.QueryScope.MissingVariableException - Specified by:
getVariablein classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>- Throws:
io.deephaven.engine.context.QueryScope.MissingVariableException
-
pushScope
@ScriptApi public void pushScope(org.jpy.PyObject pydict) -
popScope
@ScriptApi public void popScope() -
evaluate
- Specified by:
evaluatein classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
emptySnapshot
- Specified by:
emptySnapshotin classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
takeSnapshot
- Specified by:
takeSnapshotin classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
createDiff
protected io.deephaven.engine.util.ScriptSession.Changes createDiff(PythonDeephavenSession.PythonSnapshot from, PythonDeephavenSession.PythonSnapshot to, RuntimeException e) - Specified by:
createDiffin classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
getVariableNames
- Specified by:
getVariableNamesin classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
hasVariable
- Specified by:
hasVariablein classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
setVariable
- Specified by:
setVariablein classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
getAllValues
protected <T> Map<String,T> getAllValues(@Nullable @Nullable Function<Object, T> valueMapper, @NotNull io.deephaven.engine.context.QueryScope.ParamFilter<T> filter) - Specified by:
getAllValuesin classio.deephaven.engine.util.AbstractScriptSession<PythonDeephavenSession.PythonSnapshot>
-
scriptType
-
unwrapObject
-