Documentation ¶
Index ¶
- func FlattenRow(row types.Row) types.Row
- type AddFieldMiddleware
- type ColumnMiddlewareConfig
- type ColumnsChannelMiddleware
- type FieldsFilterMiddleware
- type FlattenObjectMiddleware
- type LambdaMiddleware
- type OutputChannelMiddleware
- type OutputMiddleware
- type RegexReplacement
- type RegexpReplacement
- type RegexpReplacements
- type RegexpSkip
- type RemoveDuplicatesMiddleware
- type RemoveNullsMiddleware
- type RenameColumnMiddleware
- func NewFieldRenameColumnMiddleware(renames map[types.FieldName]types.FieldName) *RenameColumnMiddleware
- func NewRegexpRenameColumnMiddleware(renames RegexpReplacements) *RenameColumnMiddleware
- func NewRenameColumnMiddleware(renames map[types.FieldName]types.FieldName, regexpRenames RegexpReplacements) *RenameColumnMiddleware
- func NewRenameColumnMiddlewareFromYAML(decoder *yaml.Decoder) (*RenameColumnMiddleware, error)
- type ReorderColumnOrderMiddleware
- type ReplaceMiddleware
- type Replacement
- type Skip
- type SkipLimitMiddleware
- type SortColumnsMiddleware
- type TemplateMiddleware
- type TemplateMiddlewareOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AddFieldMiddleware ¶
func NewAddFieldMiddleware ¶
func NewAddFieldMiddleware(fields map[string]string) *AddFieldMiddleware
type ColumnMiddlewareConfig ¶
type ColumnMiddlewareConfig struct { FieldRenames map[types.FieldName]types.FieldName `yaml:"renames"` // FIXME regex renames actually need to ordered RegexpRenames RegexpReplacements `yaml:"regexpRenames"` }
type ColumnsChannelMiddleware ¶ added in v0.3.1
type ColumnsChannelMiddleware struct {
// contains filtered or unexported fields
}
ColumnsChannelMiddleware sends the column names of each row it receives to a channel. The column names are sent in a separate goroutine so as not to block the pipeline.
func NewColumnsChannelMiddleware ¶ added in v0.3.1
func NewColumnsChannelMiddleware(c chan<- []types.FieldName, onlyFirstRow bool) *ColumnsChannelMiddleware
type FieldsFilterMiddleware ¶
type FieldsFilterMiddleware struct {
// contains filtered or unexported fields
}
FieldsFilterMiddleware keeps columns that are in the fields list and removes columns that are in the filters list.
empty lists means that all columns are accepted.
The returned rows are SimpleRows
func NewFieldsFilterMiddleware ¶
func NewFieldsFilterMiddleware(fields []string, filters []string) *FieldsFilterMiddleware
type FlattenObjectMiddleware ¶
type FlattenObjectMiddleware struct { }
func NewFlattenObjectMiddleware ¶
func NewFlattenObjectMiddleware() *FlattenObjectMiddleware
type LambdaMiddleware ¶ added in v0.3.8
type LambdaMiddleware struct {
Function func(ctx context.Context, row types.Row) ([]types.Row, error)
}
func NewLambdaMiddleware ¶ added in v0.3.8
type OutputChannelMiddleware ¶ added in v0.3.1
type OutputChannelMiddleware[T interface{ ~string }] struct { // contains filtered or unexported fields }
OutputChannelMiddleware sends each row it receives to a channel after formatting it with the given formatter. This will block the pipeline until the channel is read from (or the buffer of the channel is full).
func NewOutputChannelMiddleware ¶ added in v0.3.1
func NewOutputChannelMiddleware[T interface{ ~string }]( formatter formatters.RowOutputFormatter, c chan<- T, ) *OutputChannelMiddleware[T]
type OutputMiddleware ¶ added in v0.3.1
type OutputMiddleware struct {
// contains filtered or unexported fields
}
func NewOutputMiddleware ¶ added in v0.3.1
func NewOutputMiddleware(formatter formatters.RowOutputFormatter, writer io.Writer) *OutputMiddleware
type RegexReplacement ¶
type RegexpReplacement ¶
type RegexpReplacements ¶
type RegexpReplacements []*RegexpReplacement
func (*RegexpReplacements) UnmarshalYAML ¶
func (rr *RegexpReplacements) UnmarshalYAML(value *yaml.Node) error
type RegexpSkip ¶
type RemoveDuplicatesMiddleware ¶
type RemoveDuplicatesMiddleware struct {
// contains filtered or unexported fields
}
func NewRemoveDuplicatesMiddleware ¶
func NewRemoveDuplicatesMiddleware(columns ...string) *RemoveDuplicatesMiddleware
type RemoveNullsMiddleware ¶
type RemoveNullsMiddleware struct { }
func NewRemoveNullsMiddleware ¶
func NewRemoveNullsMiddleware() *RemoveNullsMiddleware
type RenameColumnMiddleware ¶
type RenameColumnMiddleware struct { Renames map[types.FieldName]types.FieldName // orderedmap *regexp.Regexp -> string RegexpRenames RegexpReplacements // contains filtered or unexported fields }
func NewFieldRenameColumnMiddleware ¶
func NewFieldRenameColumnMiddleware(renames map[types.FieldName]types.FieldName) *RenameColumnMiddleware
func NewRegexpRenameColumnMiddleware ¶
func NewRegexpRenameColumnMiddleware(renames RegexpReplacements) *RenameColumnMiddleware
func NewRenameColumnMiddleware ¶
func NewRenameColumnMiddleware( renames map[types.FieldName]types.FieldName, regexpRenames RegexpReplacements, ) *RenameColumnMiddleware
func NewRenameColumnMiddlewareFromYAML ¶
func NewRenameColumnMiddlewareFromYAML(decoder *yaml.Decoder) (*RenameColumnMiddleware, error)
type ReorderColumnOrderMiddleware ¶
type ReorderColumnOrderMiddleware struct {
// contains filtered or unexported fields
}
func NewReorderColumnOrderMiddleware ¶
func NewReorderColumnOrderMiddleware(columns []types.FieldName) *ReorderColumnOrderMiddleware
type ReplaceMiddleware ¶
type ReplaceMiddleware struct { Replacements map[types.FieldName][]*Replacement RegexReplacements map[types.FieldName][]*RegexpReplacement RegexSkips map[types.FieldName][]*RegexpSkip Skips map[types.FieldName][]*Skip }
func NewReplaceMiddleware ¶
func NewReplaceMiddleware( replacements map[types.FieldName][]*Replacement, regexReplacements map[types.FieldName][]*RegexpReplacement, regexSkips map[types.FieldName][]*RegexpSkip, skips map[types.FieldName][]*Skip, ) *ReplaceMiddleware
func NewReplaceMiddlewareFromYAML ¶
func NewReplaceMiddlewareFromYAML(b []byte) (*ReplaceMiddleware, error)
type Replacement ¶
type SkipLimitMiddleware ¶ added in v0.4.21
type SortColumnsMiddleware ¶
type SortColumnsMiddleware struct { }
func NewSortColumnsMiddleware ¶
func NewSortColumnsMiddleware() *SortColumnsMiddleware
type TemplateMiddleware ¶
type TemplateMiddleware struct { // this field is used to replace "." in keys before passing them to the template, // in order to avoid having to use the `index` template function to access fields // that contain a ".", which is frequent due to flattening. RenameSeparator string // contains filtered or unexported fields }
func NewTemplateMiddleware ¶
func NewTemplateMiddleware( templateStrings map[types.FieldName]string, renameSeparator string) (*TemplateMiddleware, error)
NewTemplateMiddleware creates a new TemplateMiddleware which is the simplest go template middleware.
It will render the template for each row and return the result as a new column called with the given title.
Because nested objects will be flattened to individual columns using the . separator, this will make fields inaccessible to the template. One way around this is to use {{ index . "field.subfield" }} in the template. Another is to pass a separator rename option.
TODO(manuel, 2023-02-02) Add support for passing in custom funcmaps See #110 https://github.com/go-go-golems/glazed/issues/110
type TemplateMiddlewareOption ¶ added in v0.3.1
type TemplateMiddlewareOption func(*TemplateMiddleware)
func WithFuncMaps ¶ added in v0.3.1
func WithFuncMaps(funcMaps ...template.FuncMap) TemplateMiddlewareOption
func WithRenameSeparator ¶ added in v0.3.1
func WithRenameSeparator(separator string) TemplateMiddlewareOption