data-science-ipython-notebooks/core/type_util.py

25 lines
676 B
Python
Raw Normal View History

class Util:
@classmethod
def is_iterable(cls, obj):
2015-01-24 20:08:07 +08:00
"""Determines if obj is iterable.
Useful when writing functions that can accept multiple types of
input (list, tuple, ndarray, iterator). Pairs well with
convert_to_list.
"""
try:
iter(obj)
return True
except TypeError:
return False
@classmethod
def convert_to_list(cls, obj):
2015-01-24 20:08:07 +08:00
"""Converts obj to a list if it is not a list and it is iterable, else
returns the original obj.
"""
if not isinstance(obj, list) and cls.is_iterable(obj):
obj = list(obj)
return obj