"""Only authored BytesIO numeric/object NPY fixtures. Never loads a pickle."""
import numpy as np,io,json,platform,hashlib
def demo():
 numeric=np.array([[1.5,2.5],[3.5,4.5]],dtype='<f4');obj=np.array([{'label':'authored'},['a','b']],dtype=object)
 n=io.BytesIO();np.save(n,numeric,allow_pickle=False);raw=n.getvalue();assert len(raw)<=4096;loaded=np.load(io.BytesIO(raw),allow_pickle=False,max_header_size=1024)
 assert loaded.dtype==numeric.dtype and loaded.shape==(2,2)and np.array_equal(loaded,numeric)
 o=io.BytesIO();np.save(o,obj,allow_pickle=True);obytes=o.getvalue();assert len(obytes)<=4096
 try:np.load(io.BytesIO(obytes),allow_pickle=False,max_header_size=1024)
 except ValueError as e:message=str(e);assert 'Object arrays'in message
 else:raise AssertionError('object array accepted')
 return {'python':platform.python_version(),'numpy':np.__version__,'numeric_dtype':numeric.dtype.str,'numeric_shape':list(numeric.shape),'numeric_values_after_reload':loaded.tolist(),'numeric_exact_array_equal':True,'numeric_npy_bytes':len(raw),'numeric_sha256':hashlib.sha256(raw).hexdigest(),'object_hasobject':obj.dtype.hasobject,'object_shape':list(obj.shape),'object_npy_bytes':len(obytes),'object_load_false_error':message,'max_header_size':1024,'object_pickle_created_from_owned_plain_values':True,'any_pickle_loaded_or_unknown_file_opened':False,'all_assertions_passed':True}
if __name__=='__main__':print(json.dumps(demo(),indent=2))
