Mercurial > hg > TextShaper
comparison textshaper/decorator.py @ 27:4aba57a33376
add decorator for converting text to lines of text
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 23 Feb 2014 13:54:18 -0800 |
parents | |
children | fd626585c299 |
comparison
equal
deleted
inserted
replaced
26:c23782a7b7ba | 27:4aba57a33376 |
---|---|
1 # -*- coding: utf-8 -*- | |
2 | |
3 """ | |
4 decorators for textshaper | |
5 """ | |
6 | |
7 string = (str, unicode) | |
8 | |
9 class lines(object): | |
10 """ | |
11 allow functions that process lists of lines of text to | |
12 accept strings, lists of lines, or a file-like object | |
13 """ | |
14 | |
15 def __init__(self, function, line_separator='\n'): | |
16 self.function = function | |
17 self.line_separator = line_separator | |
18 | |
19 def __call__(self, text, *args, **kwargs): | |
20 is_string = False | |
21 if isinstance(text, string): | |
22 is_string = True | |
23 text = text.splitlines() | |
24 retval = self.function(*args, **kwargs) | |
25 if is_string: | |
26 return self.line_separator.join(retval) | |
27 return retval |