Documentation ¶
Overview ¶
Package copier provides tools and utilities for copying and modifying GTFS feeds.
Index ¶
- func Copy(reader adapters.Reader, writer adapters.Writer, optfns ...func(*Options)) error
- func QuietCopy(reader adapters.Reader, writer adapters.Writer, optfns ...func(*Options)) error
- type AfterValidator
- type AfterWrite
- type Copier
- func (copier *Copier) AddExtension(ext interface{}) error
- func (copier *Copier) AddValidator(ext Validator, level int) error
- func (copier *Copier) Copy() *Result
- func (copier *Copier) CopyEntities(ents []tt.Entity) error
- func (copier *Copier) CopyEntity(ent tt.Entity) (error, error)
- func (copier *Copier) SetLogger(g zerolog.Logger)
- type ErrorHandler
- type ExpandFilter
- type Extension
- type Filter
- type Marker
- type Options
- type Prepare
- type Result
- func (cr *Result) DisplayErrors()
- func (cr *Result) DisplaySummary()
- func (cr *Result) DisplayWarnings()
- func (cr *Result) HandleEntityErrors(ent tt.Entity, errs []error, warns []error)
- func (cr *Result) HandleError(fn string, errs []error)
- func (cr *Result) HandleSourceErrors(fn string, errs []error, warns []error)
- type ValidationError
- type ValidationErrorGroup
- type Validator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AfterValidator ¶ added in v0.8.1
AfterValidator is called for each fully validated entity before writing.
type AfterWrite ¶ added in v0.8.8
AfterWrite is called for after writing each entity.
type Copier ¶
type Copier struct { // Default options Options // Reader and writer Reader adapters.Reader Writer adapters.Writer // Entity selection strategy Marker Marker // Error handler, called for each entity ErrorHandler ErrorHandler EntityMap *tt.EntityMap // contains filtered or unexported fields }
Copier copies from Reader to Writer
func (*Copier) AddExtension ¶
AddExtension adds an Extension to the copy process.
func (*Copier) AddValidator ¶ added in v0.8.0
AddValidator adds an additional entity validator.
func (*Copier) Copy ¶
Copy copies Base GTFS entities from the Reader to the Writer, returning the summary as a Result.
func (*Copier) CopyEntities ¶ added in v0.10.0
CopyEntities validates a slice of entities and writes those that pass validation.
func (*Copier) CopyEntity ¶
CopyEntity performs validation and saves errors and warnings. An entity error means the entity was not not written because it had an error or was filtered out; not fatal. A write error should be considered fatal and should stop any further write attempts. Any errors and warnings are added to the copier result.
type ErrorHandler ¶
type ErrorHandler interface { HandleEntityErrors(tt.Entity, []error, []error) HandleSourceErrors(string, []error, []error) }
ErrorHandler is called on each source file and entity; errors can be nil
type ExpandFilter ¶ added in v0.11.0
type Options ¶ added in v0.8.0
type Options struct { // Batch size BatchSize int // Skip most validation filters NoValidators bool // Skip shape cache NoShapeCache bool // Attempt to save an entity that returns validation errors AllowEntityErrors bool AllowReferenceErrors bool // Interpolate any missing StopTime values: ArrivalTime/DepartureTime/ShapeDistTraveled InterpolateStopTimes bool // Create a stop-to-stop Shape for Trips without a ShapeID. CreateMissingShapes bool // Create missing Calendar entries NormalizeServiceIDs bool // Normalize timezones, e.g. US/Pacific -> America/Los_Angeles NormalizeTimezones bool // Simplify Calendars that use mostly CalendarDates SimplifyCalendars bool // Convert extended route types to primitives UseBasicRouteTypes bool // Copy extra files (requires CSV input) CopyExtraFiles bool // Simplify shapes SimplifyShapes float64 // DeduplicateStopTimes DeduplicateJourneyPatterns bool // Default error handler ErrorHandler ErrorHandler // Journey Pattern Key Function JourneyPatternKey func(*gtfs.Trip) string // Named extensions Extensions []string // Error limit ErrorLimit int // Sub-logger Quiet bool // contains filtered or unexported fields }
Options defines the settable options for a Copier.
func (*Options) AddExtension ¶ added in v0.18.0
type Result ¶ added in v0.8.0
type Result struct { WriteError error InterpolatedStopTimeCount int EntityCount map[string]int GeneratedCount map[string]int SkipEntityErrorCount map[string]int SkipEntityReferenceCount map[string]int SkipEntityFilterCount map[string]int SkipEntityMarkedCount map[string]int Errors map[string]*ValidationErrorGroup Warnings map[string]*ValidationErrorGroup ErrorLimit int }
Result stores Copier results and statistics.
func (*Result) DisplayErrors ¶ added in v0.8.0
func (cr *Result) DisplayErrors()
DisplayErrors shows individual errors in log.Info
func (*Result) DisplaySummary ¶ added in v0.8.0
func (cr *Result) DisplaySummary()
DisplaySummary shows entity and error counts in log.Info
func (*Result) DisplayWarnings ¶ added in v0.8.0
func (cr *Result) DisplayWarnings()
DisplayWarnings shows individual warnings in log.Info
func (*Result) HandleEntityErrors ¶ added in v0.8.0
HandleEntityErrors .
func (*Result) HandleError ¶ added in v0.8.0
HandleError .
type ValidationError ¶ added in v0.16.0
type ValidationError struct { Filename string `db:"-"` Field string `db:"-"` ErrorCode string `db:"-"` Line int GroupKey string Message string EntityID string Value string Geometry tt.Geometry EntityJson tt.Map }
func (ValidationError) Error ¶ added in v0.16.0
func (e ValidationError) Error() string
type ValidationErrorGroup ¶ added in v0.16.0
type ValidationErrorGroup struct { Filename string Field string ErrorType string ErrorCode string GroupKey string Level int Count int Limit int `db:"-"` Errors []ValidationError `db:"-"` }
ValidationErrorGroup helps group errors together with a maximum limit on the number stored.
func NewValidationErrorGroup ¶ added in v0.16.0
func NewValidationErrorGroup(err error, limit int) *ValidationErrorGroup
func (*ValidationErrorGroup) Add ¶ added in v0.16.0
func (e *ValidationErrorGroup) Add(err error)
Add an error to the error group.
func (*ValidationErrorGroup) Key ¶ added in v0.16.0
func (eg *ValidationErrorGroup) Key() string