Class PyUtilities
java.lang.Object
com.inductiveautomation.ignition.common.PyUtilities
-
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisIterable(@NonNull org.python.core.PyObject pyObject) Predicate that returns true if the provided object is iterable - which is a superset of sequences, as an iterable doesn't have to be sized.static booleanisSequence(@NonNull 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 booleanisString(@NonNull org.python.core.PyObject pyObject) Simple predicate that returns true if the provided object is a Python string (ie, inherits fromPyBaseString.static org.python.core.PyExceptionTranslates a Java exception into a Python exception, retaining stacktrace information.static Stream<org.python.core.PyObject>stream(@NonNull org.python.core.PyObject pyObject) Stream items frompyObject.static Stream<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>> streamEntries(@NonNull org.python.core.PyObject pyObject) Stream entries frompyObject, in a key: valuePair.static Collector<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>, Object, org.python.core.PyDictionary> Collect a stream ofPairs of PyObjects into a new PyDictionary.toPyDictionary(@NonNull Function<T, ?> keyExtractor, @NonNull Function<T, ?> valueExtractor) Collect a stream ofTinto a new PyDictionary.toPyList()Collect a stream into a new PyList.static org.python.core.PyTupleConstructs a new PyTuple instance from the provided items.
-
Method Details
-
isString
public static boolean isString(@NonNull 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(@NonNull 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. -
isIterable
public static boolean isIterable(@NonNull org.python.core.PyObject pyObject) Predicate that returns true if the provided object is iterable - which is a superset of sequences, as an iterable doesn't have to be sized. Returns true for strings as well. -
stream
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 Stream<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>> streamEntries(@NonNull org.python.core.PyObject pyObject) Stream entries frompyObject, in a key: valuePair.- Throws:
org.python.core.PyException- TypeError if provided PyObject is not iterable.IllegalArgumentException- if provided PyObject is not a mapping type.
-
toPyList
Collect a stream into a new PyList. -
toPyDictionary
public static <T> Collector<T,Object, toPyDictionaryorg.python.core.PyDictionary> (@NonNull Function<T, ?> keyExtractor, @NonNull Function<T, ?> valueExtractor) Collect a stream ofTinto a new PyDictionary.- Type Parameters:
T- The incoming type, egMap.EntryorPair.- 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.
-
toPyDictionary
public static Collector<org.apache.commons.lang3.tuple.Pair<org.python.core.PyObject,org.python.core.PyObject>, toPyDictionary()Object, org.python.core.PyDictionary> Collect a stream ofPairs of PyObjects into a new PyDictionary.- Returns:
- a new
PyDictionary.
-
tupleOf
Constructs a new PyTuple instance from the provided items. Each item in the input array is converted to a PyObject usingPy.java2py.- Parameters:
items- the objects to be included in the tuple; must not be null.
-
javaError
public static org.python.core.PyException javaError(@NonNull org.python.core.PyObject type, @NonNull Throwable error) Translates a Java exception into a Python exception, retaining stacktrace information. UnlikePy.JavaError(Throwable), Jython callers can catch exceptions thrown as the provided exception type.- Parameters:
type- The Python exception type, egPy.ValueError.error- The Java exception.- Returns:
- a new
PyExceptionto throw. - See Also:
-
Py.JavaError(Throwable)
-