diff --git a/import2ledger/util.py b/import2ledger/util.py index 2a859be8e7952f8364604cfb907d27d494a89fde..71635b96daef79978b3d284c3500d9797732737e 100644 --- a/import2ledger/util.py +++ b/import2ledger/util.py @@ -1,4 +1,17 @@ import datetime +import functools + +def _rejoin_slice_words(method_name, source, wordslice, sep=None, limit=None, joiner=None): + if joiner is None: + joiner = ' ' if sep is None else sep + return joiner.join(_slice_words(method_name, source, wordslice, sep, limit)) +rejoin_slice_words = functools.partial(_rejoin_slice_words, 'split') +rejoin_rslice_words = functools.partial(_rejoin_slice_words, 'rsplit') + +def _slice_words(method_name, source, wordslice, sep=None, limit=None): + return getattr(source, method_name)(sep, limit)[wordslice] +slice_words = functools.partial(_slice_words, 'split') +rslice_words = functools.partial(_slice_words, 'rsplit') def strpdate(date_s, date_fmt): return datetime.datetime.strptime(date_s, date_fmt).date()