kcl

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 16 Imported by: 35

Documentation

Overview

Package kcl defines the top-level interface for KCL.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetFullSchemaType added in v0.7.0

func GetFullSchemaType(pathList []string, schemaName string, opts ...Option) ([]*gpyrpc.KclType, error)

GetFullSchemaType returns the full schema types for the given schema name from a list of KCL file paths.

Parameters:

  • pathList: A list of KCL file paths.
  • schemaName: The name of the schema to get the types for.
  • opts: Additional options to configure the processing.

Returns:

  • A slice of pointers to KclType representing the full schema types.
  • An error if there is any failure in the process.

func GetFullSchemaTypeMapping added in v0.9.0

func GetFullSchemaTypeMapping(pathList []string, schemaName string, opts ...Option) (map[string]*gpyrpc.KclType, error)

GetFullSchemaTypeMapping returns the full schema type mapping for the given schema name from a list of KCL file paths.

Parameters:

  • pathList: A list of KCL file paths.
  • schemaName: The name of the schema to get the type mapping for.
  • opts: Additional options to configure the processing.

Returns:

  • A map where the key is the schema name and the value is a pointer to KclType representing the schema type.
  • An error if there is any failure in the process.

func GetSchemaType

func GetSchemaType(filename string, src any, schemaName string) ([]*gpyrpc.KclType, error)

GetSchemaType returns the schema types associated with the given schema name from a KCL file or source code provided.

Parameters:

  • filename: The name of the KCL file.
  • src: The source content of the KCL file, which can be one of string, []byte or io.Reader types.
  • schemaName: The name of the schema to get the types for.

Returns:

  • A slice of pointers to KclType representing the schema types.
  • An error if there is any failure in the process.

func GetSchemaTypeMapping added in v0.5.1

func GetSchemaTypeMapping(filename string, src any, schemaName string) (map[string]*gpyrpc.KclType, error)

GetSchemaTypeMapping returns the schema type mapping for the given schema name from a KCL file or source code provided.

Parameters:

  • filename: The name of the KCL file.
  • src: The source content of the KCL file, which can be one of string, []byte or io.Reader types.
  • schemaName: The name of the schema to get the type mapping for.

Returns:

  • A map where the key is the schema name and the value is a pointer to KclType representing the schema type.
  • An error if there is any failure in the process.

func Service added in v0.9.2

func Service() api.ServiceClient

Service returns the interaction interface between KCL Go SDK and KCL Rust core.

func SplitDocuments added in v0.9.0

func SplitDocuments(s string) ([]string, error)

SplitDocuments returns a slice of all documents contained in a YAML string. Multiple documents can be divided by the YAML document separator (---). It allows for white space and comments to be after the separator on the same line, but will return an error if anything else is on the line.

Types

type Hook added in v0.8.0

type Hook interface {
	Do(o *Option, r *gpyrpc.ExecProgram_Result) error
}

type Hooks added in v0.8.0

type Hooks []Hook
var (
	DefaultHooks Hooks = []Hook{
		&typeAttributeHook{},
	}
)

type KCLResult

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

KCLResult denotes the result for the Run API.

func NewResult added in v0.8.2

func NewResult(value any) KCLResult

NewResult constructs a KCLResult using the value

func (*KCLResult) Get

func (m *KCLResult) Get(key string, target ...interface{}) interface{}

func (*KCLResult) GetValue

func (m *KCLResult) GetValue(key string, target ...interface{}) (value interface{}, err error)

func (*KCLResult) JSONString

func (m *KCLResult) JSONString() string

func (*KCLResult) ToBool added in v0.8.2

func (p *KCLResult) ToBool() (*bool, error)

ToBool returns the result as bool.

func (*KCLResult) ToFloat64 added in v0.8.2

func (p *KCLResult) ToFloat64() (*float64, error)

ToFloat64 returns the result as float64.

func (*KCLResult) ToInt added in v0.8.2

func (p *KCLResult) ToInt() (*int, error)

ToInt returns the result as int.

func (*KCLResult) ToList added in v0.8.2

func (p *KCLResult) ToList() ([]interface{}, error)

ToList returns the result as []interface{}.

func (*KCLResult) ToMap added in v0.8.2

func (p *KCLResult) ToMap() (map[string]interface{}, error)

ToMap returns the result as map[string]interface{}.

func (*KCLResult) ToString added in v0.8.2

func (p *KCLResult) ToString() (string, error)

ToString returns the result as string.

func (*KCLResult) ToType added in v0.8.2

func (p *KCLResult) ToType(target interface{}) error

ToType returns the result as target type.

func (*KCLResult) YAMLString

func (m *KCLResult) YAMLString() string

type KCLResultList

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

func ExecResultToKCLResult added in v0.8.0

func ExecResultToKCLResult(o *Option, resp *gpyrpc.ExecProgram_Result, logger io.Writer, hooks Hooks) (*KCLResultList, error)

func MustRun

func MustRun(path string, opts ...Option) *KCLResultList

