1 |
commit: a69da1d2747962af84d2ad1e1ec9bc54746d7056 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Fri Aug 30 13:50:28 2013 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Fri Aug 30 13:50:28 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=a69da1d2 |
7 |
|
8 |
util.fileio: strip newlines if preparse is True |
9 |
|
10 |
Strip newline chars ('\n', currently) at the end of each line if preparse is set |
11 |
to True. |
12 |
|
13 |
--- |
14 |
roverlay/util/fileio.py | 27 ++++++++++++++++++++------- |
15 |
1 file changed, 20 insertions(+), 7 deletions(-) |
16 |
|
17 |
diff --git a/roverlay/util/fileio.py b/roverlay/util/fileio.py |
18 |
index c6e33e5..a8d2e01 100644 |
19 |
--- a/roverlay/util/fileio.py |
20 |
+++ b/roverlay/util/fileio.py |
21 |
@@ -30,13 +30,20 @@ SUPPORTED_COMPRESSION = { |
22 |
COMP_BZIP2 : bz2.BZ2File, |
23 |
} |
24 |
|
25 |
+def strip_newline ( s ): |
26 |
+ return s.rstrip ( '\n' ) |
27 |
+# --- end of strip_newline (...) --- |
28 |
|
29 |
def read_compressed_file_handle ( CH, preparse=None ): |
30 |
if preparse is None: |
31 |
for line in CH.readlines(): |
32 |
yield bytes_try_decode ( line ) |
33 |
+ elif preparse is True: |
34 |
+ for line in CH.readlines(): |
35 |
+ yield strip_newline ( bytes_try_decode ( line )) |
36 |
else: |
37 |
- yield preparse ( bytes_try_decode ( line ) ) |
38 |
+ for line in CH.readlines(): |
39 |
+ yield preparse ( bytes_try_decode ( line ) ) |
40 |
# --- end of read_compressed_file_handle (...) --- |
41 |
|
42 |
def read_text_file ( filepath, preparse=None, try_harder=True ): |
43 |
@@ -50,6 +57,7 @@ def read_text_file ( filepath, preparse=None, try_harder=True ): |
44 |
be detected (defaults to True) |
45 |
""" |
46 |
|
47 |
+ |
48 |
ftype = guess_filetype ( filepath ) |
49 |
compress_open = SUPPORTED_COMPRESSION.get ( ftype[1], None ) |
50 |
|
51 |
@@ -82,6 +90,9 @@ def read_text_file ( filepath, preparse=None, try_harder=True ): |
52 |
if preparse is None: |
53 |
for line in FH.readlines(): |
54 |
yield line |
55 |
+ elif preparse is True: |
56 |
+ for line in FH.readlines(): |
57 |
+ yield strip_newline ( line ) |
58 |
else: |
59 |
for line in FH.readlines(): |
60 |
yield preparse ( line ) |
61 |
@@ -91,6 +102,9 @@ def read_text_file ( filepath, preparse=None, try_harder=True ): |
62 |
if preparse is None: |
63 |
for line in FH.readlines(): |
64 |
yield line |
65 |
+ elif preparse is True: |
66 |
+ for line in FH.readlines(): |
67 |
+ yield strip_newline ( line ) |
68 |
else: |
69 |
for line in FH.readlines(): |
70 |
yield preparse ( line ) |
71 |
@@ -117,18 +131,17 @@ def write_text_file ( |
72 |
CH.write ( str ( line ).encode() ) |
73 |
if append_newlines: |
74 |
CH.write ( NL ) |
75 |
- else: |
76 |
- if append_newline_eof: |
77 |
- CH.write ( NL ) |
78 |
+ |
79 |
+ if append_newline_eof: |
80 |
+ CH.write ( NL ) |
81 |
else: |
82 |
with open ( filepath, mode ) as FH: |
83 |
for line in lines: |
84 |
FH.write ( str ( line ) ) |
85 |
if append_newlines: |
86 |
FH.write ( newline ) |
87 |
- else: |
88 |
- if append_newline_eof: |
89 |
- FH.write ( newline ) |
90 |
+ if append_newline_eof: |
91 |
+ FH.write ( newline ) |
92 |
|
93 |
return True |
94 |
# --- end of write_text_file (...) --- |