copier

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2021 License: GPL-3.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BasicRouteTypeFilter added in v0.8.0

type BasicRouteTypeFilter struct{}

BasicRouteTypeFilter checks for extended route_type's and converts to basic route_types.

func (*BasicRouteTypeFilter) Filter added in v0.8.0

func (e *BasicRouteTypeFilter) Filter(ent tl.Entity, emap *tl.EntityMap) error

Filter .

type Copier

type Copier struct {
	// Default options
	Options
	// Reader and writer
	Reader tl.Reader
	Writer tl.Writer
	// Entity selection strategy
	Marker Marker
	// Error handler, called for each entity
	ErrorHandler ErrorHandler

	*tl.EntityMap
	// contains filtered or unexported fields
}

Copier copies from Reader to Writer

func NewCopier

func NewCopier(reader tl.Reader, writer tl.Writer, opts Options) Copier

NewCopier creates and initializes a new Copier.

func (*Copier) AddEntityFilter

func (copier *Copier) AddEntityFilter(ef tl.EntityFilter) error

AddEntityFilter adds an EntityFilter to the copy process.

func (*Copier) AddExtension

func (copier *Copier) AddExtension(e ext.Extension) error

AddExtension adds an Extension to the copy process.

func (*Copier) AddValidator added in v0.8.0

func (copier *Copier) AddValidator(e Validator, level int) error

AddValidator adds an additional entity validator.

func (*Copier) Copy

func (copier *Copier) Copy() *Result

Copy copies Base GTFS entities from the Reader to the Writer, returning the summary as a Result.

func (*Copier) CopyEntity

func (copier *Copier) CopyEntity(ent tl.Entity) (string, error, error)

CopyEntity performs validation and saves errors and warnings, returns new EntityID if written, otherwise an entity error or write error. 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 Result.

type ErrorGroup added in v0.8.0

type ErrorGroup struct {
	Filename  string
	ErrorType string
	Count     int
	Limit     int
	Errors    []error
}

ErrorGroup helps group errors together with a maximum limit on the number stored.

func NewErrorGroup added in v0.8.0

func NewErrorGroup(filename string, etype string, limit int) *ErrorGroup

NewErrorGroup returns a new ErrorGroup.

func (*ErrorGroup) Add added in v0.8.0

func (e *ErrorGroup) Add(err error)

Add an error to the error group.

type ErrorHandler

type ErrorHandler interface {
	HandleEntityErrors(tl.Entity, []error, []error)
	HandleSourceErrors(string, []error, []error)
}

ErrorHandler is called on each source file and entity; errors can be nil

type Marker

type Marker interface {
	IsMarked(string, string) bool
	IsVisited(string, string) bool
}

Marker visits and marks entities.

type Options added in v0.8.0

type Options struct {
	// Batch size
	BatchSize int
	// 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
	// Simplify Calendars that use mostly CalendarDates
	SimplifyCalendars bool
	// Convert extended route types to primitives
	UseBasicRouteTypes bool
	// DeduplicateStopTimes
	DeduplicateJourneyPatterns bool
	// Default error handler
	ErrorHandler ErrorHandler
}

Options defines the settable options for a Copier.

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]*ErrorGroup
	Warnings                  map[string]*ErrorGroup
	ErrorLimit                int
}

Result stores Copier results and statistics.

func NewResult added in v0.8.0

func NewResult() *Result

NewResult returns a new Result.

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

func (cr *Result) HandleEntityErrors(ent tl.Entity, errs []error, warns []error)

HandleEntityErrors .

func (*Result) HandleError added in v0.8.0

func (cr *Result) HandleError(fn string, errs []error)

HandleError .

func (*Result) HandleSourceErrors added in v0.8.0

func (cr *Result) HandleSourceErrors(fn string, errs []error, warns []error)

HandleSourceErrors .

type Validator added in v0.8.0

type Validator interface {
	Validate(tl.Entity) []error
}

Validator is used to create an extensible list of validators run for each entity.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL