Package com.illumon.iris.db.util
Interface PythonScope<PyObj>
- Type Parameters:
PyObj
- the implementation's raw Python object type
- All Known Implementing Classes:
PythonScopeJpyImpl
public interface PythonScope<PyObj>
A collection of methods around retrieving objects from the given Python scope.
The scope is likely coming from some sort of Python dictionary. The scope might be local, global, or other.
-
Method Summary
Modifier and Type Method Description default boolean
containsKey(String name)
Finds out if a variable is in scopeString
convertStringKey(PyObj key)
The helper method to turn a raw key into a string key.Object
convertValue(PyObj value)
The helper method to turn a raw value into an implementation specific object.default Stream<Map.Entry<String,Object>>
getEntries()
Equivalent togetEntriesRaw()
, where the keys have been converted viaconvertStringKey(PyObj)
(PyObj) and the values viaconvertValue(PyObj)
(PyObj)default Map<String,Object>
getEntriesMap()
Equivalent togetEntries()
.collect(someMapCollector)Stream<Map.Entry<PyObj,PyObj>>
getEntriesRaw()
Retrieves all keys and values from the given scope.default Stream<String>
getKeys()
Equivalent togetKeysRaw()
.map(convertStringKey(PyObj)
(PyObj))default Collection<String>
getKeysCollection()
Equivalent togetKeys()
.collect(someCollector)Stream<PyObj>
getKeysRaw()
Retrieves all keys from the give scope.default Optional<Object>
getValue(String name)
Equivalent togetValueRaw(String)
.map(convertValue(PyObj)
(PyObj))default <T> Optional<T>
getValue(String name, Class<T> clazz)
Optional<PyObj>
getValueRaw(String name)
Retrieves a value from the given scope.default <T> Optional<T>
getValueUnchecked(String name)
Equivalent togetValue(String)
.map(x -> (T)x);org.jpy.PyDictWrapper
globals()
-
Method Details
-
getValueRaw
Retrieves a value from the given scope.No conversion is done.
- Parameters:
name
- the name of the python variable- Returns:
- the value, or empty
-
getKeysRaw
Retrieves all keys from the give scope.No conversion is done.
Technically, the keys can be tuples...
- Returns:
- the keys
-
getEntriesRaw
Retrieves all keys and values from the given scope.No conversion is done.
- Returns:
- the keys and values
-
convertStringKey
The helper method to turn a raw key into a string key.Note: this assumes that all the keys are strings, which is not always true. Keys can also be tuples. TODO: revise interface as appropriate if this becomes an issue.
- Parameters:
key
- the raw key- Returns:
- the string key
- Throws:
IllegalArgumentException
- if the key is not a string
-
convertValue
The helper method to turn a raw value into an implementation specific object.This method should NOT convert PyObj of None type to null - we need to preserve the None object so it works with other Optional return values.
- Parameters:
value
- the raw value- Returns:
- the converted object value
-
containsKey
Finds out if a variable is in scope- Parameters:
name
- the name of the python variable- Returns:
- true iff the scope contains the variable
-
getValue
Equivalent togetValueRaw(String)
.map(convertValue(PyObj)
(PyObj))- Parameters:
name
- the name of the python variable- Returns:
- the converted object value, or empty
-
getValue
- Type Parameters:
T
- the return type- Parameters:
name
- the name of the python variableclazz
- the class to cast to- Returns:
- the converted casted value, or empty
-
getValueUnchecked
Equivalent togetValue(String)
.map(x -> (T)x);- Type Parameters:
T
- the return type- Parameters:
name
- the name of the python variable- Returns:
- the converted casted value, or empty
-
getKeys
Equivalent togetKeysRaw()
.map(convertStringKey(PyObj)
(PyObj))- Returns:
- the string keys
-
getEntries
Equivalent togetEntriesRaw()
, where the keys have been converted viaconvertStringKey(PyObj)
(PyObj) and the values viaconvertValue(PyObj)
(PyObj)- Returns:
- the string keys and converted values
-
getKeysCollection
Equivalent togetKeys()
.collect(someCollector)- Returns:
- the string keys, as a collection
-
getEntriesMap
Equivalent togetEntries()
.collect(someMapCollector)- Returns:
- the string keys and converted values, as a map
-
globals
org.jpy.PyDictWrapper globals()
-