kcl

package
v0.0.0-...-6c20dd6 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

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

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

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

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

func Service() api.ServiceClient

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

func SplitDocuments

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

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

type Hooks

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

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

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

ToBool returns the result as bool.

func (*KCLResult) ToFloat64

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

ToFloat64 returns the result as float64.

func (*KCLResult) ToInt

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

ToInt returns the result as int.

func (*KCLResult) ToList

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

ToList returns the result as []interface{}.

func (*KCLResult) ToMap

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

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

func (*KCLResult) ToString

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

ToString returns the result as string.

func (*KCLResult) ToType

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

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

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

ToBool returns the result as bool.

func (*KCLResultList) ToFloat64

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

ToFloat64 returns the result as float64.

func (*KCLResultList) ToInt

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

ToInt returns the result as int.

func (*KCLResultList) ToList

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

ToList returns the result as []interface{}.

func (*KCLResultList) ToMap

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

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

func (*KCLResultList) ToString

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

ToString returns the result as string.

func (*KCLResultList) ToType

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

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

func WithFullTypePath(fullTypePath bool) Option

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

func WithIncludeSchemaTypePath

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

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

func WithSelectors(selectors ...string) Option

kcl -S path.to.field

func WithSettings

func WithSettings(filename string) Option

kcl -Y settings.yaml

func WithShowHidden

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

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

type VersionResult = gpyrpc.GetVersion_Result

func GetVersion

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