1 # -*- coding: utf-8 -*-
5 text = u'ab jd sdflk as sa sadas asdas fsdf '
18 # unicode.split(s, [sep, [maxsplit]])
20 @cython.test_assert_path_exists(
21 "//PythonCapiCallNode")
24 >>> print_all( text.split() )
33 >>> print_all( split(text) )
45 @cython.test_assert_path_exists(
46 "//PythonCapiCallNode")
47 def split_sep(unicode s, sep):
49 >>> print_all( text.split(sep) )
53 >>> print_all( split_sep(text, sep) )
60 @cython.test_fail_if_path_exists(
61 "//CoerceToPyTypeNode",
62 "//CastNode", "//TypecastNode")
63 @cython.test_assert_path_exists(
64 "//CoerceFromPyTypeNode",
65 "//PythonCapiCallNode")
66 def split_sep_max(unicode s, sep, max):
68 >>> print_all( text.split(sep, 1) )
70 sdflk as sa sadas asdas fsdf
71 >>> print_all( split_sep_max(text, sep, 1) )
73 sdflk as sa sadas asdas fsdf
75 return s.split(sep, max)
77 @cython.test_fail_if_path_exists(
78 "//CoerceToPyTypeNode", "//CoerceFromPyTypeNode",
79 "//CastNode", "//TypecastNode")
80 @cython.test_assert_path_exists(
81 "//PythonCapiCallNode")
82 def split_sep_max_int(unicode s, sep):
84 >>> print_all( text.split(sep, 1) )
86 sdflk as sa sadas asdas fsdf
87 >>> print_all( split_sep_max_int(text, sep) )
89 sdflk as sa sadas asdas fsdf
91 return s.split(sep, 1)
94 # unicode.splitlines(s, [keepends])
96 @cython.test_assert_path_exists(
97 "//PythonCapiCallNode")
98 def splitlines(unicode s):
100 >>> len(multiline_text.splitlines())
102 >>> print_all( multiline_text.splitlines() )
106 >>> len(splitlines(multiline_text))
108 >>> print_all( splitlines(multiline_text) )
113 return s.splitlines()
115 @cython.test_assert_path_exists(
116 "//PythonCapiCallNode")
117 def splitlines_keep(unicode s, keep):
119 >>> len(multiline_text.splitlines(True))
121 >>> print_all( multiline_text.splitlines(True) )
127 >>> len(splitlines_keep(multiline_text, True))
129 >>> print_all( splitlines_keep(multiline_text, True) )
136 return s.splitlines(keep)
138 @cython.test_fail_if_path_exists(
139 # boolean conversion isn't currently smart enough for this ...
140 # "//CoerceToPyTypeNode", "//CoerceFromPyTypeNode",
141 "//CastNode", "//TypecastNode")
142 @cython.test_assert_path_exists(
143 "//PythonCapiCallNode")
144 def splitlines_keep_bint(unicode s):
146 >>> len(multiline_text.splitlines(True))
148 >>> print_all( multiline_text.splitlines(True) )
154 >>> print_all( multiline_text.splitlines(False) )
158 >>> len(splitlines_keep_bint(multiline_text))
160 >>> print_all( splitlines_keep_bint(multiline_text) )
171 return s.splitlines(True) + ['--'] + s.splitlines(False)
174 # unicode.join(s, iterable)
178 @cython.test_fail_if_path_exists(
179 "//CoerceToPyTypeNode", "//CoerceFromPyTypeNode",
180 "//CastNode", "//TypecastNode")
181 @cython.test_assert_path_exists(
182 "//PythonCapiCallNode")
183 def join(unicode sep, l):
188 >>> print( pipe_sep.join(l) )
189 ab|jd|sdflk|as|sa|sadas|asdas|fsdf
190 >>> print( join(pipe_sep, l) )
191 ab|jd|sdflk|as|sa|sadas|asdas|fsdf
195 @cython.test_fail_if_path_exists(
196 "//CoerceToPyTypeNode", "//CoerceFromPyTypeNode",
197 "//CastNode", "//TypecastNode", "//NoneCheckNode")
198 @cython.test_assert_path_exists(
199 "//PythonCapiCallNode")
205 >>> print( '|'.join(l) )
206 ab|jd|sdflk|as|sa|sadas|asdas|fsdf
207 >>> print( join_sep(l) )
208 ab|jd|sdflk|as|sa|sadas|asdas|fsdf