#!/usr/bin/env python # coding: utf-8 # In[1]: from json_ntv import Ntv, NtvSingle, NtvList from namespace import Namespace, Datatype from time import time def ntvobj(nb=1000, lis=True, jname='', jdefname=''): if jdefname and lis: return {jdefname: [{str(i) + jname : i} for i in range(nb)]} if jdefname and not lis: return {jdefname: {str(i) + jname : i for i in range(nb)}} if lis: return [{str(i) + jname : i} for i in range(nb)] return {str(i) + jname : i for i in range(nb)} def ntvl(nb=1000, json_array=True, jname='', deftyp=None, obj=None, fast=False, direct=False): t0 = time() if obj: ntv = Ntv.obj(obj) else: if jname and not direct: ntv = NtvList([Ntv.from_obj({str(i) + jname : i}, deftyp, fast=fast) for i in range(nb)], fast=fast) elif not direct: ntv = NtvList([Ntv.from_obj({str(i) : i}, deftyp, fast=fast) for i in range(nb)], fast=fast) else: ntv = NtvList([NtvSingle(i, str(i), deftyp, fast=fast) for i in range(nb)], fast=fast) t1 = time() js = ntv.to_obj(json_array=json_array) t2 = time() js = ntv.to_obj(json_array=json_array, fast=True) t3 = time() ntv = Ntv.obj(js, fast=fast) t4 = time() return (t1-t0, t2-t1, t3-t2, t4-t3) # In[2]: print(ntvobj(3, False, ':int', '::int')) print(Ntv.obj(ntvobj(3, False, ':int', '::int'))) print(ntvl(obj=ntvobj(3, False, ':int', '::int'))) # In[3]: nb = 10000 for cl in (True, False): if cl: print(ntvl(nb, cl)) print(ntvl(obj=ntvobj(nb, cl))) else: print(ntvl(nb, cl, 'test')) print(ntvl(obj=ntvobj(nb, cl, 'test'))) print(ntvl(nb, cl, ':int')) print(ntvl(obj=ntvobj(nb, cl, ':int'))) print(ntvl(nb, cl, ':int', 'int')) print(ntvl(obj=ntvobj(nb, cl, ':int', '::int'))) print(ntvl(nb, cl, ':int', 'json')) print(ntvl(obj=ntvobj(nb, cl, ':int', '::json'))) print(ntvl(nb, cl, ':int', 'point')) print(ntvl(obj=ntvobj(nb, cl, ':int', '::point')), '\n') #print(Datatype.types()) # In[4]: nb = 10000 fast=True for cl in (True, False): if cl: print(ntvl(nb, cl, fast=fast)) print(ntvl(obj=ntvobj(nb, cl), fast=fast)) else: print(ntvl(nb, cl, 'test', fast=fast)) print(ntvl(obj=ntvobj(nb, cl, 'test'), fast=fast)) print(ntvl(nb, cl, ':int', fast=fast)) print(ntvl(obj=ntvobj(nb, cl, ':int'), fast=fast)) print(ntvl(nb, cl, ':int', 'int', fast=fast)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::int'), fast=fast)) print(ntvl(nb, cl, ':int', 'json', fast=fast)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::json'), fast=fast)) print(ntvl(nb, cl, ':int', 'point', fast=fast)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::point'), fast=fast), '\n') #print(Datatype.types()) # In[5]: nb = 10000 fast=True # fast ntvtype à voir direct=True for cl in (True, False): if cl: print(ntvl(nb, cl, fast=fast, direct=direct)) # + rapide print(ntvl(obj=ntvobj(nb, cl), fast=fast, direct=direct)) else: print(ntvl(nb, cl, 'test', fast=fast, direct=direct)) # 2e + rapide print(ntvl(obj=ntvobj(nb, cl, 'test'), fast=fast, direct=direct)) print(ntvl(nb, cl, ':int', fast=fast, direct=direct)) print(ntvl(obj=ntvobj(nb, cl, ':int'), fast=fast, direct=direct)) print(ntvl(nb, cl, ':int', 'int', fast=fast, direct=direct)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::int'), fast=fast, direct=direct)) print(ntvl(nb, cl, ':int', 'json', fast=fast, direct=direct)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::json'), fast=fast, direct=direct)) print(ntvl(nb, cl, ':int', 'point', fast=fast, direct=direct)) print(ntvl(obj=ntvobj(nb, cl, ':int', '::point'), fast=fast, direct=direct), '\n') #print(Datatype.types())