sync with Atlas
This commit is contained in:
@@ -1,40 +1,48 @@
|
||||
"""
|
||||
>>> clip('banana ', 6)
|
||||
'banana'
|
||||
>>> clip('banana ', 7)
|
||||
'banana'
|
||||
>>> clip('banana ', 5)
|
||||
>>> clip('banana split', 5)
|
||||
'banana'
|
||||
>>> clip('banana split', 6)
|
||||
'banana'
|
||||
>>> clip('banana split', 7)
|
||||
'banana'
|
||||
>>> clip('banana split', 10)
|
||||
>>> clip('banana split', 8)
|
||||
'banana'
|
||||
>>> clip('banana split', 11)
|
||||
'banana'
|
||||
>>> clip('banana split', 12)
|
||||
'banana split'
|
||||
>>> clip('bananasplit', 5)
|
||||
'bananasplit'
|
||||
>>> clip('banana split', 8)
|
||||
'banana'
|
||||
>>> clip('banana-split', 3)
|
||||
'banana-split'
|
||||
|
||||
Jess' tests:
|
||||
|
||||
>>> text = 'The quick brown fox jumps over the lazy dog.'
|
||||
>>> clip14 = clip(text, max_len=14)
|
||||
>>> clip14
|
||||
'The quick'
|
||||
>>> len(clip14)
|
||||
9
|
||||
>>> clip15 = clip(text, max_len=15)
|
||||
>>> clip15
|
||||
'The quick brown'
|
||||
>>> len(clip15)
|
||||
15
|
||||
|
||||
"""
|
||||
|
||||
# tag::CLIP[]
|
||||
def clip(text, max_len=80):
|
||||
"""Return text clipped at the last space before or after max_len"""
|
||||
"""Return max_len characters clipped at space if possible"""
|
||||
text = text.rstrip()
|
||||
end = len(text)
|
||||
if end <= max_len:
|
||||
if len(text) <= max_len or ' ' not in text:
|
||||
return text
|
||||
space_before = text.rfind(' ', 0, max_len)
|
||||
if space_before >= 0:
|
||||
end = space_before
|
||||
end = len(text)
|
||||
space_at = text.rfind(' ', 0, max_len + 1)
|
||||
if space_at >= 0:
|
||||
end = space_at
|
||||
else:
|
||||
space_after = text.find(' ', max_len)
|
||||
if space_after >= 0:
|
||||
end = space_after
|
||||
space_at = text.find(' ', max_len)
|
||||
if space_at >= 0:
|
||||
end = space_at
|
||||
return text[:end].rstrip()
|
||||
# end::CLIP[]
|
||||
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
>>> clip.__code__ # doctest: +ELLIPSIS
|
||||
<code object clip at 0x...>
|
||||
>>> clip.__code__.co_varnames
|
||||
('text', 'max_len', 'end', 'space_before', 'space_after')
|
||||
('text', 'max_len', 'end', 'space_at')
|
||||
>>> clip.__code__.co_argcount
|
||||
2
|
||||
|
||||
Reference in New Issue
Block a user