From 85fa9090d2b6d24791ba11ac1ea7a42c3cc3f37c Mon Sep 17 00:00:00 2001 From: b5 Date: Mon, 4 Feb 2019 12:06:13 -0500 Subject: [PATCH 1/2] feat(ds.get_body): return None on empty body, support optional default body --- ds/dataset.go | 7 ++++++- ds/dataset_test.go | 2 +- ds/entry_reader.go | 7 +++++++ entry_reader.go | 6 ++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ds/dataset.go b/ds/dataset.go index d01c9ae..97fc56b 100644 --- a/ds/dataset.go +++ b/ds/dataset.go @@ -113,8 +113,13 @@ func (d *Dataset) GetBody(thread *starlark.Thread, _ *starlark.Builtin, args sta return d.body, nil } + var valx starlark.Value + if err := starlark.UnpackArgs("get_body", args, kwargs, "default?", &valx); err != nil { + return nil, err + } + if d.ds.BodyFile() == nil { - return starlark.None, fmt.Errorf("this dataset has no body") + return valx, nil } if d.ds.Structure == nil { return starlark.None, fmt.Errorf("error: no structure for previous dataset") diff --git a/ds/dataset_test.go b/ds/dataset_test.go index 37741ba..192b01f 100644 --- a/ds/dataset_test.go +++ b/ds/dataset_test.go @@ -12,7 +12,7 @@ func TestCheckFields(t *testing.T) { allErrCheck := func(fields ...string) error { return fieldErr } - ds := NewDataset(nil, nil, allErrCheck) + ds := NewDataset(nil, allErrCheck) thread := &starlark.Thread{} if _, err := ds.SetBody(thread, nil, starlark.Tuple{starlark.String("data")}, nil); err != fieldErr { diff --git a/ds/entry_reader.go b/ds/entry_reader.go index aa10f71..b85420b 100644 --- a/ds/entry_reader.go +++ b/ds/entry_reader.go @@ -18,6 +18,8 @@ type EntryReader struct { data starlark.Value } +var _ dsio.EntryReader = (*EntryReader)(nil) + // NewEntryReader creates a new Entry Reader func NewEntryReader(st *dataset.Structure, iter starlark.Iterable) *EntryReader { return &EntryReader{ @@ -75,3 +77,8 @@ func (r *EntryReader) ReadEntry() (e dsio.Entry, err error) { } return } + +// Close finalizes the reader +func (r *EntryReader) Close() error { + return nil +} diff --git a/entry_reader.go b/entry_reader.go index e36c7bb..7be4460 100644 --- a/entry_reader.go +++ b/entry_reader.go @@ -74,3 +74,9 @@ func (r *EntryReader) ReadEntry() (e dsio.Entry, err error) { } return } + +// Close finalizes the reader +func (r *EntryReader) Close() error { + // TODO (b5): consume & close iterator + return nil +} From dcb150503d0c5a2c7bed8f9a6b1a2568134be7d5 Mon Sep 17 00:00:00 2001 From: b5 Date: Mon, 4 Feb 2019 19:20:10 -0500 Subject: [PATCH 2/2] chore(release): release v0.2.1 --- CHANGELOG.md | 10 ++++++++++ startf.go | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95d2e8e..077e120 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ + +# [0.2.1](https://github.com/qri-io/startf/compare/v0.2.0...v0.2.1) (2019-02-05) + + +### Features + +* **ds.get_body:** return None on empty body, support optional default body ([85fa909](https://github.com/qri-io/startf/commit/85fa909)) + + + # [0.2.0](https://github.com/qri-io/startf/compare/v0.1.0...v0.2.0) (2019-01-22) diff --git a/startf.go b/startf.go index 0f0f2b9..be5c44e 100644 --- a/startf.go +++ b/startf.go @@ -2,4 +2,4 @@ package startf // Version is the current version of this startf, this version number will be written // with each transformation exectution -const Version = "0.2.1-dev" +const Version = "0.2.1"