def validate(self, validator=None): validator = validation.make_validator(validator) self.log('Loading...') self.preload() # required required = [ 'agency', 'stops', 'routes', 'trips', 'stop_times', 'calendar' ] for f in required: self.log("Validating required file: %s" % f) data = self.read(f) for i in data: i.validate(validator=validator) i.validate_feed(validator=validator) # optional optional = [ 'calendar_dates', 'fare_attributes', 'fare_rules', 'shapes', 'frequencies', 'transfers', 'feed_info' ] for f in optional: self.log("Validating optional file: %s" % f) try: data = self.read(f) except KeyError, e: data = [] for i in data: i.validate(validator=validator) i.validate_feed(validator=validator)
def validate_feedvalidator( self, validator=None, feedvalidator=None, report='report.html' ): feedvalidator = feedvalidator or 'feedvalidator.py' validator = validation.make_validator(validator) p = subprocess.Popen( [ feedvalidator, '--memory_db', '--noprompt', '--output', report, self.filename ], stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout, stderr = p.communicate() returncode = p.returncode with validator(self): errors = [i for i in stdout.split('\n') if i.startswith('ERROR:')] if returncode: raise validation.ValidationError('Errors reported by feedvalidator.py; see %s for details'%report)
def validate_feedvalidator(self, validator=None, feedvalidator=None, report='report.html'): feedvalidator = feedvalidator or 'feedvalidator.py' validator = validation.make_validator(validator) p = subprocess.Popen([ feedvalidator, '--memory_db', '--noprompt', '--output', report, self.filename ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() returncode = p.returncode with validator(self): errors = [i for i in stdout.split('\n') if i.startswith('ERROR:')] if returncode: raise validation.ValidationError( 'Errors reported by feedvalidator.py; see %s for details' % report)
def validate(self, validator=None): validator = validation.make_validator(validator) self.log('Loading...') self.preload() # required required = [ 'agency', 'stops', 'routes', 'trips', 'stop_times', 'calendar' ] for f in required: self.log("Validating required file: %s"%f) data = self.read(f) for i in data: i.validate(validator=validator) i.validate_feed(validator=validator) # optional optional = [ 'calendar_dates', 'fare_attributes', 'fare_rules', 'shapes', 'frequencies', 'transfers', 'feed_info' ] for f in optional: self.log("Validating optional file: %s"%f) try: data = self.read(f) except KeyError, e: data = [] for i in data: i.validate(validator=validator) i.validate_feed(validator=validator)
def validate(self, validator=None, skip_relations=False): """Validate a GTFS :param validator: a ValidationReport :param (bool) skip_relations: skip validation of relations between entities (e.g. stop_times to stops) :return: """ validator = validation.make_validator(validator) self.log('Loading...') self.preload() # required required = [ 'agency', 'stops', 'routes', 'trips', 'stop_times', 'calendar' ] for f in required: self.log("Validating required file: %s" % f) data = self.read(f) for i in data: i.validate(validator=validator) if skip_relations is False: i.validate_feed(validator=validator) # optional optional = [ 'calendar_dates', 'fare_attributes', 'fare_rules', 'shapes', 'frequencies', 'transfers', 'feed_info' ] for f in optional: self.log("Validating optional file: %s" % f) try: data = self.read(f) except KeyError, e: data = [] for i in data: i.validate(validator=validator) if skip_relations is False: i.validate_feed(validator=validator)
def validate_feed(self, validator=None): return validation.make_validator(validator)