option

package
v1.18.1 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	XDGConfigHomeEnvName   = "XDG_CONFIG_HOME"
	DefaultXDGConfigDir    = ".config"
	CSVQConfigDir          = "csvq"
	EnvFileName            = "csvq_env.json"
	PreloadCommandFileName = "csvqrc"

	HiddenPrefix = '.'
)
View Source
const (
	VariableSign            = "@"
	FlagSign                = "@@"
	EnvironmentVariableSign = "@%"
	RuntimeInformationSign  = "@#"
)
View Source
const (
	RepositoryFlag               = "REPOSITORY"
	TimezoneFlag                 = "TIMEZONE"
	DatetimeFormatFlag           = "DATETIME_FORMAT"
	AnsiQuotesFlag               = "ANSI_QUOTES"
	StrictEqualFlag              = "STRICT_EQUAL"
	WaitTimeoutFlag              = "WAIT_TIMEOUT"
	ImportFormatFlag             = "IMPORT_FORMAT"
	DelimiterFlag                = "DELIMITER"
	AllowUnevenFieldsFlag        = "ALLOW_UNEVEN_FIELDS"
	DelimiterPositionsFlag       = "DELIMITER_POSITIONS"
	JsonQueryFlag                = "JSON_QUERY"
	EncodingFlag                 = "ENCODING"
	NoHeaderFlag                 = "NO_HEADER"
	WithoutNullFlag              = "WITHOUT_NULL"
	StripEndingLineBreakFlag     = "STRIP_ENDING_LINE_BREAK"
	FormatFlag                   = "FORMAT"
	ExportEncodingFlag           = "WRITE_ENCODING"
	ExportDelimiterFlag          = "WRITE_DELIMITER"
	ExportDelimiterPositionsFlag = "WRITE_DELIMITER_POSITIONS"
	WithoutHeaderFlag            = "WITHOUT_HEADER"
	LineBreakFlag                = "LINE_BREAK"
	EncloseAllFlag               = "ENCLOSE_ALL"
	JsonEscapeFlag               = "JSON_ESCAPE"
	PrettyPrintFlag              = "PRETTY_PRINT"
	ScientificNotationFlag       = "SCIENTIFIC_NOTATION"
	EastAsianEncodingFlag        = "EAST_ASIAN_ENCODING"
	CountDiacriticalSignFlag     = "COUNT_DIACRITICAL_SIGN"
	CountFormatCodeFlag          = "COUNT_FORMAT_CODE"
	ColorFlag                    = "COLOR"
	QuietFlag                    = "QUIET"
	LimitRecursion               = "LIMIT_RECURSION"
	CPUFlag                      = "CPU"
	StatsFlag                    = "STATS"
)
View Source
const (
	CsvExt      = ".csv"
	TsvExt      = ".tsv"
	JsonExt     = ".json"
	JsonlExt    = ".jsonl"
	LtsvExt     = ".ltsv"
	GfmExt      = ".md"
	OrgExt      = ".org"
	SqlExt      = ".sql"
	CsvqProcExt = ".cql"
	TextExt     = ".txt"
)
View Source
const (
	NoEffect         = ""
	LableEffect      = "label"
	NumberEffect     = "number"
	StringEffect     = "string"
	BooleanEffect    = "boolean"
	TernaryEffect    = "ternary"
	DatetimeEffect   = "datetime"
	NullEffect       = "null"
	ObjectEffect     = "object"
	AttributeEffect  = "attribute"
	IdentifierEffect = "identifier"
	ValueEffect      = "value"
	EmphasisEffect   = "emphasis"
	PromptEffect     = "prompt"
	ErrorEffect      = "error"
	WarnEffect       = "warn"
	NoticeEffect     = "notice"
)
View Source
const DefaultEnvJson = `` /* 4108-byte string literal not displayed */
View Source
const DelimitAutomatically = "SPACES"

Variables

View Source
var (
	TestTime  time.Time // For Tests
	Timezones = NewTimezoneMap()
)
View Source
var FormatLiteral = map[Format]string{
	CSV:   "CSV",
	TSV:   "TSV",
	FIXED: "FIXED",
	JSON:  "JSON",
	JSONL: "JSONL",
	LTSV:  "LTSV",
	GFM:   "GFM",
	ORG:   "ORG",
	BOX:   "BOX",
	TEXT:  "TEXT",
}
View Source
var ImportFormats = []Format{
	CSV,
	TSV,
	FIXED,
	JSON,
	JSONL,
	LTSV,
}
View Source
var JsonEscapeTypeLiteral = map[txjson.EscapeType]string{
	txjson.Backslash:        "BACKSLASH",
	txjson.HexDigits:        "HEX",
	txjson.AllWithHexDigits: "HEXALL",
}

Functions

func AppendStrIfNotExist

