Changeset 6946


Ignore:
Timestamp:
08/06/10 11:04:37 (9 years ago)
Author:
sdonegan
Message:

Added validation checking for dataOriginator and ability to handle multiple originators

Location:
TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/ExtractISO.py

    r6904 r6946  
    146146                 
    147147                self.boundingDatesRange = self.boundingDateRange(self.boundingDates) 
    148                                  
     148                                         
    149149                self.originalFormat = self.getElementVal(self.isoModel.originalFormat()) 
    150150                 
     
    240240                try: 
    241241                        self.dataOriginator= self.getElementVal(self.isoModel.dataOriginator()) 
    242                          
    243                         #add some extra specifications to deal with MEDIn requirement to have both searchable field (vector) and return as a text field 
    244                         self.dataOriginator_text = self.dataOriginator 
    245                         self.dataOriginator_tsvector = self.dataOriginator 
    246                          
     242                                                 
    247243                except: 
    248244                        self.dataOriginator = None 
    249245                        self.dataOriginator_text = None 
    250246                        self.dataOriginator_tsvector = None 
     247                         
     248                #check presence of originator - Mandatory! 
     249                if self.dataOriginator == 'None' or self.dataOriginator is None: 
     250                        self.processingMsg = 'No entry for Data Originator so record not valid and cannot/will not Ingest!' 
     251                        logging.error(self.processingMsg) 
     252                        self.validDoc = False 
     253                 
     254                else:                    
     255                        self.dataOriginatorOb = IsoIngestListUtilities(self.dataOriginator,True) 
     256                         
     257                        #add some extra specifications to deal with MEDIn requirement to have both searchable field (vector) and return as a text field 
     258                        self.dataOriginator_text = self.dataOriginatorOb.getDelimitedStringFromList(self.dataOriginatorOb.listVals) 
     259                        self.dataOriginator_tsvector = self.dataOriginator_text 
    251260                 
    252261                try: 
     
    297306        ''' 
    298307        def checkDate(self,inputDate): 
     308                 
     309                if inputDate is None: 
     310                        return False 
    299311                 
    300312                 
     
    380392                allDates = [] 
    381393                returnDates = {} 
    382                                  
     394                 
     395                         
    383396                #remember, need to sort out whether there was a start and end date in the first place, or just one so can copy values over 
    384397                if len(boundingDatesList) == 1: 
     
    386399                        returnDates['start'] = boundingDatesList[0]['start'] 
    387400                        returnDates['end'] = boundingDatesList[0]['end'] 
     401                         
     402                         
     403                         
    388404                         
    389405                        #check date validity 
     
    417433                returnDates['start'] = min(allDates) 
    418434                returnDates['end'] = max(allDates) 
     435                 
    419436                 
    420437                return returnDates 
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/PostgresDAO.py

    r6904 r6946  
    164164                 
    165165                logging.info("Attempting to update: " + isoData) 
    166                  
     166                                 
    167167                columnValue = getattr(self.isoDataModel,isoData) 
    168168                columnName = dbColumns[isoData] 
     
    405405        TimeRange = self._record.parseTemporalInfo(self._record.datasetTemporalData) 
    406406        SpatialCoords = self._record.parseSpatialInfo(self._record.datasetSpatialData) 
    407         
    408                  
     407         
     408         
    409409        if (len(TimeRange) == 0) and (len(SpatialCoords) == 0): 
    410410                logging.info("No spatiotemporal data found for record - skipping") 
  • TI01-discovery-Ingest/trunk/v4n_MEDIN/ingestAutomation-upgrade/OAIBatch/PostgresRecord.py

    r6904 r6946  
    324324                 
    325325        TimeRange = [] 
    326          
     326                                         
    327327        if len(timeData) == 0: 
    328328                        logging.info("No temporal coverage elements found - assuming no temporal data available") 
    329329                 
    330330        else: 
    331                 for time in timeData: 
    332                          
    333                         start = timeData['start'] 
    334                         end = timeData['end'] 
    335                  
    336                         if start is None or start == 'None': 
    337                            startDate = "null" 
    338                         else: 
    339                            startDate = start 
     331                 
    340332                         
    341                         if end is None or start == 'None': 
    342                            endDate = "null" 
    343                         else: 
    344                            endDate = end 
     333                start = timeData['start'] 
     334                end = timeData['end'] 
     335                 
     336                if start is None or start == 'None': 
     337                        startDate = "null" 
     338                else: 
     339                        startDate = start 
    345340                         
    346                         if (end is None or end == 'None') and (start is None or start == 'None'): 
    347                            logging.info("No temporal coverage elements found - assuming no temporal data available") 
    348                         else: 
    349                                 TimeRange.append({'start':startDate,'end':endDate}) 
     341                if end is None or end == 'None': 
     342                        endDate = "null" 
     343                else: 
     344                        endDate = end 
     345                         
     346                if (end is None or end == 'None') and (start is None or start == 'None'): 
     347                        logging.info("No temporal coverage elements found - assuming no temporal data available") 
     348                else: 
     349                        TimeRange.append({'start':startDate,'end':endDate}) 
    350350                                                         
    351351                         
    352                         logging.info("Time range data found; start: " + startDate + " end: " + endDate) 
     352                logging.info("Time range data found; start: " + startDate + " end: " + endDate) 
    353353                                 
    354354                return TimeRange 
Note: See TracChangeset for help on using the changeset viewer.