func (pse *PipestanceOverrides) Set(path string) error {
	return pse.ReadFile(path)
}
This is an alias for ReadFile, to  implement the flag.Value interface.
package core
import (
	"encoding/json"
	"fmt"
	"os"
	"github.com/martian-lang/martian/martian/util"
)
func partiallyQualifiedName(n string) string {
	for count := 0; count < 2 && len(n) > 0; n = n[1:] {
		if n[0] == '.' {
			count++
		}
	}
	return n
}
type StageOverride struct {
	ForceVolatile *bool `json:"force_volatile,omitempty"`
	JoinThreads *float64     `json:"join.threads,omitempty"`
	JoinMem     *float64     `json:"join.mem_gb,omitempty"`
	JoinVMem    *float64     `json:"join.vmem_gb,omitempty"`
	JoinProfile *ProfileMode `json:"join.profile,omitempty"`
	ChunkThreads *float64     `json:"chunk.threads,omitempty"`
	ChunkMem     *float64     `json:"chunk.mem_gb,omitempty"`
	ChunkVMem    *float64     `json:"chunk.vmem_gb,omitempty"`
	ChunkProfile *ProfileMode `json:"chunk.profile,omitempty"`
	SplitThreads *float64     `json:"split.threads,omitempty"`
	SplitMem     *float64     `json:"split.mem_gb,omitempty"`
	SplitVMem    *float64     `json:"split.vmem_gb,omitempty"`
	SplitProfile *ProfileMode `json:"split.profile,omitempty"`
}
type PipestanceOverrides struct {
	filename         string
	overridesbystage map[string]*StageOverride
}
func ReadOverrides(path string) (*PipestanceOverrides, error) {
	pse := new(PipestanceOverrides)
	return pse, pse.Set(path)
}
func (*PipestanceOverrides) Type() string {
	return "pipestance overrides json"
}
func (pse *PipestanceOverrides) String() string {
	return pse.filename
}