func AppendStrIfNotExist(list []string, elem string) []string

func EnclosedEnvironmentVariableSymbol

func EnclosedEnvironmentVariableSymbol(s string) string

func EnvironmentVariableSymbol

func EnvironmentVariableSymbol(s string) string

func EscapeIdentifier

func EscapeIdentifier(s string) string

func EscapeString

func EscapeString(s string) string

func FlagSymbol

func FlagSymbol(s string) string

func FormatInt

func FormatInt(i int, thousandsSeparator string) string

func FormatNumber

func FormatNumber(f float64, precision int, decimalPoint string, thousandsSeparator string, decimalSeparator string) string

func GetCSVQConfigDirFilePath

func GetCSVQConfigDirFilePath(filename string) string

func GetConfigDirFilePath

func GetConfigDirFilePath(filename string) string

func GetCurrentDirFilePath

func GetCurrentDirFilePath(filename string) string

func GetDefaultNumberOfCPU

func GetDefaultNumberOfCPU() int

func GetHomeDirFilePath

func GetHomeDirFilePath(filename string) string

func GetLocation

func GetLocation(timezone string) (*time.Location, error)

func GetRand

func GetRand() *rand.Rand

func GetSpecialFilePath

func GetSpecialFilePath(filename string) []string

func JsonEscapeTypeToString

func JsonEscapeTypeToString(escapeType txjson.EscapeType) string

func MustBeEnclosed

func MustBeEnclosed(s string) bool

func NewPalette

func NewPalette(env *Environment) (*color.Palette, error)

func Now

func Now(location *time.Location) time.Time

func ParseDelimiter

func ParseDelimiter(s string) (rune, error)

func ParseDelimiterPositions

func ParseDelimiterPositions(s string) ([]int, bool, error)

func ParseEncoding

func ParseEncoding(s string) (text.Encoding, error)

func ParseJsonEscapeType

func ParseJsonEscapeType(s string) (txjson.EscapeType, error)

func ParseLineBreak

func ParseLineBreak(s string) (text.LineBreak, error)

func QuoteIdentifier

func QuoteIdentifier(s string) string

func QuoteString

func QuoteString(s string) string

func RuneWidth

func RuneWidth(r rune, flags *Flags) int

func RuntimeInformationSymbol

func RuntimeInformationSymbol(s string) string

func TextWidth

func TextWidth(s string, flags *Flags) int

func TrimSpace

func TrimSpace(s string) string

func UnescapeIdentifier

func UnescapeIdentifier(s string, quote rune) string

func UnescapeString

func UnescapeString(s string, quote rune) string

func VariableSymbol

func VariableSymbol(s string) string

Types

type Environment

type Environment struct {
	DatetimeFormat       []string            `json:"datetime_format"`
	Timezone             *string             `json:"timezone"`
	AnsiQuotes           *bool               `json:"ansi_quotes"`
	InteractiveShell     InteractiveShell    `json:"interactive_shell"`
	EnvironmentVariables map[string]string   `json:"environment_variables"`
	Palette              color.PaletteConfig `json:"palette"`
}

func NewEnvironment

func NewEnvironment(ctx context.Context, defaultWaitTimeout time.Duration, retryDelay time.Duration) (*Environment, error)

func (*Environment) Load

func (e *Environment) Load(ctx context.Context, defaultWaitTimeout time.Duration, retryDelay time.Duration) (err error)

func (*Environment) Merge

func (e *Environment) Merge(e2 *Environment)

type ExportOptions

type ExportOptions struct {
	StripEndingLineBreak bool
	Format               Format
	Encoding             text.Encoding
	Delimiter            rune
	DelimiterPositions   []int
	SingleLine           bool
	WithoutHeader        bool
	LineBreak            text.LineBreak
	EncloseAll           bool
	JsonEscape           txjson.EscapeType
	PrettyPrint          bool
	ScientificNotation   bool

	// For Calculation of String Width
	EastAsianEncoding    bool
	CountDiacriticalSign bool
	CountFormatCode      bool

	Color bool
}

func NewExportOptions

func NewExportOptions() ExportOptions

func (ExportOptions) Copy

func (ops ExportOptions) Copy() ExportOptions

type Flags

type Flags struct {
	// Common Settings
	Repository     string
	Location       string
	DatetimeFormat []string
	AnsiQuotes     bool
	StrictEqual    bool

	WaitTimeout float64

	// For Import
	ImportOptions ImportOptions

	// For Export
	ExportOptions ExportOptions

	// System Use
	Quiet          bool
	LimitRecursion int64
	CPU            int
	Stats          bool
	// contains filtered or unexported fields
}

func NewFlags

func NewFlags(env *Environment) (*Flags, error)

func (*Flags) GetTimeLocation

func (f *Flags) GetTimeLocation() *time.Location

