Class PyUtilities
- java.lang.Object
-
- com.inductiveautomation.ignition.common.PyUtilities
-
public final class PyUtilities extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
isSequence(org.python.core.PyObject pyObject)
Predicate that returns true if the provided object is a sequence, per Java convention - meaning, strings are not considered sequences.static boolean
isString(org.python.core.PyObject pyObject)
Simple predicate that returns true if the provided object is a Python string (ie, inherits fromPyBaseString
.static java.util.stream.Stream<org.python.core.PyObject>
stream(org.python.core.PyObject pyObject)
Stream items frompyObject
.static java.util.stream.Stream<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>>
streamEntries(org.python.core.PyObject pyObject)
Stream entries frompyObject
, in a key: valuePair
.static <T> java.util.stream.Collector<T,java.lang.Object,org.python.core.PyDictionary>
toPyDictionary(java.util.function.Function<T,?> keyExtractor, java.util.function.Function<T,?> valueExtractor)
Collect a stream ofT
into a new PyDictionary.static java.util.stream.Collector<org.python.core.PyObject,java.lang.Object,org.python.core.PyList>
toPyList()
Collect a stream into a new PyList.
-
-
-
Method Detail
-
isString
public static boolean isString(org.python.core.PyObject pyObject)
Simple predicate that returns true if the provided object is a Python string (ie, inherits fromPyBaseString
.
-
isSequence
public static boolean isSequence(org.python.core.PyObject pyObject)
Predicate that returns true if the provided object is a sequence, per Java convention - meaning, strings are not considered sequences.
-
stream
public static java.util.stream.Stream<org.python.core.PyObject> stream(org.python.core.PyObject pyObject)
Stream items frompyObject
. Per Python behavior, will stream characters one-by-one in a string.- Throws:
org.python.core.PyException
- TypeError if provided PyObject is not iterable.
-
streamEntries
public static java.util.stream.Stream<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>> streamEntries(org.python.core.PyObject pyObject)
Stream entries frompyObject
, in a key: valuePair
.- Throws:
org.python.core.PyException
- TypeError if provided PyObject is not iterable.java.lang.IllegalArgumentException
- if provided PyObject is not a mapping type.
-
toPyList
public static java.util.stream.Collector<org.python.core.PyObject,java.lang.Object,org.python.core.PyList> toPyList()
Collect a stream into a new PyList.
-
toPyDictionary
public static <T> java.util.stream.Collector<T,java.lang.Object,org.python.core.PyDictionary> toPyDictionary(java.util.function.Function<T,?> keyExtractor, java.util.function.Function<T,?> valueExtractor)
Collect a stream ofT
into a new PyDictionary.- Type Parameters:
T
- The incoming type, egMap.Entry
orPair
.- Parameters:
keyExtractor
- The key extractor, egMap.Entry.getKey()
. Should not return a PyObject directly.valueExtractor
- The value extractor, egMap.Entry.getValue()
. Should not return a PyObject directly.- Returns:
- a new
PyDictionary
.
-
-