def final(self):
        lenofvals = len(self.vals)
        if lenofvals <= 0:
            yield ("bgroupid", "C1")
            yield [None, None, None]
            return

        yield tuple(["bgroupid"] +
                    ["C" + str(i) for i in xrange(1,
                                                  len(self.vals[0]) - 1)])

        counter = 0
        if lenofvals != 1:
            for el in self.vals:
                try:
                    el.insert(0, iso8601.parse_date(el[0]))
                except Exception:
                    raise functions.OperatorError(
                        "datediffnewsesid", "Wrong date format: %s" % (el[0]))
            self.vals.sort(key=itemgetter(0))
            dt = self.vals[0][0]
            for el in self.vals[1:]:
                dtnew = el[0]
                diff = dtnew - dt
                dt = dtnew
                if (diff.days * 86400 + diff.seconds) > self.maxdiff:
                    counter += 1
                if counter != 0:
                    bid = unistr(el[2]) + str(counter)
                    yield [bid] + el[3:]
示例#2
0
    def final(self):
        lenofvals=len(self.vals)
        if lenofvals<=0:
            yield ("bgroupid", "C1")
            yield [None, None, None]
            return

        yield tuple(["bgroupid"]+["C"+str(i) for i in xrange(1,len(self.vals[0])-1)])

        counter=0
        if lenofvals!=1:
            for el in self.vals:
                try:
                    el.insert(0,iso8601.parse_date(el[0]))
                except Exception:
                    raise functions.OperatorError("datediffnewsesid","Wrong date format: %s" %(el[0]))
            self.vals.sort(key=itemgetter(0))
            dt=self.vals[0][0]
            for el in self.vals[1:]:
                dtnew=el[0]
                diff=dtnew-dt
                dt=dtnew
                if (diff.days*86400+diff.seconds)>self.maxdiff:
                    counter+=1
                if counter!=0:
                    bid=unistr(el[2])+str(counter)
                    yield [bid]+el[3:]
    def final(self):
        if self.position:
            self.vals.sort(key=lambda x: tuple(x[-self.comparesize:]))
        if self.vals == []:
            size = 0
        else:
            size = len(self.vals[0]) - self.comparesize - 1

        if size <= 0:
            yield ("bgroupid", "C1")
            yield [None, None]
            return

        yield tuple(["bgroupid"] + ["C" + str(i) for i in xrange(1, size)])

        counter = 0
        dt = None
        dtpos = self.comparesize + 1
        for el in self.vals:
            try:
                dtnew = iso8601.parse_date(el[-dtpos])
            except Exception:
                raise functions.OperatorError(
                    "datediffbreak", "Wrong date format: %s" % (el[-dtpos]))
            if dt and timedelta2millisec(dtnew - dt) > self.maxdiff:
                counter += 1
            dt = dtnew
            bid = unistr(el[0]) + str(counter)
            yield [bid] + el[1:-dtpos]
示例#4
0
    def final(self):
        if self.position:
            self.vals.sort(key=lambda x:tuple(x[-self.comparesize:]))
        if self.vals==[]:
            size=0
        else:
            size=len(self.vals[0])-self.comparesize-1

        if size<=0:
            yield ("bgroupid","C1")
            yield [None, None]
            return

        yield tuple(["bgroupid"]+["C"+str(i) for i in xrange(1,size)])

        counter=0
        dt=None
        dtpos=self.comparesize+1
        for el in self.vals:
            try:
                dtnew=iso8601.parse_date(el[-dtpos])
            except Exception:
                raise functions.OperatorError("datediffbreak","Wrong date format: %s" %(el[-dtpos]))
            if dt and timedelta2millisec(dtnew-dt)>self.maxdiff:
                counter+=1
            dt=dtnew
            bid=unistr(el[0])+str(counter)
            yield [bid]+el[1:-dtpos]
示例#5
0
def numeric(el):  ####Oi upoloipoi typoi
    el = unistr(el)
    if el.startswith("0") and not el.startswith("0."):
        return el
    try:
        return int(el)
    except ValueError:
        try:
            return float(el)
        except ValueError:
            return el
示例#6
0
def numeric(el): ####Oi upoloipoi typoi
    el=unistr(el)
    if el.startswith("0") and not el.startswith("0."):
        return el
    try:
        return int(el)
    except ValueError:
        try:            
            return float(el)
        except ValueError:
            return el
示例#7
0
    def final(self):
        self.vals.sort(key=lambda x:x[-1])
        if self.vals==[]:
            size=0
        else:
            size=len(self.vals[0])-2

        if size<=0:
            yield ("bgroupid","C1")
        else:
            yield tuple(["bgroupid"]+["C"+str(i+1) for i in xrange(size-1)])

        counter=0
        for el in self.vals:
            if el[-2]==True:
                counter+=1
            bid=unistr(el[0])+str(counter)
            yield [bid]+el[1:-2]
    def final(self):
        self.vals.sort(key=lambda x: x[-1])
        if self.vals == []:
            size = 0
        else:
            size = len(self.vals[0]) - 2

        if size <= 0:
            yield ("bgroupid", "C1")
        else:
            yield tuple(["bgroupid"] +
                        ["C" + str(i + 1) for i in xrange(size - 1)])

        counter = 0
        for el in self.vals:
            if el[-2] == True:
                counter += 1
            bid = unistr(el[0]) + str(counter)
            yield [bid] + el[1:-2]