MCPcopy
hub / github.com/pandas-dev/pandas / _read_new_header

Method _read_new_header

pandas/io/stata.py:1175–1228  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1173 self._read_old_header(first_char)
1174
1175 def _read_new_header(self) -> None:
1176 # The first part of the header is common to 117 - 119.
1177 self._path_or_buf.read(27) # stata_dta><header><release>
1178 self._format_version = int(self._path_or_buf.read(3))
1179 if self._format_version not in [117, 118, 119]:
1180 raise ValueError(_version_error.format(version=self._format_version))
1181 self._set_encoding()
1182 self._path_or_buf.read(21) # </release><byteorder>
1183 self._byteorder = ">" if self._path_or_buf.read(3) == b"MSF" else "<"
1184 self._path_or_buf.read(15) # </byteorder><K>
1185 self._nvar = (
1186 self._read_uint16() if self._format_version <= 118 else self._read_uint32()
1187 )
1188 self._path_or_buf.read(7) # </K><N>
1189
1190 self._nobs = self._get_nobs()
1191 self._path_or_buf.read(11) # </N><label>
1192 self._data_label = self._get_data_label()
1193 self._path_or_buf.read(19) # </label><timestamp>
1194 self._time_stamp = self._get_time_stamp()
1195 self._path_or_buf.read(26) # </timestamp></header><map>
1196 self._path_or_buf.read(8) # 0x0000000000000000
1197 self._path_or_buf.read(8) # position of <map>
1198
1199 self._seek_vartypes = self._read_int64() + 16
1200 self._seek_varnames = self._read_int64() + 10
1201 self._seek_sortlist = self._read_int64() + 10
1202 self._seek_formats = self._read_int64() + 9
1203 self._seek_value_label_names = self._read_int64() + 19
1204
1205 # Requires version-specific treatment
1206 self._seek_variable_labels = self._get_seek_variable_labels()
1207
1208 self._path_or_buf.read(8) # <characteristics>
1209 self._data_location = self._read_int64() + 6
1210 self._seek_strls = self._read_int64() + 7
1211 self._seek_value_labels = self._read_int64() + 14
1212
1213 self._typlist, self._dtyplist = self._get_dtypes(self._seek_vartypes)
1214
1215 self._path_or_buf.seek(self._seek_varnames)
1216 self._varlist = self._get_varlist()
1217
1218 self._path_or_buf.seek(self._seek_sortlist)
1219 self._srtlist = self._read_int16_count(self._nvar + 1)[:-1]
1220
1221 self._path_or_buf.seek(self._seek_formats)
1222 self._fmtlist = self._get_fmtlist()
1223
1224 self._path_or_buf.seek(self._seek_value_label_names)
1225 self._lbllist = self._get_lbllist()
1226
1227 self._path_or_buf.seek(self._seek_variable_labels)
1228 self._variable_labels = self._get_variable_labels()
1229
1230 # Get data type information, works for versions 117-119.
1231 def _get_dtypes(

Callers 1

_read_headerMethod · 0.95

Calls 15

_set_encodingMethod · 0.95
_read_uint16Method · 0.95
_read_uint32Method · 0.95
_get_nobsMethod · 0.95
_get_data_labelMethod · 0.95
_get_time_stampMethod · 0.95
_read_int64Method · 0.95
_get_dtypesMethod · 0.95
_get_varlistMethod · 0.95
_read_int16_countMethod · 0.95
_get_fmtlistMethod · 0.95

Tested by

no test coverage detected