func Run

func Run(path string, opts ...Option) (*KCLResultList, error)

func RunFiles

func RunFiles(paths []string, opts ...Option) (*KCLResultList, error)

func RunWithOpts

func RunWithOpts(opts ...Option) (*KCLResultList, error)

RunWithOpts is the same as Run, but it does not require a path as input. Note: you need to specify the path in options by method WithKFilenameList() or the workdir in method WorkDir(), or it will return an error.

func (*KCLResultList) First

func (p *KCLResultList) First() *KCLResult

func (*KCLResultList) Get

func (p *KCLResultList) Get(i int) *KCLResult

func (*KCLResultList) GetRawJsonResult

func (p *KCLResultList) GetRawJsonResult() string

func (*KCLResultList) GetRawYamlResult

func (p *KCLResultList) GetRawYamlResult() string

func (*KCLResultList) Len

func (p *KCLResultList) Len() int

func (*KCLResultList) Slice

func (p *KCLResultList) Slice() []KCLResult

func (*KCLResultList) Tail

func (p *KCLResultList) Tail() *KCLResult

func (*KCLResultList) ToBool added in v0.7.2

func (p *KCLResultList) ToBool() (*bool, error)

ToBool returns the result as bool.

func (*KCLResultList) ToFloat64 added in v0.7.2

func (p *KCLResultList) ToFloat64() (*float64, error)

ToFloat64 returns the result as float64.

func (*KCLResultList) ToInt added in v0.8.2

func (p *KCLResultList) ToInt() (*int, error)

ToInt returns the result as int.

func (*KCLResultList) ToList added in v0.7.2

func (p *KCLResultList) ToList() ([]interface{}, error)

ToList returns the result as []interface{}.

func (*KCLResultList) ToMap added in v0.7.2

func (p *KCLResultList) ToMap() (map[string]interface{}, error)

ToMap returns the result as map[string]interface{}.

func (*KCLResultList) ToString added in v0.7.2

func (p *KCLResultList) ToString() (string, error)

ToString returns the result as string.

func (*KCLResultList) ToType added in v0.7.2

func (p *KCLResultList) ToType(target interface{}) error

ToType returns the result as target type.

type KclType

type KclType = gpyrpc.KclType

type Option

type Option struct {
	*gpyrpc.ExecProgram_Args

	Err error
	// contains filtered or unexported fields
}

func NewOption

func NewOption() *Option

NewOption returns a new Option.

func ParseArgs

func ParseArgs(pathList []string, opts ...Option) (Option, error)

func WithCode

func WithCode(codes ...string) Option

func WithDisableNone

func WithDisableNone(disableNone bool) Option

kcl -n --disable_none

func WithExternalPkgNameAndPath added in v0.9.2

func WithExternalPkgNameAndPath(name, path string) Option

kcl -E aaa=/xx/xxx/aaa main.k

func WithExternalPkgs

func WithExternalPkgs(key_value_list ...string) Option

kcl -E aaa=/xx/xxx/aaa main.k

func WithFullTypePath added in v0.8.0

func WithFullTypePath(fullTypePath bool) Option

WithIncludeSchemaTypePath returns a Option which hold a include schema type path switch.

func WithIncludeSchemaTypePath added in v0.5.4

func WithIncludeSchemaTypePath(includeSchemaTypePath bool) Option

WithIncludeSchemaTypePath returns a Option which hold a include schema type path switch.

func WithKFilenames

func WithKFilenames(filenames ...string) Option

func WithLogger added in v0.7.0

func WithLogger(l io.Writer) Option

func WithOptions

func WithOptions(key_value_list ...string) Option

kcl -D aa=11 -D bb=22 main.k

func WithOverrides

func WithOverrides(overrides ...string) Option

kcl -O pkgpath:path.to.field=field_value kcl -O pkgpath.path.to.field-

func WithPrintOverridesAST

func WithPrintOverridesAST(printOverrideAst bool) Option

func WithSelectors added in v0.7.0

func WithSelectors(selectors ...string) Option

kcl -S path.to.field

func WithSettings

func WithSettings(filename string) Option

kcl -Y settings.yaml

func WithShowHidden added in v0.8.0

func WithShowHidden(showHidden bool) Option

kcl -H --show_hidden

func WithSortKeys

func WithSortKeys(sortKeys bool) Option

kcl -k --sort_keys

func WithWorkDir

func WithWorkDir(s string) Option

func (*Option) GetLogger added in v0.7.0

func (p *Option) GetLogger() io.Writer

func (*Option) JSONString

func (p *Option) JSONString() string

func (*Option) Merge

func (p *Option) Merge(opts ...Option) *Option

Merge will merge all options into one.

type VersionResult added in v0.9.2

type VersionResult = gpyrpc.GetVersion_Result

func GetVersion added in v0.9.2

func GetVersion() (*VersionResult, error)

GetVersion returns the KCL service version information.

Jump to

Keyboard shortcuts

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