def __init__(self, obj, keys, skeys=None, dtype=None, q=False): if len(obj.outlist["o"]) != 0: raise Exception("Do not specify last output ") return None if obj.name == "writelist": raise Exception("Do not suport writelist ") return None if isinstance(keys, str): newkeys = keys.split(",") elif isinstance(keys, list): newkeys = keys else: raise Exception("unsuport TYPE") dupobj = obj.modelcopy() from nysol.mcmd.submod.msortchk import Nysol_Msortchk as msortchk sortkeys = copy.deepcopy(newkeys) if skeys != None: if isinstance(keys, str): sortkeys.extend(skeys.split(",")) elif isinstance(keys, list): sortkeys.extend(skeys) else: raise Exception("unsuport TYPE") runobj = msortchk({"k": sortkeys, "q": q}).addPre(dupobj) modlist, iolist, linklist, _ = runobj.makeRunNetwork(True) py_msg = False try: if get_ipython().__class__.__name__ == 'ZMQInteractiveShell': py_msg = True except: pass kgpymsg = os.environ.get('KG_UsingPySysMsg') if kgpymsg != None: py_msg = bool(int(kgpymsg)) # kgshell stock self.shobj = n_core.init(runobj.getMsgFlg(), runobj.runlimit, ps.virtual_memory().total, py_msg) if self.shobj == None: raise Exception("can not init shell") return None self.csvin = n_core.runiter(self.shobj, modlist, linklist, newkeys) if self.csvin == None: n_core.cancel(self.shobj) raise Exception("can not run iter") return None self.fldname = n_core.fldname(self.csvin) self.dptn = n_core.fldtp(self.csvin, dtype)
def __nextCore(self): line = n_core.getBlkDict(self.csvin, self.dptn) if line: return line n_core.close(self.csvin) n_core.cancel(self.shobj) return
def __nextCore(self): if self.header: self.header = False return self.fldname line = n_core.getLineList(self.csvin, self.dptn) if line: return line n_core.close(self.csvin) n_core.cancel(self.shobj) return
def __nextCore(self): data = n_core.getLineDictWithInfo(self.csvin, self.dptn) if data: breakTop = self.breakPre self.breakPre = data[1] return data[0], breakTop, data[1] n_core.close(self.csvin) n_core.cancel(self.shobj) return
def convtype(self,dtype=None,header=False): try: x = itermod.LineListIter(self,dtype) while(True): v = next(x) if v==None: break yield v return except GeneratorExit: n_core.close(x.csvin) n_core.cancel(x.shobj)
def fldname(self): dupobj = copy.deepcopy(self) # 不要 mod 除去 itobj = dupobj.redirect(dupobj.nowdir) xx = itermod.LineListIter(itobj) head = xx.fldname n_core.close(xx.csvin) n_core.cancel(xx.shobj) return head
def __getLineDictWithInfo(self,keys,skeys=None,dtype=None,q=False): try: x = itermod.LineDictIterWithInfo(self,keys,skeys,dtype,q) while(True): v = next(x) if v==None: break yield v return except GeneratorExit: n_core.close(x.csvin) n_core.cancel(x.shobj)
def __iter__(self): try: x = itermod.LineListIter(self) while(True): v = next(x) if v==None: break yield v return except GeneratorExit: n_core.close(x.csvin) n_core.cancel(x.shobj)
def __nextCore(self): if self.header: self.header = False return self.fldname, None, None data = n_core.getLineListWithInfo(self.csvin, self.dptn) if data: breakTop = self.breakPre self.breakPre = data[1] return data[0], breakTop, data[1] n_core.close(self.csvin) n_core.cancel(self.shobj) return
def __getBlockList(self,keys,skeys=None,dtype=None,q=False,header=False): try: x = itermod.BlkListIter(self,keys,skeys,dtype,q,header) while(True): v = next(x) if v==None: break yield v return except GeneratorExit: n_core.close(x.csvin) n_core.cancel(x.shobj)