16
16
from robot .errors import DataError
17
17
from robot .utils import file_writer
18
18
19
- from .transformers import Aligner , Cleaner , Formatter , SeparatorRemover
19
+ from .transformers import Aligner , Cleaner , Formatter , SeparatorCleaner , PipeAdder , NewlineAdder
20
20
21
21
22
22
class DataFileWriter (object ):
@@ -39,8 +39,12 @@ def write(self, model):
39
39
"""
40
40
41
41
with WritingContext (model , ** self ._options ) as ctx :
42
- SeparatorRemover ().visit (model )
43
42
Cleaner ().visit (model )
43
+ NewlineAdder ().visit (model )
44
+ if ctx .pipe_separated :
45
+ PipeAdder ().visit (model )
46
+ else :
47
+ SeparatorCleaner (ctx ).visit (model )
44
48
Aligner (ctx ).visit (model )
45
49
Formatter (ctx , RowWriter (ctx )).visit (model )
46
50
@@ -112,24 +116,7 @@ class RowWriter(object):
112
116
113
117
def __init__ (self , ctx ):
114
118
self .output = ctx .output
115
- self .pipes = ctx .pipe_separated
116
- self .separator , self .indent_string = self .get_separator_and_indent (ctx )
117
119
118
- def get_separator_and_indent (self , ctx ):
119
- if ctx .pipe_separated :
120
- return ' | ' , ' | '
121
- separator = ' ' * ctx .txt_separating_spaces
122
- return separator , separator
123
-
124
- def write (self , tokens , indent ):
125
- indent = indent * self .indent_string
120
+ def write (self , tokens ):
126
121
values = [t .value for t in tokens ]
127
- row = indent + self .separator .join (values )
128
- if self .pipes :
129
- row = '| ' + row + ' |'
130
- else :
131
- row = row .rstrip ()
132
- self .output .write (row )
133
-
134
- def write_newline (self ):
135
- self .output .write ('\n ' )
122
+ self .output .write ('' .join (values ).rstrip (' ' ))
0 commit comments