Documentation ¶
Overview ¶
Package startf implements dataset transformations using the starlark programming dialect For more info on starlark check github.com/google/starlark
Index ¶
- Variables
- func AddDatasetLoader(loader dsref.Loader) func(o *ExecOpts)
- func AddEventsChannel(eventsCh chan event.Event) func(o *ExecOpts)
- func AddMutateFieldCheck(check func(path ...string) error) func(o *ExecOpts)
- func AddQriRepo(repo repo.Repo) func(o *ExecOpts)
- func DefaultExecOpts(o *ExecOpts)
- func Error(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, ...) (starlark.Value, error)
- func ExecScript(ctx context.Context, next, prev *dataset.Dataset, opts ...func(o *ExecOpts)) error
- func MutatedComponentsFunc(dsp *dataset.Dataset) func(path ...string) error
- func SetErrWriter(w io.Writer) func(o *ExecOpts)
- func SetSecrets(secrets map[string]string) func(o *ExecOpts)
- type EntryReader
- type ExecOpts
- type HTTPGuard
- type ModuleLoader
- type StepRunner
Constants ¶
This section is empty.
Variables ¶
var DefaultModuleLoader = func(thread *starlark.Thread, module string) (dict starlark.StringDict, err error) { return starlib.Loader(thread, module) }
DefaultModuleLoader is the loader ExecScript will use unless configured otherwise
var ErrNotDefined = fmt.Errorf("not defined")
ErrNotDefined is for when a starlark value is not defined or does not exist
var ( // ErrNtwkDisabled is returned whenever a network call is attempted but h.NetworkEnabled is false ErrNtwkDisabled = fmt.Errorf("network use is disabled. http can only be used during download step") )
var Version = version.Version
Version is the version of qri that this transform was run with
Functions ¶
func AddDatasetLoader ¶
AddDatasetLoader is required to enable the load_dataset starlark builtin
func AddEventsChannel ¶
AddEventsChannel sets an event channel to send events on
func AddMutateFieldCheck ¶
AddMutateFieldCheck provides a checkFunc to ExecScript
func AddQriRepo ¶
AddQriRepo adds a qri repo to execution options, providing scripted access to assets within the respoitory
func DefaultExecOpts ¶
func DefaultExecOpts(o *ExecOpts)
DefaultExecOpts applies default options to an ExecOpts pointer
func Error ¶
func Error(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)
Error halts program execution with an error
func ExecScript ¶
ExecScript executes a transformation against a starlark script file. The next dataset pointer may be modified, while the prev dataset point is read-only. At a bare minimum this function will set transformation details, but starlark scripts can modify many parts of the dataset pointer, including meta, structure, and transform. opts may provide more ways for output to be produced from this function.
func MutatedComponentsFunc ¶
MutatedComponentsFunc returns a function for checking if a field has been modified. it's a kind of data structure mutual exclusion lock TODO (b5) - this should be refactored & expanded
func SetErrWriter ¶
SetErrWriter provides a writer to record the "stderr" diagnostic output of the transform script
func SetSecrets ¶
SetSecrets assigns environment secret key-value pairs for script execution
Types ¶
type EntryReader ¶
type EntryReader struct {
// contains filtered or unexported fields
}
EntryReader implements the dsio.EntryReader interface for starlark.Iterable's
func NewEntryReader ¶
func NewEntryReader(st *dataset.Structure, iter starlark.Iterable) *EntryReader
NewEntryReader creates a new Entry Reader
func (*EntryReader) ReadEntry ¶
func (r *EntryReader) ReadEntry() (e dsio.Entry, err error)
ReadEntry reads one entry from the reader
func (*EntryReader) Structure ¶
func (r *EntryReader) Structure() *dataset.Structure
Structure gives this reader's structure
type ExecOpts ¶
type ExecOpts struct { // loader for loading datasets DatasetLoader dsref.Loader // supply a repo to make the 'qri' module available in starlark Repo repo.Repo // allow floating-point numbers AllowFloat bool // allow set data type AllowSet bool // allow lambda expressions AllowLambda bool // allow nested def statements AllowNestedDef bool // passed-in secrets (eg: API keys) Secrets map[string]interface{} // global values to pass for script execution Globals starlark.StringDict // func that errors if field specified by path is mutated MutateFieldCheck func(path ...string) error // provide a writer to record script "stderr" output to ErrWriter io.Writer // starlark module loader function ModuleLoader ModuleLoader // channel to send events on EventsCh chan event.Event }
ExecOpts defines options for execution
type HTTPGuard ¶
type HTTPGuard struct {
NetworkEnabled bool
}
HTTPGuard protects network requests, only allowing when network is enabled
func (*HTTPGuard) DisableNtwk ¶
func (h *HTTPGuard) DisableNtwk()
DisableNtwk prevents network calls from succeeding
type ModuleLoader ¶
ModuleLoader is a function that can load starlark modules
type StepRunner ¶
type StepRunner struct {
// contains filtered or unexported fields
}
StepRunner is able to run individual transform steps
func NewStepRunner ¶
func NewStepRunner(prev *dataset.Dataset, opts ...func(o *ExecOpts)) *StepRunner
NewStepRunner returns a new StepRunner for the given dataset
func (*StepRunner) LoadDatasetFunc ¶
func (r *StepRunner) LoadDatasetFunc(ctx context.Context, target *dataset.Dataset) func(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)
LoadDatasetFunc returns an implementation of the starlark load_dataset function
func (*StepRunner) RunStep ¶
func (r *StepRunner) RunStep(ctx context.Context, ds *dataset.Dataset, st *dataset.TransformStep) error
RunStep runs the single transform step using the dataset
Directories ¶
Path | Synopsis |
---|---|
Package ds exposes the qri dataset document model into starlark Package ds defines the qri dataset object within starlark outline: ds ds defines the qri dataset object within starlark.
|
Package ds exposes the qri dataset document model into starlark Package ds defines the qri dataset object within starlark outline: ds ds defines the qri dataset object within starlark. |