Ignore:
Timestamp:
11 Mar 2008, 14:16:31 (17 years ago)
Author:
joachim
Message:

allow ignore,
check for duplicates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/base/WAeUPImport.py

    r3315 r3316  
    5252
    5353NO_KEY = '----'
    54 
     54IGNORE = 'ignore'
    5555class WAeUPImport(UniqueObject, SimpleItem, ActionProviderBase): ###(
    5656    """ WAeUPImport """
     
    143143        import_keys = [k.strip() for k in headline if not (k.strip().startswith('ignore')
    144144                                                        or k.strip() in self.info.keys())]
     145        # import_keys = [k.strip() for k in headline if not (k.strip() in self.info.keys())]
    145146        diff2schema = set(import_keys).difference(set(self.schema.keys()))
    146147        diff2layout = set(import_keys).difference(set(self.layout.keys()))
     
    153154    def getHeadlineFields(self,headline,values): ###(
    154155        """ check the headline of a csv file """
    155         #import_keys = [k.strip() for k in headline if not (k.strip().startswith('ignore')
    156         #                                                or k.strip() in self.info.keys())]
    157         import_keys = [k.strip() for k in headline]                                                       
     156        # import_keys = [k.strip() for k in headline if not (k.strip().startswith('ignore')
     157        #                                                 or k.strip() in self.info.keys())]
     158        import_keys = [k.strip() for k in headline if not (k.strip() in self.info.keys())]
    158159        si = set(import_keys)
    159160        ss = set(self.schema.keys())
    160161
    161162        invalid_keys = si - ss
    162         #diff2layout = set(import_keys).difference(set(self.layout.keys()))
    163163        keys = []
    164164        i = 0
    165         for k in import_keys:
    166             if k in invalid_keys:
    167                 keys += (k,NO_KEY,values[i]),
    168             else:
    169                 keys += (k,k,values[i]),
    170             i += 1
    171         return keys
     165        duplicates = False
     166        singels = []
     167        msg = ''
     168        while True:
     169            if len(values) != len(import_keys):
     170                msg += "%d fields in headline but %d values" % (len(import_keys),len(values))
     171                break
     172            for k in import_keys:
     173                if k in singels:
     174                    keys += (k,'DUP_%s' % k,values[i],'duplicate'),
     175                    msg += ("duplicate %s," % k)
     176                    keys[singels.index(k)] = (k,'DUP_%s' % k,values[singels.index(k)],'duplicate')
     177                elif k in invalid_keys and not k.startswith(IGNORE):
     178                    keys += (k,NO_KEY,values[i],'invalid'),
     179                else:
     180                    keys += (k,k,values[i],''),
     181                i += 1
     182                singels += k,
     183            break
     184        return msg,keys
    172185    ###)
    173186###)
Note: See TracChangeset for help on using the changeset viewer.