• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

PolyMathOrg / DataFrame / 13409391746

19 Feb 2025 09:30AM UTC coverage: 94.756%. Remained the same
13409391746

push

github

web-flow
Enable Pharo 12 and 13 for the CI

13571 of 14322 relevant lines covered (94.76%)

4.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.77
/src/DataFrame-IO/DataFrameCsvWriter.class.st
1
Class {
2
        #name : #DataFrameCsvWriter,
3
        #superclass : #DataFrameWriter,
4
        #instVars : [
5
                'separator',
6
                'lineEndConvention',
7
                'fieldWriter',
8
                'rowNameEnabled',
9
                'columnNameEnabled'
10
        ],
11
        #category : #'DataFrame-IO-Core'
12
}
13

14
{ #category : #accessing }
15
DataFrameCsvWriter >> columnNameEnabled [
5✔
16

5✔
17
        ^ columnNameEnabled
5✔
18
]
5✔
19

20
{ #category : #accessing }
21
DataFrameCsvWriter >> columnNameEnabled: aBoolean [
5✔
22

5✔
23
        columnNameEnabled := aBoolean = true
5✔
24
]
5✔
25

26
{ #category : #accessing }
27
DataFrameCsvWriter >> defaultColumnIndexEnabled [
5✔
28

5✔
29
        ^ true
5✔
30
]
5✔
31

32
{ #category : #'accessing - field writers' }
33
DataFrameCsvWriter >> defaultFieldWriter [
5✔
34

5✔
35
        ^ nil
5✔
36
]
5✔
37

38
{ #category : #accessing }
39
DataFrameCsvWriter >> defaultLineEndConvention [
5✔
40
        ^ {
5✔
41
                String cr -> #cr.
5✔
42
                String lf -> #lf.
5✔
43
                String crlf -> #crlf
5✔
44
        } asDictionary at: Smalltalk os lineEnding
5✔
45
]
5✔
46

47
{ #category : #accessing }
48
DataFrameCsvWriter >> defaultRowIndexEnabled [
5✔
49

5✔
50
        ^ true
5✔
51
]
5✔
52

53
{ #category : #accessing }
54
DataFrameCsvWriter >> defaultSeparator [
5✔
55
        ^ $,
5✔
56
]
5✔
57

58
{ #category : #'enable/disable' }
59
DataFrameCsvWriter >> disableColumnName [
5✔
60

5✔
61
        self columnNameEnabled: false
5✔
62
]
5✔
63

64
{ #category : #'enable/disable' }
65
DataFrameCsvWriter >> disableRowName [
5✔
66

5✔
67
        self rowNameEnabled: false
5✔
68
]
5✔
69

70
{ #category : #'enable/disable' }
71
DataFrameCsvWriter >> enableColumnName [
×
72

×
73
        self columnNameEnabled: true
×
74
]
×
75

76
{ #category : #'enable/disable' }
77
DataFrameCsvWriter >> enableRowName [
×
78

×
79
        self rowNameEnabled: true
×
80
]
×
81

82
{ #category : #'accessing - field writers' }
83
DataFrameCsvWriter >> fieldWriter [
×
84

×
85
        ^ fieldWriter
×
86
]
×
87

88
{ #category : #'accessing - field writers' }
89
DataFrameCsvWriter >> fieldWriter: aSymbol [
5✔
90

5✔
91
        fieldWriter := aSymbol
5✔
92
]
5✔
93

94
{ #category : #initialization }
95
DataFrameCsvWriter >> initialize [
5✔
96

5✔
97
        super initialize.
5✔
98
        separator := self defaultSeparator.
5✔
99
        lineEndConvention := self defaultLineEndConvention.
5✔
100
        fieldWriter := self defaultFieldWriter.
5✔
101
        rowNameEnabled := self defaultRowIndexEnabled.
5✔
102
        columnNameEnabled := self defaultColumnIndexEnabled
5✔
103
]
5✔
104

105
{ #category : #accessing }
106
DataFrameCsvWriter >> lineEndConvention [
5✔
107
        ^ lineEndConvention
5✔
108
]
5✔
109

110
{ #category : #accessing }
111
DataFrameCsvWriter >> lineEndConvention: aSymbol [
5✔
112
        "Set the end of line convention to be used.
5✔
113
        Either #cr, #lf or #crlf (os convention by default)."
5✔
114

5✔
115
        self assert: (#(cr lf crlf) includes: aSymbol).
5✔
116
        lineEndConvention := aSymbol
5✔
117
]
5✔
118

119
{ #category : #'accessing - field writers' }
120
DataFrameCsvWriter >> objectFieldWriter [
×
121

×
122
        ^ #object
×
123
]
×
124

125
{ #category : #'accessing - field writers' }
126
DataFrameCsvWriter >> optionalQuotedFieldWriter [
×
127

×
128
        ^ #optionalQuoted
×
129
]
×
130

131
{ #category : #'accessing - field writers' }
132
DataFrameCsvWriter >> quotedFieldWriter [
×
133

×
134
        ^ #quoted
×
135
]
×
136

137
{ #category : #'accessing - field writers' }
138
DataFrameCsvWriter >> rawFieldWriter [
5✔
139

5✔
140
        ^ #raw
5✔
141
]
5✔
142

143
{ #category : #accessing }
144
DataFrameCsvWriter >> rowNameEnabled [
5✔
145

5✔
146
        ^ rowNameEnabled
5✔
147
]
5✔
148

149
{ #category : #accessing }
150
DataFrameCsvWriter >> rowNameEnabled: aBoolean [
5✔
151

5✔
152
        rowNameEnabled := aBoolean = true
5✔
153
]
5✔
154

155
{ #category : #accessing }
156
DataFrameCsvWriter >> separator [
5✔
157
        ^ separator
5✔
158
]
5✔
159

160
{ #category : #accessing }
161
DataFrameCsvWriter >> separator: anObject [
5✔
162
        separator := anObject
5✔
163
]
5✔
164

165
{ #category : #'accessing - field writers' }
166
DataFrameCsvWriter >> useObjectFieldWriter [
×
167

×
168
        self fieldWriter: self objectFieldWriter
×
169
]
×
170

171
{ #category : #'accessing - field writers' }
172
DataFrameCsvWriter >> useOptionalQuotedFieldWriter [
×
173

×
174
        self fieldWriter: self optionalQuotedFieldWriter
×
175
]
×
176

177
{ #category : #'accessing - field writers' }
178
DataFrameCsvWriter >> useQuotedFieldWriter [
×
179

×
180
        self fieldWriter: self quotedFieldWriter
×
181
]
×
182

183
{ #category : #'accessing - field writers' }
184
DataFrameCsvWriter >> useRawFieldWriter [
5✔
185

5✔
186
        self fieldWriter: self rawFieldWriter
5✔
187
]
5✔
188

189
{ #category : #writing }
190
DataFrameCsvWriter >> write: aDataFrame to: aFileReference [
5✔
191
        | stream writer |
5✔
192
        stream := aFileReference writeStream.
5✔
193
        writer := NeoCSVWriter on: stream.
5✔
194
        fieldWriter ifNotNil: [ writer fieldWriter: fieldWriter ].
5✔
195
        writer separator: self separator.
5✔
196
        writer lineEndConvention: self lineEndConvention.
5✔
197

5✔
198
        self columnNameEnabled ifTrue: [
5✔
199
                self rowNameEnabled ifTrue: [
5✔
200
                writer
5✔
201
                        writeField: '';
5✔
202
                        writeSeparator ].
5✔
203
        writer writeHeader: aDataFrame columnNames.
5✔
204

5✔
205
        self rowNameEnabled
5✔
206
                ifTrue: [
5✔
207
                        aDataFrame do: [ :row |
5✔
208
                                writer
5✔
209
                                        writeField: row name;
5✔
210
                                        writeSeparator;
5✔
211
                                        nextPut: row ] ]
5✔
212
                ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ]]
5✔
213

5✔
214
        ifFalse: [
5✔
215
                self rowNameEnabled ifTrue: [
5✔
216
                        aDataFrame do: [ :row |
5✔
217
                                writer
5✔
218
                                        writeField: row name;
5✔
219
                                        writeSeparator;
5✔
220
                                        nextPut: row ] ]
5✔
221
                ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ] ].
5✔
222

5✔
223
        writer close.
5✔
224

5✔
225
]
5✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc