def getCountParts(self, fromPath): """""" fsize = Sys.getsize(fromPath) count = Sys.ceil(fsize / 19710000) minp, maxp = 52, 62 if fsize < 4800000: minp, maxp = 8, 16 elif fsize < 22200000: minp, maxp = 16, 22 elif fsize < 48000000: minp, maxp = 22, 32 elif fsize < 222000000: minp, maxp = 32, 42 if count < minp: count = choice(list(range(minp, maxp))) if not count > 62: return count else: raise Exception( fromPath + " size exceeds limits (max : " + formatBytes(self.ck.psize * 62) + " [" + str(self.ck.psize * 64) + " bytes])" )
def print(self,order='ID', matchIds=None): """Print index content as formated bloc""" #~ Sys.clear() #~ Cli.print_header() #~ AbstractCli.printLineSep(Const.LINE_SEP_CHAR,Const.LINE_SEP_LEN) inv = order.startswith('-') if inv : order = order[1:] orderIndex = self.COLS.index(order) if orderIndex is None : orderIndex = self.COLS.index('ID') d = sorted([(self.dic.get(k),k) for i, k in enumerate(self.dic) if not k.startswith(self.SEP_KEY_INTERN)], reverse=inv, key=lambda lst:lst[0][orderIndex]) sizeid = 1+Sys.ceil(len(str(len(d)))) if sizeid < 3 : sizeid = 3 addsize = abs(3 - sizeid); sort = '^' if inv else '_' #'ↆ' space = (4+addsize, 8, 38, 10, 3, 5, 11, 24-addsize, 13) for i, s in enumerate(self.COLS[:-1]): symb, c = sort if order == s else ' ', Sys.Clz.BG4+Sys.Clz.fgB7 if order != s else Sys.Clz.BG7+Sys.Clz.fgB4 Sys.echo ((' '+s+symb).ljust(space[i],' ') , c, False, False) Sys.echo('', c) Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE) a = '' tsize = 0 psize = 0 acc = {} wrap = '… ' if Sys.isUnix() else '/ ' for v,k in d : if matchIds==None or v[self.UID] in matchIds: if v[self.SIZE] == '' : v[self.SIZE] = 0 a = '' Sys.echo(str(v[self.UID]).rjust(sizeid+1,' ') , Sys.Clz.bg1+Sys.Clz.fgB7, False) Sys.echo(' '+str(k).ljust(9,' ')[0:6]+wrap , Sys.Clz.fgN2, False) if len(v[self.LABEL])>36 : a = wrap try: Sys.echo(str(v[self.LABEL][:36]+a).ljust(38,' ') , Sys.Clz.fgN7, False) except: pass j = 0 for c in v[self.LABEL][:36] : try: Sys.echo(str(c) , Sys.Clz.fgN7, False, False) except: Sys.echo('?' , Sys.Clz.fgN7, False, False) j += 1 Sys.echo(''.ljust(38-j,' ') , Sys.Clz.fgN7, False, False) a = '' Sys.echo(Sys.readableBytes(v[self.SIZE])[:9].rjust(9,' ')+' '*2 , Sys.Clz.fgN5, False) Sys.echo(str(v[self.PARTS]).rjust(2 ,'0') +' '*2 , Sys.Clz.fgN1, False) Sys.echo(str(v[self.EXT][:6]).ljust(7,' ') , Sys.Clz.fgn3, False) Sys.echo(self.getUser(str(v[self.USER])).ljust(11 ,' ') , Sys.Clz.fgn7, False) #~ Sys.echo(str(v[self.CATG]).ljust(30 ,' ') , Clz.fgN3) if len(v[self.CATG])>22 : a = wrap Sys.echo(str(v[self.CATG][:22]+a).ljust(24 ,' ') , Sys.Clz.fgN3, False) a = '' if len(v)-2==self.ACCOUNT: if v[self.ACCOUNT] in self.acclist : if len(self.acclist[v[self.ACCOUNT]])>11 : a = '…' Sys.echo(str(self.acclist[v[self.ACCOUNT]][:11]+a).ljust(12 ,' ') , Sys.Clz.fgN4) else : Sys.echo(str(v[self.ACCOUNT][:11]+'!').ljust(12 ,' ') , Sys.Clz.fgN4) if v[self.ACCOUNT] in acc : acc[v[self.ACCOUNT]] += int(v[self.SIZE]) else : acc[v[self.ACCOUNT]] = int(v[self.SIZE]) else: Sys.dprint() psize += int(v[self.SIZE]) tsize += int(v[self.SIZE]) if len(d)==0: Sys.echo(' empty', Sys.Clz.fgB1) Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE) c = Sys.Clz.fgB2 if psize != tsize : c = Sys.Clz.fgB7 Sys.echo(' size : ', Sys.Clz.fgB3, False) Sys.echo(Sys.readableBytes(psize)[:9].rjust(9,' '), c, False) if psize != tsize : Sys.echo(' / ', Sys.Clz.fgB3, False) Sys.echo(Sys.readableBytes(tsize), Sys.Clz.fgB2, False) Sys.dprint() Sys.echo(Const.LINE_SEP_CHAR*Const.LINE_SEP_LEN, Sys.CLZ_HEAD_LINE)