@@ -713,8 +713,7 @@ def generate_value_label(self, byteorder: str) -> bytes:
713
713
for text in self .txt :
714
714
bio .write (text + null_byte )
715
715
716
- bio .seek (0 )
717
- return bio .read ()
716
+ return bio .getvalue ()
718
717
719
718
720
719
class StataMissingValue :
@@ -2932,8 +2931,7 @@ def generate_blob(self, gso_table: Dict[str, Tuple[int, int]]) -> bytes:
2932
2931
bio .write (utf8_string )
2933
2932
bio .write (null )
2934
2933
2935
- bio .seek (0 )
2936
- return bio .read ()
2934
+ return bio .getvalue ()
2937
2935
2938
2936
2939
2937
class StataWriter117 (StataWriter ):
@@ -3127,8 +3125,7 @@ def _write_header(
3127
3125
# '\x11' added due to inspection of Stata file
3128
3126
stata_ts = b"\x11 " + bytes (ts , "utf-8" )
3129
3127
bio .write (self ._tag (stata_ts , "timestamp" ))
3130
- bio .seek (0 )
3131
- self ._write_bytes (self ._tag (bio .read (), "header" ))
3128
+ self ._write_bytes (self ._tag (bio .getvalue (), "header" ))
3132
3129
3133
3130
def _write_map (self ) -> None :
3134
3131
"""
@@ -3158,16 +3155,14 @@ def _write_map(self) -> None:
3158
3155
bio = BytesIO ()
3159
3156
for val in self ._map .values ():
3160
3157
bio .write (struct .pack (self ._byteorder + "Q" , val ))
3161
- bio .seek (0 )
3162
- self ._write_bytes (self ._tag (bio .read (), "map" ))
3158
+ self ._write_bytes (self ._tag (bio .getvalue (), "map" ))
3163
3159
3164
3160
def _write_variable_types (self ) -> None :
3165
3161
self ._update_map ("variable_types" )
3166
3162
bio = BytesIO ()
3167
3163
for typ in self .typlist :
3168
3164
bio .write (struct .pack (self ._byteorder + "H" , typ ))
3169
- bio .seek (0 )
3170
- self ._write_bytes (self ._tag (bio .read (), "variable_types" ))
3165
+ self ._write_bytes (self ._tag (bio .getvalue (), "variable_types" ))
3171
3166
3172
3167
def _write_varnames (self ) -> None :
3173
3168
self ._update_map ("varnames" )
@@ -3178,8 +3173,7 @@ def _write_varnames(self) -> None:
3178
3173
name = self ._null_terminate_str (name )
3179
3174
name = _pad_bytes_new (name [:32 ].encode (self ._encoding ), vn_len + 1 )
3180
3175
bio .write (name )
3181
- bio .seek (0 )
3182
- self ._write_bytes (self ._tag (bio .read (), "varnames" ))
3176
+ self ._write_bytes (self ._tag (bio .getvalue (), "varnames" ))
3183
3177
3184
3178
def _write_sortlist (self ) -> None :
3185
3179
self ._update_map ("sortlist" )
@@ -3192,8 +3186,7 @@ def _write_formats(self) -> None:
3192
3186
fmt_len = 49 if self ._dta_version == 117 else 57
3193
3187
for fmt in self .fmtlist :
3194
3188
bio .write (_pad_bytes_new (fmt .encode (self ._encoding ), fmt_len ))
3195
- bio .seek (0 )
3196
- self ._write_bytes (self ._tag (bio .read (), "formats" ))
3189
+ self ._write_bytes (self ._tag (bio .getvalue (), "formats" ))
3197
3190
3198
3191
def _write_value_label_names (self ) -> None :
3199
3192
self ._update_map ("value_label_names" )
@@ -3208,8 +3201,7 @@ def _write_value_label_names(self) -> None:
3208
3201
name = self ._null_terminate_str (name )
3209
3202
encoded_name = _pad_bytes_new (name [:32 ].encode (self ._encoding ), vl_len + 1 )
3210
3203
bio .write (encoded_name )
3211
- bio .seek (0 )
3212
- self ._write_bytes (self ._tag (bio .read (), "value_label_names" ))
3204
+ self ._write_bytes (self ._tag (bio .getvalue (), "value_label_names" ))
3213
3205
3214
3206
def _write_variable_labels (self ) -> None :
3215
3207
# Missing labels are 80 blank characters plus null termination
@@ -3222,8 +3214,7 @@ def _write_variable_labels(self) -> None:
3222
3214
if self ._variable_labels is None :
3223
3215
for _ in range (self .nvar ):
3224
3216
bio .write (blank )
3225
- bio .seek (0 )
3226
- self ._write_bytes (self ._tag (bio .read (), "variable_labels" ))
3217
+ self ._write_bytes (self ._tag (bio .getvalue (), "variable_labels" ))
3227
3218
return
3228
3219
3229
3220
for col in self .data :
@@ -3242,8 +3233,7 @@ def _write_variable_labels(self) -> None:
3242
3233
bio .write (_pad_bytes_new (encoded , vl_len + 1 ))
3243
3234
else :
3244
3235
bio .write (blank )
3245
- bio .seek (0 )
3246
- self ._write_bytes (self ._tag (bio .read (), "variable_labels" ))
3236
+ self ._write_bytes (self ._tag (bio .getvalue (), "variable_labels" ))
3247
3237
3248
3238
def _write_characteristics (self ) -> None :
3249
3239
self ._update_map ("characteristics" )
@@ -3270,8 +3260,7 @@ def _write_value_labels(self) -> None:
3270
3260
lab = vl .generate_value_label (self ._byteorder )
3271
3261
lab = self ._tag (lab , "lbl" )
3272
3262
bio .write (lab )
3273
- bio .seek (0 )
3274
- self ._write_bytes (self ._tag (bio .read (), "value_labels" ))
3263
+ self ._write_bytes (self ._tag (bio .getvalue (), "value_labels" ))
3275
3264
3276
3265
def _write_file_close_tag (self ) -> None :
3277
3266
self ._update_map ("stata_data_close" )
0 commit comments