diff --git a/boxx/tool/toolFunction.py b/boxx/tool/toolFunction.py index 88e9816..41f1714 100644 --- a/boxx/tool/toolFunction.py +++ b/boxx/tool/toolFunction.py @@ -63,7 +63,7 @@ def interFun(): maxTimes[0] -= 1 if maxTimes[0] <= 0: return - setTimeOut(interFun, inter) + setTimeout(interFun, inter) interFun() from multiprocessing import Pool as PoolMp @@ -239,7 +239,7 @@ def f(): r = fun(*l,**kv) finally: self.left += 1 - self.l.append(setTimeOut(f)) + self.l.append(setTimeout(f)) if len(self.l)>100: self.l = self.l[-90:] f = lambda fun,*l,**kv:fun(*l,**kv) #用于测试单线程的性能 diff --git a/boxx/tool/toolLog.py b/boxx/tool/toolLog.py index 849b7d9..b4be6d8 100644 --- a/boxx/tool/toolLog.py +++ b/boxx/tool/toolLog.py @@ -3,6 +3,8 @@ from __future__ import unicode_literals from __future__ import print_function +import executing + from .toolStructObj import addCall, dicto, FunAddMagicMethod, getfathers, typeNameOf, typestr from .toolSystem import getRootFrame, getFatherFrames from ..ylsys import py2 @@ -10,6 +12,7 @@ from ..ylcompat import istype import os,sys,time +import ast import math import re from collections import defaultdict @@ -931,6 +934,17 @@ def __setattr__(self, name, v): log = global_g_paras[id(self)].log transport = TransportToRootFrame(name,log) transport(v) + + def __pow__(self, v): + ex = executing.Source.executing(sys._getframe(1)) + op = ex.node.right + if not isinstance(op, ast.Name): + raise TypeError('Only variables can be transported directly') + self.__setattr__(op.id, v) + + __sub__ = __truediv__ = __div__ = __mul__ = __add__ = __eq__ = __pow__ + + g = GlobalG() gg = GlobalG(log=True) @@ -1170,7 +1184,11 @@ def printt(self, x=None): else: pass # pblue('%s: %s'%(clf.p%'As pp by p', x)) - print(x) + try: + ex = executing.Source.executing(sys._getframe(1)) + print(ex.source.asttokens().get_text(ex.node.right), '=', x) + except: + print(x) return x __sub__ = printt __lshift__ = printt diff --git a/requirements.txt b/requirements.txt index 3af1b56..a8fd9fe 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,5 @@ snakeviz fn pyopengl seaborn +executing +asttokens