Skip to content

Commit 91433f8

Browse files
authored
CLN: use getvalue instead of seek(0)+read() (#39213)
1 parent eb17d3d commit 91433f8

File tree

1 file changed

+11
-22
lines changed

1 file changed

+11
-22
lines changed

pandas/io/stata.py

+11-22
Original file line numberDiff line numberDiff line change
@@ -713,8 +713,7 @@ def generate_value_label(self, byteorder: str) -> bytes:
713713
for text in self.txt:
714714
bio.write(text + null_byte)
715715

716-
bio.seek(0)
717-
return bio.read()
716+
return bio.getvalue()
718717

719718

720719
class StataMissingValue:
@@ -2932,8 +2931,7 @@ def generate_blob(self, gso_table: Dict[str, Tuple[int, int]]) -> bytes:
29322931
bio.write(utf8_string)
29332932
bio.write(null)
29342933

2935-
bio.seek(0)
2936-
return bio.read()
2934+
return bio.getvalue()
29372935

29382936

29392937
class StataWriter117(StataWriter):
@@ -3127,8 +3125,7 @@ def _write_header(
31273125
# '\x11' added due to inspection of Stata file
31283126
stata_ts = b"\x11" + bytes(ts, "utf-8")
31293127
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"))
31323129

31333130
def _write_map(self) -> None:
31343131
"""
@@ -3158,16 +3155,14 @@ def _write_map(self) -> None:
31583155
bio = BytesIO()
31593156
for val in self._map.values():
31603157
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"))
31633159

31643160
def _write_variable_types(self) -> None:
31653161
self._update_map("variable_types")
31663162
bio = BytesIO()
31673163
for typ in self.typlist:
31683164
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"))
31713166

31723167
def _write_varnames(self) -> None:
31733168
self._update_map("varnames")
@@ -3178,8 +3173,7 @@ def _write_varnames(self) -> None:
31783173
name = self._null_terminate_str(name)
31793174
name = _pad_bytes_new(name[:32].encode(self._encoding), vn_len + 1)
31803175
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"))
31833177

31843178
def _write_sortlist(self) -> None:
31853179
self._update_map("sortlist")
@@ -3192,8 +3186,7 @@ def _write_formats(self) -> None:
31923186
fmt_len = 49 if self._dta_version == 117 else 57
31933187
for fmt in self.fmtlist:
31943188
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"))
31973190

31983191
def _write_value_label_names(self) -> None:
31993192
self._update_map("value_label_names")
@@ -3208,8 +3201,7 @@ def _write_value_label_names(self) -> None:
32083201
name = self._null_terminate_str(name)
32093202
encoded_name = _pad_bytes_new(name[:32].encode(self._encoding), vl_len + 1)
32103203
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"))
32133205

32143206
def _write_variable_labels(self) -> None:
32153207
# Missing labels are 80 blank characters plus null termination
@@ -3222,8 +3214,7 @@ def _write_variable_labels(self) -> None:
32223214
if self._variable_labels is None:
32233215
for _ in range(self.nvar):
32243216
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"))
32273218
return
32283219

32293220
for col in self.data:
@@ -3242,8 +3233,7 @@ def _write_variable_labels(self) -> None:
32423233
bio.write(_pad_bytes_new(encoded, vl_len + 1))
32433234
else:
32443235
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"))
32473237

32483238
def _write_characteristics(self) -> None:
32493239
self._update_map("characteristics")
@@ -3270,8 +3260,7 @@ def _write_value_labels(self) -> None:
32703260
lab = vl.generate_value_label(self._byteorder)
32713261
lab = self._tag(lab, "lbl")
32723262
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"))
32753264

32763265
def _write_file_close_tag(self) -> None:
32773266
self._update_map("stata_data_close")

0 commit comments

Comments
 (0)