diff -urN rt_v14/ax.py rt_v15/ax.py --- rt_v14/ax.py 2018-03-30 16:27:00.000000000 +0900 +++ rt_v15/ax.py 2018-04-03 10:03:55.000000000 +0900 @@ -37,7 +37,7 @@ # o.p + o.vs x (i.p + i.vs x p) # = (o.p + o.vs x i.p) + o.vs x i.vs x p d = 'l2g' - vs_ = vecs.new( map( lambda v: ax_outside.tr(d, v, typ='v'), vs.v3 ) ) + vs_ = vecs.new( ut.map_lst( lambda v: ax_outside.tr(d, v, typ='v'), vs.v3 ) ) p_ = ax_outside.tr(d, p) return new(p_, vs_) e.compo = compo diff -urN rt_v14/cg.py rt_v15/cg.py --- rt_v14/cg.py 2018-03-30 16:33:57.000000000 +0900 +++ rt_v15/cg.py 2018-04-03 09:18:48.000000000 +0900 @@ -59,7 +59,7 @@ return sum( map( poly_n_f, range(n) ), [] ) if kind == 'cube': - def cube_f( (l, deg) ): + def cube_f(l, deg): d_ = d.copy() d_['kind'] = 'square' d_['l2m'] = [ ax.slide_z(1), ax.rot(l, deg) ] + d_.get( 'l2m', [] ) @@ -68,7 +68,7 @@ (line.x1, 0), (line.x1, 90), (line.x1, 180), (line.x1, -90), (line.y1, 90), (line.y1, -90) ] - return sum( map( cube_f, rots ), [] ) + return sum( ut.map_up( fube_f, rots ), [] ) if kind == 'tri_prism_side': d0 = d.copy() @@ -249,7 +249,7 @@ (w, h) = ( ut.arg_i('w', 640) , ut.arg_i('h', 480) ) div = ut.arg_i('div', 1) - (w, h) = map( lambda v: v / div, (w, h) ) + (w, h) = map( lambda v: v // div, (w, h) ) zm = div w_deg = ut.arg_f('w_deg', 30.0) diff -urN rt_v14/cross.py rt_v15/cross.py --- rt_v14/cross.py 2018-04-01 20:44:56.000000000 +0900 +++ rt_v15/cross.py 2018-04-03 09:41:23.000000000 +0900 @@ -94,6 +94,7 @@ def ball_nv(crs): t = crs.get('t') + l = crs.get('l') crs['p'] = p = l.on_line_p(t) crs['nv'] = v.unit(p) @@ -129,8 +130,8 @@ ts = sorted( filter( lambda v: v > 0, ts ) ) if not ts: return False - tpzs = map( lambda t: ( lambda (x,y,z): (t, [x,y,z], z) )( l.on_line_p(t) ), ts ) - tpzs = filter( lambda (t,p,z): abs(z) < 1, tpzs ) + tpzs = map( lambda t: ( lambda x,y,z: (t, [x,y,z], z) )( *l.on_line_p(t) ), ts ) + tpzs = ut.filter_up_lst( lambda t,p,z: abs(z) < 1, tpsz ) if not tpzs: return False (t, p, _) = tpzs[0] @@ -187,8 +188,8 @@ if not ts: return False - tpzs = map( lambda t: ( lambda (x,y,z): (t, [x,y,z], z) )( l.on_line_p(t) ), ts ) - tpzs = filter( lambda (t,p,z): 0 zm= cmd='.format(sys.argv[0]) - print ' fps is int value (default 30)' - print ' zm is float value (default 1.0)' - print ' cmd is v2i, i2v or play (default i2v)' + print( 'Usage: {} img_name video_name fps= zm= cmd='.format(sys.argv[0]) ) + print( ' fps is int value (default 30)' ) + print( ' zm is float value (default 1.0)' ) + print( ' cmd is v2i, i2v or play (default i2v)' ) sys.exit(0) img_name = sys.argv[1] diff -urN rt_v14/lstx.py rt_v15/lstx.py --- rt_v14/lstx.py 2018-03-31 17:25:01.000000000 +0900 +++ rt_v15/lstx.py 2018-04-02 18:13:19.000000000 +0900 @@ -1,5 +1,6 @@ #!/usr/bin/env python +from functools import reduce import ut import v import line diff -urN rt_v14/rt.py rt_v15/rt.py --- rt_v14/rt.py 2018-04-01 20:40:13.000000000 +0900 +++ rt_v15/rt.py 2018-04-03 09:46:11.000000000 +0900 @@ -32,22 +32,22 @@ return img.col( fn, sec, int(x), int(y), [] ) cols = map( f, d.get('maps') ) - cols = filter( lambda col: col != [], cols ) + cols = ut.filter_lst( lambda col: col != [], cols ) col = np.sum(cols, axis=0) if cols else def_col - return map( lambda v: min(v, 255), col ) + return ut.map_lst( lambda v: min(v, 255), col ) def get_col(data, lights, l_g, video, nest_rate=1.0, ref_len=None): if nest_rate < 0.01: return [] lst = map( lambda d: { 'l_g': l_g, 'd': d }, data ) - lst = filter( lambda crs: cross.cross(crs), lst ) + lst = ut.filter_lst( lambda crs: cross.cross(crs), lst ) if not lst: return [] if ref_len: ref_rate = 0.000001 - lst = filter( lambda crs: crs.get('t') > ref_len * ref_rate, lst ) + lst = ut.filter_lst( lambda crs: crs.get('t') > ref_len * ref_rate, lst ) if not lst: return [] @@ -147,7 +147,7 @@ p = lstx.tr( wh2g, 'l2g', mt.arr( [ix,iy,-d_] ) ) l_g = line.new_p2(eye2g.p, p) col = get_col(data, lights, l_g, video) - col = map( lambda v: min( int(v), 255 ), col ) + col = ut.map_lst( lambda v: min( int(v), 255 ), col ) if col != []: video.set(ix, iy, col) # EOF diff -urN rt_v14/ut.py rt_v15/ut.py --- rt_v14/ut.py 2018-03-31 12:12:15.000000000 +0900 +++ rt_v15/ut.py 2018-04-03 09:55:40.000000000 +0900 @@ -6,6 +6,14 @@ import subprocess from decimal import * +map_lst = lambda f, lst: list( map( f, lst ) ) +map_up = lambda f, lst: map( lambda a: f(*a), lst ) +map_up_lst = lambda f, lst: list( map_up( f, lst ) ) + +filter_lst = lambda f, lst: list( filter( f, lst ) ) +filter_up = lambda f, lst: filter( lambda a: f(*a), lst ) +filter_up_lst = lambda f, lst: list( filter_up(f, lst) ) + arg_s = lambda k, def_val='': next( ( s[ len(k)+1: ] for s in sys.argv if s.startswith(k+'=') ), def_val ) arg_v = lambda fs, k, def_val: ( lambda s: fs(s) if s else def_val )( arg_s(k) ) arg_i = lambda k, def_val: arg_v( int, k, def_val ) @@ -28,7 +36,7 @@ def dic_to_cls(d, c=None): if not c: c = Empty() - map( lambda (k, v): setattr(c, k, v), d.items() ) + map_lst( lambda kv: setattr(c, *kv), d.items() ) return c extends = lambda pcls, c=None: dic_to_cls( cls_to_dic(pcls), c ) @@ -53,17 +61,17 @@ def str_hms(sec): si = int(sec) - m = si / 60 + m = si // 60 s = si % 60 + int( (sec - si) * 100 ) * 0.01 s = Decimal(s).quantize( Decimal('1.00') ) - h = m / 60 + h = m // 60 m %= 60 lst = [ (s, 's') ] if m: lst.insert( 0, (m, 'm') ) if h: lst.insert( 0, (h, 'h') ) - return ' '.join( map( lambda (v, s): str(v)+s, lst ) ) + return ' '.join( map_up( lambda v, s: str(v)+s, lst ) ) ### @@ -117,14 +125,15 @@ rest = e.total_sec - ( now_sec() - e.st_sec ) return 'rest {} : {}'.format( str_hms(rest), str_dt( e.st_sec + e.total_sec ) ) - stat_str = lambda : '{}{}/{}({}%) : {}'.format( id_str, e.i, n, 1000*e.i/n*0.1, fin_str() ) + pcent = lambda : Decimal(100*e.i/n).quantize( Decimal('1.0') ) + stat_str = lambda : '{}{}/{}({}%) : {}'.format( id_str, e.i, n, pcent(), fin_str() ) def show_stat(now=None): if not now: now = now_sec() if e.show_sec == None or e.i >= n or now - e.show_sec >= e.show_interval: e.show_sec = now - print stat_str() + print( stat_str() ) return e @@ -154,7 +163,7 @@ n = w * h cnt = new_cnt(n, id_str) e = Empty(cnt) - e.cur = lambda : ( lambda i: ( i%w, i/w ) )( cnt.cur() ) + e.cur = lambda : ( lambda i: ( i%w, i//w ) )( cnt.cur() ) return e ### diff -urN rt_v14/vecs.py rt_v15/vecs.py --- rt_v14/vecs.py 2018-03-31 17:54:33.000000000 +0900 +++ rt_v15/vecs.py 2018-04-02 17:18:41.000000000 +0900 @@ -48,7 +48,7 @@ v3[fix_i] = fix if all( fix == ref ): - ref = ( lambda (x, y, z): (-y, x, z) )( ref ) if all( ref != v.z1 ) else v.x1 + ref = ( lambda x, y, z: (-y, x, z) )( *ref ) if all( ref != v.z1 ) else v.x1 (a, b) = (fix, ref) if (fix_i + 1) % 3 == ref_i else (ref, fix) v3[i] = c = v.cross_product_unit(a, b) diff -urN rt_v14/way.py rt_v15/way.py --- rt_v14/way.py 2018-03-30 15:56:13.000000000 +0900 +++ rt_v15/way.py 2018-04-03 09:35:07.000000000 +0900 @@ -55,8 +55,8 @@ return mt.linear_conv( t, 0, ts[idx], vs[idx], vs[(idx+1)%n] ) def liss(ps, pe, t3): - lsts = map( lambda (s, e, t): [ (s, t*0.5), (e, t*0.5) ], zip(ps, pe, t3) ) - return lambda t, itp3=True: mt.arr( map( lambda lst: get(lst, t, itp3), lsts ) ) + lsts = ut.map_up( lambda s, e, t: [ (s, t*0.5), (e, t*0.5) ], zip(ps, pe, t3) ) + return lambda t, itp3=True: mt.arr( ut.map_lst( lambda lst: get(lst, t, itp3), lsts ) ) def liss_eye(): # sys.argv @@ -87,18 +87,18 @@ return lambda t, itp3=True: line.new_p2( f_p(t+init_sec, itp3), f_t(t+init_sec, itp3) ) def test(lst, itp3=False, end_t=4, stp_t=0.25): - print lst, 'itp3=', itp3 + print( lst, 'itp3=', itp3 ) t = 0 while t <= end_t: v = get(lst, t, itp3) - print (t, v) + print( (t, v) ) t += stp_t s = 0 for (v, t) in lst: if t != None: v_ = get(lst, s, itp3) if v_ != v: - print 'NG t={} v={} (!={})'.format(t, v_, v) + print( 'NG t={} v={} (!={})'.format(t, v_, v) ) sys.exit(-1) s += t @@ -118,5 +118,5 @@ test( [(3,2),(1,None)] ) test( [(3,2),(1,None)], True ) - print 'OK' + print( 'OK' ) # EOF diff -urN rt_v14/wf.py rt_v15/wf.py --- rt_v14/wf.py 2018-03-30 16:29:31.000000000 +0900 +++ rt_v15/wf.py 2018-04-03 09:38:36.000000000 +0900 @@ -42,7 +42,9 @@ t = map( ball_f, range(3) ) return map( lambda lst: sum( lst, [] ), zip(*t) ) - z_pn = lambda ps: map( lambda (x,y,z): [x,y,1], ps ) + map( lambda (x,y,z): [x,y,-1], ps ) + tmp_p = ut.map_up_lst( lambda x,y,z: [x,y,1], ps ) + tmp_n = ut.map_up_lst( lambda x,y,z: [x,y,-1], ps ) + z_pn = tmp_p + tmp_n def mk_prism(ps): n = len(ps) @@ -112,7 +114,7 @@ ps = map( lambda p: lstx.tr( d.get('l2g'), 'l2g', p ), ps ) ps = map( lambda p: eye2g.tr('g2l', p), ps ) - p2s = map( lambda (i, j): eye_clip( eye2g, wh2eye, sc_sz, ps[i], ps[j] ), idxs ) + p2s = ut.map_up( lambda i, j: eye_clip( eye2g, wh2eye, sc_sz, ps[i], ps[j] ), idxs ) p2s = filter( lambda p2: p2, p2s ) p2s = map( lambda p2: map( lambda p: lstx.tr( wh2eye, 'g2l', p), p2 ), p2s ) for (pa, pb) in p2s: