datasetDiffer

package module
v0.0.0-...-73ed2cf Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2018 License: MIT Imports: 4 Imported by: 0

README

Qri GoDoc License Codecov CI Go Report Card

datasetDiffer

Utility for Diffing Datasets, currently a very basic placeholder

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DiffData

func DiffData(a, b *dataset.Dataset) (diff.Diff, error)

DiffData diffs the data of two datasets

func DiffDatasets

func DiffDatasets(a, b *dataset.Dataset) (map[string]diff.Diff, error)

DiffDatasets returns a map of diffs of the components of a dataset

func DiffJSON

func DiffJSON(a, b []byte) (diff.Diff, error)

DiffJSON diffs two json files independent of any Dataset structures

func DiffMeta

func DiffMeta(a, b *dataset.Meta) (diff.Diff, error)

DiffMeta diffs the metadata of two datasets

func DiffStructure

func DiffStructure(a, b *dataset.Structure) (diff.Diff, error)

DiffStructure diffs the structure of two datasets

func DiffTransform

func DiffTransform(a, b *dataset.Transform) (diff.Diff, error)

DiffTransform diffs the transform struct of two datasets

func DiffVisConfig

func DiffVisConfig(a, b *dataset.VisConfig) (diff.Diff, error)

DiffVisConfig diffs the dataset.VisConfig structs of two datasets

func MapDiffsToString

func MapDiffsToString(m map[string]diff.Diff) string

MapDiffsToString generates a string description from a map of diffs Currently the String generated reflects the first/highest priority change made. The priority of changes currently are

  1. dataset.Structure
  2. dataset.{Data} // TODO: use dereferenced data
  3. dataset.Transform
  4. dataset.Meta
  5. Dataset.VisConfig
func MapDiffsToString(m map[string]diff.Diff) string {
	if m["structure"] != nil {
		structureDiffs := m["structure"]
		deltas := structureDiffs.Deltas()
		if len(deltas) > 0 {
			// for i, d := range deltas {
			// 	fmt.Printf("%d. %s: (%T)\n", i+1, d)
			// }
			return fmt.Sprintf("Structure Changed. (%d changes)", len(deltas))
		}
	}
	if m["data"] != nil {
		dataDiffs := m["data"]
		deltas := dataDiffs.Deltas()
		if len(deltas) > 0 {
			return fmt.Sprintf("Data Changed. (%d changes)", len(deltas))
		}
	}
	if m["transform"] != nil {
		transformDiffs := m["transform"]
		deltas := transformDiffs.Deltas()
		if len(deltas) > 0 {
			return fmt.Sprintf("Transform Changed. (%d changes)", len(deltas))
		}
	}
	if m["meta"] != nil {
		metaDiffs := m["meta"]
		deltas := metaDiffs.Deltas()
		if len(deltas) > 0 {
			return fmt.Sprintf("Metadata Changed. (%d changes)", len(deltas))
		}
	}
	if m["visConfig"] != nil {
		visConfigDiffs := m["visConfig"]
		deltas := visConfigDiffs.Deltas()
		if len(deltas) > 0 {
			return fmt.Sprintf("VisConfig Changed. (%d changes)", len(deltas))
		}
	}
	return ""
}

Types

This section is empty.

Jump to

Keyboard shortcuts

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