@@ -245,7 +245,8 @@ def __init__(self,
245
245
'''
246
246
super (AnalyzeHeader , self ).__init__ (binaryblock , endianness , check )
247
247
248
- def _guessed_endian (self , hdr ):
248
+ @classmethod
249
+ def guessed_endian (klass , hdr ):
249
250
''' Guess intended endianness from mapping-like ``hdr``
250
251
251
252
Parameters
@@ -264,19 +265,19 @@ def _guessed_endian(self, hdr):
264
265
265
266
>>> hdr = AnalyzeHeader()
266
267
>>> hdr_data = np.zeros((), dtype=header_dtype)
267
- >>> hdr._guessed_endian (hdr_data) == native_code
268
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
268
269
True
269
270
270
271
A valid native header is guessed native
271
272
272
273
>>> hdr_data = hdr.structarr.copy()
273
- >>> hdr._guessed_endian (hdr_data) == native_code
274
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
274
275
True
275
276
276
277
And, when swapped, is guessed as swapped
277
278
278
279
>>> sw_hdr_data = hdr_data.byteswap(swapped_code)
279
- >>> hdr._guessed_endian (sw_hdr_data) == swapped_code
280
+ >>> AnalyzeHeader.guessed_endian (sw_hdr_data) == swapped_code
280
281
True
281
282
282
283
The algorithm is as follows:
@@ -287,13 +288,13 @@ def _guessed_endian(self, hdr):
287
288
288
289
>>> hdr_data = np.zeros((), dtype=header_dtype) # blank binary data
289
290
>>> hdr_data['dim'][0] = 1
290
- >>> hdr._guessed_endian (hdr_data) == native_code
291
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
291
292
True
292
293
>>> hdr_data['dim'][0] = 6
293
- >>> hdr._guessed_endian (hdr_data) == native_code
294
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
294
295
True
295
296
>>> hdr_data['dim'][0] = -1
296
- >>> hdr._guessed_endian (hdr_data) == swapped_code
297
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == swapped_code
297
298
True
298
299
299
300
If the first ``dim`` value is zeros, we need a tie breaker.
@@ -302,20 +303,20 @@ def _guessed_endian(self, hdr):
302
303
assumed swapped. Otherwise assume native.
303
304
304
305
>>> hdr_data = np.zeros((), dtype=header_dtype) # blank binary data
305
- >>> hdr._guessed_endian (hdr_data) == native_code
306
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
306
307
True
307
308
>>> hdr_data['sizeof_hdr'] = 1543569408
308
- >>> hdr._guessed_endian (hdr_data) == swapped_code
309
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == swapped_code
309
310
True
310
311
>>> hdr_data['sizeof_hdr'] = -1
311
- >>> hdr._guessed_endian (hdr_data) == native_code
312
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
312
313
True
313
314
314
315
This is overridden by the ``dim``[0] value though:
315
316
316
317
>>> hdr_data['sizeof_hdr'] = 1543569408
317
318
>>> hdr_data['dim'][0] = 1
318
- >>> hdr._guessed_endian (hdr_data) == native_code
319
+ >>> AnalyzeHeader.guessed_endian (hdr_data) == native_code
319
320
True
320
321
'''
321
322
dim0 = int (hdr ['dim' ][0 ])
0 commit comments