Changeset 250


Ignore:
Timestamp:
Nov 3, 2009, 10:22:59 AM (10 years ago)
Author:
jjbot
Message:

Fixed bug that caused non duplicated fieldnames to be marked duplicated and rewrote for loop to a genarator function.

Location:
container
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • container/itypes_py.py

    r247 r250  
    539539                        raise TypeError, "Containers with unequal number of fields > 1 cannot be operated on"
    540540                    else: #both are larger than 1
    541                         if left == right:
     541                        if( all([l.name==r.name for l, r in zip(left, right)] ) ):
    542542                            # If fieldnames are equal in both containers:
    543543                            nr = [
    544544                                    Field(
    545545                                            lfield.name, binop_type(lfield.type, rfield.type, operator),
    546                                             sourceids=(lfield.id,rfield.id)
     546                                            sourceids=(lfield.id, rfield.id)
    547547                                    )
    548548                                    for lfield, rfield in zip(left, right)
     
    550550                        else:
    551551                            # Fieldnames are not equal in both containers:
    552                             comb = zip(left, right)
    553                             nr = []
    554                             for i in range(len(comb)):
    555                                 lfield, rfield = comb[i]
    556                                 nr.append(
    557                                     Field("result_" + str(i), binop_type(lfield.type, rfield.type, operator),
    558                                             sourceids=(lfield.id, rfield.id))
    559                                 )
    560                             #nr = [Field("result",binop_type(lfield.type,rfield.type,operator),sourceids=(lfield.id,rfield.id)) for lfield,rfield in zip(left,right)]
     552                            nr = [
     553                                    Field( 
     554                                        "result_" + str(i),
     555                                        binop_type(lfield.type, rfield.type, operator),
     556                                        sourceids=(lfield.id, rfield.id)
     557                                    )
     558                                    for i, (lfield, rfield) in enumerate(zip(left, right))
     559                            ]
    561560        return nr
    562561
  • container/postgres.py

    r249 r250  
    412412            seq_fieldnames = {}
    413413            for pos,f in enumerate(seq._activefields):
    414                 if(f.name in seq_fieldnames):
     414                if(not f.name in seq_fieldnames):
    415415                    seq_fieldnames[f.name] = pos
    416416                else:
Note: See TracChangeset for help on using the changeset viewer.