Source code for koapy.backend.kiwoom_open_api_plus.utils.list_conversion

import collections

from functools import wraps
from inspect import signature


[docs]def string_to_list(s, sep=";"): if s is None: return s if not isinstance(s, str) and isinstance(s, collections.abc.Iterable): return s return s.rstrip(sep).split(sep) if s else []
[docs]def list_to_string(l, sep=";"): if l is None: return l if isinstance(l, str): return l if not isinstance(l, collections.abc.Iterable): return l return sep.join(l) if l else ""
[docs]def convert_list_arguments(*indices): def decorator(f): sig = signature(f) names = tuple(sig.parameters.keys()) @wraps(f) def wrapper(*args, **kwargs): ba = sig.bind(*args, **kwargs) ba.apply_defaults() for i in indices: if isinstance(i, int): i = names[i] if isinstance(i, str): ba.arguments[i] = list_to_string(ba.arguments[i]) args = ba.args kwargs = ba.kwargs return f(*args, **kwargs) return wrapper return decorator