func (*Flags) SetAllowUnevenFields

func (f *Flags) SetAllowUnevenFields(b bool)

func (*Flags) SetAnsiQuotes

func (f *Flags) SetAnsiQuotes(b bool)

func (*Flags) SetCPU

func (f *Flags) SetCPU(i int)

func (*Flags) SetColor

func (f *Flags) SetColor(b bool)

func (*Flags) SetCountDiacriticalSign

func (f *Flags) SetCountDiacriticalSign(b bool)

func (*Flags) SetCountFormatCode

func (f *Flags) SetCountFormatCode(b bool)

func (*Flags) SetDatetimeFormat

func (f *Flags) SetDatetimeFormat(s string)

func (*Flags) SetDelimiter

func (f *Flags) SetDelimiter(s string) error

func (*Flags) SetDelimiterPositions

func (f *Flags) SetDelimiterPositions(s string) error

func (*Flags) SetEastAsianEncoding

func (f *Flags) SetEastAsianEncoding(b bool)

func (*Flags) SetEncloseAll

func (f *Flags) SetEncloseAll(b bool)

func (*Flags) SetEncoding

func (f *Flags) SetEncoding(s string) error

func (*Flags) SetFormat

func (f *Flags) SetFormat(s string, outfile string, canOutputToPipe bool) error

func (*Flags) SetImportFormat

func (f *Flags) SetImportFormat(s string) error

func (*Flags) SetJsonEscape

func (f *Flags) SetJsonEscape(s string) error

func (*Flags) SetJsonQuery

func (f *Flags) SetJsonQuery(s string)

func (*Flags) SetLimitRecursion

func (f *Flags) SetLimitRecursion(i int64)

func (*Flags) SetLineBreak

func (f *Flags) SetLineBreak(s string) error

func (*Flags) SetLocation

func (f *Flags) SetLocation(s string) error

func (*Flags) SetNoHeader

func (f *Flags) SetNoHeader(b bool)

func (*Flags) SetPrettyPrint

func (f *Flags) SetPrettyPrint(b bool)

func (*Flags) SetQuiet

func (f *Flags) SetQuiet(b bool)

func (*Flags) SetRepository

func (f *Flags) SetRepository(s string) error

func (*Flags) SetScientificNotation

func (f *Flags) SetScientificNotation(b bool)

func (*Flags) SetStats

func (f *Flags) SetStats(b bool)

func (*Flags) SetStrictEqual

func (f *Flags) SetStrictEqual(b bool)

func (*Flags) SetStripEndingLineBreak

func (f *Flags) SetStripEndingLineBreak(b bool)

func (*Flags) SetWaitTimeout

func (f *Flags) SetWaitTimeout(t float64)

func (*Flags) SetWithoutHeader

func (f *Flags) SetWithoutHeader(b bool)

func (*Flags) SetWithoutNull

func (f *Flags) SetWithoutNull(b bool)

func (*Flags) SetWriteDelimiter

func (f *Flags) SetWriteDelimiter(s string) error

func (*Flags) SetWriteDelimiterPositions

func (f *Flags) SetWriteDelimiterPositions(s string) error

func (*Flags) SetWriteEncoding

func (f *Flags) SetWriteEncoding(s string) error

type Format

type Format int
const (
	AutoSelect Format = -1 + iota
	CSV
	TSV
	FIXED
	JSON
	JSONL
	LTSV
	GFM
	ORG
	BOX
	TEXT
)

func ParseFormat

func ParseFormat(s string, et txjson.EscapeType) (Format, txjson.EscapeType, error)

func (Format) String

func (f Format) String() string

type ImportOptions

type ImportOptions struct {
	Format             Format
	Delimiter          rune
	AllowUnevenFields  bool
	DelimiterPositions []int
	SingleLine         bool
	JsonQuery          string
	Encoding           text.Encoding
	NoHeader           bool
	WithoutNull        bool
}

func NewImportOptions

func NewImportOptions() ImportOptions

func (ImportOptions) Copy

func (ops ImportOptions) Copy() ImportOptions

type InteractiveShell

type InteractiveShell struct {
	HistoryFile      string `json:"history_file"`
	HistoryLimit     *int   `json:"history_limit"`
	Prompt           string `json:"prompt"`
	ContinuousPrompt string `json:"continuous_prompt"`
	Completion       *bool  `json:"completion"`
	KillWholeLine    *bool  `json:"kill_whole_line"`
	ViMode           *bool  `json:"vi_mode"`
}

type TimezoneMap

type TimezoneMap struct {
	// contains filtered or unexported fields
}

func NewTimezoneMap

func NewTimezoneMap() TimezoneMap

func (TimezoneMap) Get

func (tzmap TimezoneMap) Get(timezone string) (*time.Location, error)

Jump to

Keyboard shortcuts

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