Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
    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)
Пример #6
0
 def validate_feed(self, validator=None):
   return validation.make_validator(validator)