Add support for ingesting funky dictionary data-types in IREE's python runtime bindings.

PiperOrigin-RevId: 366827405
diff --git a/bindings/python/iree/runtime/system_api.py b/bindings/python/iree/runtime/system_api.py
index 7df27b2..fc7f7aa 100644
--- a/bindings/python/iree/runtime/system_api.py
+++ b/bindings/python/iree/runtime/system_api.py
@@ -154,7 +154,7 @@
     # Exclude None from falling through to blanket np.asarray conversion.
     return value
 
-  if isinstance(value, (list, tuple)):
+  if isinstance(value, (list, tuple, dict)):
     return value
 
   array = np.asarray(value)
diff --git a/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py b/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py
index 5a97fa5..a700395 100644
--- a/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py
+++ b/integrations/tensorflow/bindings/python/iree/tf/support/tf_utils.py
@@ -17,7 +17,7 @@
 import os
 import random
 import re
-from typing import Any, Callable, Sequence, Set, Tuple, Union
+from typing import Any, Callable, Mapping, Sequence, Set, Tuple, Union
 
 from absl import logging
 import iree.runtime
@@ -72,7 +72,7 @@
     return [apply_function(v, function) for v in values]
   elif isinstance(values, tuple):
     return tuple(apply_function(v, function) for v in values)
-  elif isinstance(values, dict):
+  elif isinstance(values, Mapping):
     return {k: apply_function(v, function) for k, v in values.items()}
   else:
     return function(values)