Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
1b6e7c47
Kaydet (Commit)
1b6e7c47
authored
Eyl 08, 2012
tarafından
R David Murray
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#15510: clarify textwrap's handling of whitespace, and add confirming tests.
Patch by Chris Jerdonek.
üst
b676727d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
68 additions
and
13 deletions
+68
-13
textwrap.rst
Doc/library/textwrap.rst
+13
-6
test_textwrap.py
Lib/test/test_textwrap.py
+55
-7
No files found.
Doc/library/textwrap.rst
Dosyayı görüntüle @
1b6e7c47
...
...
@@ -26,6 +26,9 @@ otherwise, you should use an instance of :class:`TextWrapper` for efficiency.
Optional keyword arguments correspond to the instance attributes of
:class:`TextWrapper`, documented below. *width* defaults to ``70``.
See the :meth:`TextWrapper.wrap` method for additional details on how
:func:`wrap` behaves.
.. function:: fill(text[, width[, ...]])
...
...
@@ -134,9 +137,11 @@ indentation from strings that have unwanted whitespace to the left of the text.
.. attribute:: drop_whitespace
(default: ``True``) If true, whitespace that, after wrapping, happens to
end up at the beginning or end of a line is dropped (leading whitespace in
the first line is always preserved, though).
(default: ``True``) If true, whitespace at the beginning and ending of
every line (after wrapping but before indenting) is dropped.
Whitespace at the beginning of the paragraph, however, is not dropped
if non-whitespace follows it. If whitespace being dropped takes up an
entire line, the whole line is dropped.
.. versionadded:: 2.6
Whitespace was always dropped in earlier versions.
...
...
@@ -145,7 +150,8 @@ indentation from strings that have unwanted whitespace to the left of the text.
.. attribute:: initial_indent
(default: ``''``) String that will be prepended to the first line of
wrapped output. Counts towards the length of the first line.
wrapped output. Counts towards the length of the first line. The empty
string is not indented.
.. attribute:: subsequent_indent
...
...
@@ -208,8 +214,9 @@ indentation from strings that have unwanted whitespace to the left of the text.
Wraps the single paragraph in *text* (a string) so every line is at most
:attr:`width` characters long. All wrapping options are taken from
instance attributes of the :class:`TextWrapper` instance. Returns a list
of output lines, without final newlines.
instance attributes of the :class:`TextWrapper` instance. Returns a list
of output lines, without final newlines. If the wrapped output has no
content, the returned list is empty.
.. method:: fill(text)
...
...
Lib/test/test_textwrap.py
Dosyayı görüntüle @
1b6e7c47
...
...
@@ -66,6 +66,15 @@ class WrapTestCase(BaseTestCase):
"I'm glad to hear it!"
])
self
.
check_wrap
(
text
,
80
,
[
text
])
def
test_empty_string
(
self
):
# Check that wrapping the empty string returns an empty list.
self
.
check_wrap
(
""
,
6
,
[])
self
.
check_wrap
(
""
,
6
,
[],
drop_whitespace
=
False
)
def
test_empty_string_with_initial_indent
(
self
):
# Check that the empty string is not indented.
self
.
check_wrap
(
""
,
6
,
[],
initial_indent
=
"++"
)
self
.
check_wrap
(
""
,
6
,
[],
initial_indent
=
"++"
,
drop_whitespace
=
False
)
def
test_whitespace
(
self
):
# Whitespace munging and end-of-sentence detection
...
...
@@ -323,7 +332,32 @@ What a mess!
[
"blah"
,
" "
,
"(ding"
,
" "
,
"dong),"
,
" "
,
"wubba"
])
def
test_initial_whitespace
(
self
):
def
test_drop_whitespace_false
(
self
):
# Check that drop_whitespace=False preserves whitespace.
# SF patch #1581073
text
=
" This is a sentence with much whitespace."
self
.
check_wrap
(
text
,
10
,
[
" This is a"
,
" "
,
"sentence "
,
"with "
,
"much white"
,
"space."
],
drop_whitespace
=
False
)
def
test_drop_whitespace_false_whitespace_only
(
self
):
# Check that drop_whitespace=False preserves a whitespace-only string.
self
.
check_wrap
(
" "
,
6
,
[
" "
],
drop_whitespace
=
False
)
def
test_drop_whitespace_false_whitespace_only_with_indent
(
self
):
# Check that a whitespace-only string gets indented (when
# drop_whitespace is False).
self
.
check_wrap
(
" "
,
6
,
[
" "
],
drop_whitespace
=
False
,
initial_indent
=
" "
)
def
test_drop_whitespace_whitespace_only
(
self
):
# Check drop_whitespace on a whitespace-only string.
self
.
check_wrap
(
" "
,
6
,
[])
def
test_drop_whitespace_leading_whitespace
(
self
):
# Check that drop_whitespace does not drop leading whitespace (if
# followed by non-whitespace).
# SF bug #622849 reported inconsistent handling of leading
# whitespace; let's test that a bit, shall we?
text
=
" This is a sentence with leading whitespace."
...
...
@@ -332,13 +366,27 @@ What a mess!
self
.
check_wrap
(
text
,
30
,
[
" This is a sentence with"
,
"leading whitespace."
])
def
test_
no_drop_whitespac
e
(
self
):
#
SF patch #1581073
text
=
" This is a sentence with much whitespace."
self
.
check_wrap
(
text
,
10
,
[
" This is a"
,
" "
,
"sentence "
,
"with "
,
"much white"
,
"space.
"
],
def
test_
drop_whitespace_whitespace_lin
e
(
self
):
#
Check that drop_whitespace skips the whole line if a non-leading
# line consists only of whitespace.
text
=
"abcd efgh"
# Include the result for drop_whitespace=False for comparison.
self
.
check_wrap
(
text
,
6
,
[
"abcd"
,
" "
,
"efgh
"
],
drop_whitespace
=
False
)
self
.
check_wrap
(
text
,
6
,
[
"abcd"
,
"efgh"
])
def
test_drop_whitespace_whitespace_only_with_indent
(
self
):
# Check that initial_indent is not applied to a whitespace-only
# string. This checks a special case of the fact that dropping
# whitespace occurs before indenting.
self
.
check_wrap
(
" "
,
6
,
[],
initial_indent
=
"++"
)
def
test_drop_whitespace_whitespace_indent
(
self
):
# Check that drop_whitespace does not drop whitespace indents.
# This checks a special case of the fact that dropping whitespace
# occurs before indenting.
self
.
check_wrap
(
"abcd efgh"
,
6
,
[
" abcd"
,
" efgh"
],
initial_indent
=
" "
,
subsequent_indent
=
" "
)
if
test_support
.
have_unicode
:
def
test_unicode
(
self
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment