+ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +api = api.API() +result = api.exec_program(args) +assert result.yaml_result == "app:\n replicas: 2" +``` + +
++ +```python +import kcl_lib.api as api + +try: + args = api.ExecProgram_Args(k_filename_list=["file_not_found"]) + api = api.API() + result = api.exec_program(args) + assert False +except Exception as err: + assert "Cannot find the kcl file" in str(err) +``` + +
++ +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=[TEST_FILE]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadPackage_Args( + parse_args=api.ParseProgram_Args(paths=["schema.k"]), resolve_ast=True +) +api = api.API() +result = api.load_package(args) +assert list(result.symbols.values())[0].ty.schema_name == "AppConfig" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ListVariables_Args(files=[TEST_FILE]) +api = api.API() +result = api.list_variables(args) +assert result.variables["app"].variables[0].value == "AppConfig {replicas: 2}" +``` + +
++ +The content of `options.k` is + +```python +a = option("key1") +b = option("key2", required=True) +c = { + metadata.key = option("metadata-key") +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["options.k"]) +api = api.API() +result = api.list_options(args) +assert len(result.options) == 3 +assert result.options[0].name == "key1" +assert result.options[1].name == "key2" +assert result.options[2].name == "metadata-key" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +exec_args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +args = api.GetSchemaTypeMapping_Args(exec_args=exec_args) +api = api.API() +result = api.get_schema_type_mapping(args) +assert result.schema_type_mapping["app"].properties["replicas"].type == "int" +``` + +
++ +The content of `main.k` is + +```python +a = 1 + +b = { + "a": 1 + "b": 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api +import pathlib + +test_file = "main.k" +args = api.OverrideFile_Args( + file=test_file, + specs=["b.a=2"], +) +api = api.API() +result = api.override_file(args) +assert len(result.parse_errors) == 0 +assert result.result == True +assert pathlib.Path(test_file).read_text() == """\ +a = 1 +b = { + "a": 2 + "b": 2 +} +""" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +source_code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +args = api.FormatCode_Args(source=source_code) +api_instance = api.API() +result = api_instance.format_code(args) +assert ( + result.formatted.decode() + == """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 + +""" + ) +``` + +
++ +The content of `format_path.k` is + +```python +schema Person: + name: str + age: int + + check: + 0 < age < 120 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.FormatPath_Args(path="format_path.k") +api_instance = api.API() +result = api_instance.format_path(args) +print(result) +``` + +
++ +The content of `lint_path.k` is + +```python +import math + +a = 1 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LintPath_Args(paths=["lint_path.k"]) +api_instance = api.API() +result = api_instance.lint_path(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +data = '{"name": "Alice", "age": 10}' +args = api.ValidateCode_Args(code=code, data=data, format="json") +api_instance = api.API() +result = api_instance.validate_code(args) +assert result.success == True +assert result.err_message == "" +``` + +
++ +The content of `main.k` is + +```python +a = 1 +b = a +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.Rename_Args( + package_root=".", + symbol_path="a", + file_paths=["main.k"], + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +args = api.RenameCode_Args( + package_root="/mock/path", + symbol_path="a", + source_codes={"/mock/path/main.k": "a = 1\nb = a"}, + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename_code(args) +assert result.changed_codes["/mock/path/main.k"] == "a2 = 1\nb = a2" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api +args = api.Test_Args( + pkg_list=["path/to/testing/pkg/..."], +) +api_instance = api.API() +result = api_instance.test(args) +``` + +
++ +The content of `kcl.yaml` is + +```yaml +kcl_cli_configs: + strict_range_check: true +kcl_options: + - key: key + value: value +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadSettingsFiles_Args( + work_dir=".", files=["kcl.yaml"] +) +api_instance = api.API() +result = api_instance.load_settings_files(args) +assert result.kcl_cli_configs.files == [] +assert result.kcl_cli_configs.strict_range_check == True +assert ( + result.kcl_options[0].key == "key" and result.kcl_options[0].value == '"value"' +) +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +pkg_names = [pkg.pkg_name for pkg in result.external_pkgs] +assert len(pkg_names) == 2 +assert "helloworld" in pkg_names +assert "flask" in pkg_names +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +The content of `module/main.k` is + +```python +import helloworld +import flask + +a = helloworld.The_first_kcl_program +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +exec_args = api.ExecProgram_Args( + k_filename_list=["module/main.k"], + external_pkgs=result.external_pkgs, +) +result = api_instance.exec_program(exec_args) +assert result.yaml_result == "a: Hello World!" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +api_instance = api.API() +result = api_instance.get_version() +print(result.version_info) +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +api = api.API() +result = api.exec_program(args) +assert result.yaml_result == "app:\n replicas: 2" +``` + +
++ +```python +import kcl_lib.api as api + +try: + args = api.ExecProgram_Args(k_filename_list=["file_not_found"]) + api = api.API() + result = api.exec_program(args) + assert False +except Exception as err: + assert "Cannot find the kcl file" in str(err) +``` + +
++ +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=[TEST_FILE]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadPackage_Args( + parse_args=api.ParseProgram_Args(paths=["schema.k"]), resolve_ast=True +) +api = api.API() +result = api.load_package(args) +assert list(result.symbols.values())[0].ty.schema_name == "AppConfig" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ListVariables_Args(files=[TEST_FILE]) +api = api.API() +result = api.list_variables(args) +assert result.variables["app"].variables[0].value == "AppConfig {replicas: 2}" +``` + +
++ +The content of `options.k` is + +```python +a = option("key1") +b = option("key2", required=True) +c = { + metadata.key = option("metadata-key") +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["options.k"]) +api = api.API() +result = api.list_options(args) +assert len(result.options) == 3 +assert result.options[0].name == "key1" +assert result.options[1].name == "key2" +assert result.options[2].name == "metadata-key" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +exec_args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +args = api.GetSchemaTypeMapping_Args(exec_args=exec_args) +api = api.API() +result = api.get_schema_type_mapping(args) +assert result.schema_type_mapping["app"].properties["replicas"].type == "int" +``` + +
++ +The content of `main.k` is + +```python +a = 1 + +b = { + "a": 1 + "b": 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api +import pathlib + +test_file = "main.k" +args = api.OverrideFile_Args( + file=test_file, + specs=["b.a=2"], +) +api = api.API() +result = api.override_file(args) +assert len(result.parse_errors) == 0 +assert result.result == True +assert pathlib.Path(test_file).read_text() == """\ +a = 1 +b = { + "a": 2 + "b": 2 +} +""" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +source_code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +args = api.FormatCode_Args(source=source_code) +api_instance = api.API() +result = api_instance.format_code(args) +assert ( + result.formatted.decode() + == """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 + +""" + ) +``` + +
++ +The content of `format_path.k` is + +```python +schema Person: + name: str + age: int + + check: + 0 < age < 120 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.FormatPath_Args(path="format_path.k") +api_instance = api.API() +result = api_instance.format_path(args) +print(result) +``` + +
++ +The content of `lint_path.k` is + +```python +import math + +a = 1 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LintPath_Args(paths=["lint_path.k"]) +api_instance = api.API() +result = api_instance.lint_path(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +data = '{"name": "Alice", "age": 10}' +args = api.ValidateCode_Args(code=code, data=data, format="json") +api_instance = api.API() +result = api_instance.validate_code(args) +assert result.success == True +assert result.err_message == "" +``` + +
++ +The content of `main.k` is + +```python +a = 1 +b = a +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.Rename_Args( + package_root=".", + symbol_path="a", + file_paths=["main.k"], + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +args = api.RenameCode_Args( + package_root="/mock/path", + symbol_path="a", + source_codes={"/mock/path/main.k": "a = 1\nb = a"}, + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename_code(args) +assert result.changed_codes["/mock/path/main.k"] == "a2 = 1\nb = a2" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api +args = api.Test_Args( + pkg_list=["path/to/testing/pkg/..."], +) +api_instance = api.API() +result = api_instance.test(args) +``` + +
++ +The content of `kcl.yaml` is + +```yaml +kcl_cli_configs: + strict_range_check: true +kcl_options: + - key: key + value: value +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadSettingsFiles_Args( + work_dir=".", files=["kcl.yaml"] +) +api_instance = api.API() +result = api_instance.load_settings_files(args) +assert result.kcl_cli_configs.files == [] +assert result.kcl_cli_configs.strict_range_check == True +assert ( + result.kcl_options[0].key == "key" and result.kcl_options[0].value == '"value"' +) +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +pkg_names = [pkg.pkg_name for pkg in result.external_pkgs] +assert len(pkg_names) == 2 +assert "helloworld" in pkg_names +assert "flask" in pkg_names +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +The content of `module/main.k` is + +```python +import helloworld +import flask + +a = helloworld.The_first_kcl_program +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +exec_args = api.ExecProgram_Args( + k_filename_list=["module/main.k"], + external_pkgs=result.external_pkgs, +) +result = api_instance.exec_program(exec_args) +assert result.yaml_result == "a: Hello World!" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +api_instance = api.API() +result = api_instance.get_version() +print(result.version_info) +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +api = api.API() +result = api.exec_program(args) +assert result.yaml_result == "app:\n replicas: 2" +``` + +
++ +```python +import kcl_lib.api as api + +try: + args = api.ExecProgram_Args(k_filename_list=["file_not_found"]) + api = api.API() + result = api.exec_program(args) + assert False +except Exception as err: + assert "Cannot find the kcl file" in str(err) +``` + +
++ +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=[TEST_FILE]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadPackage_Args( + parse_args=api.ParseProgram_Args(paths=["schema.k"]), resolve_ast=True +) +api = api.API() +result = api.load_package(args) +assert list(result.symbols.values())[0].ty.schema_name == "AppConfig" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ListVariables_Args(files=[TEST_FILE]) +api = api.API() +result = api.list_variables(args) +assert result.variables["app"].variables[0].value == "AppConfig {replicas: 2}" +``` + +
++ +The content of `options.k` is + +```python +a = option("key1") +b = option("key2", required=True) +c = { + metadata.key = option("metadata-key") +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["options.k"]) +api = api.API() +result = api.list_options(args) +assert len(result.options) == 3 +assert result.options[0].name == "key1" +assert result.options[1].name == "key2" +assert result.options[2].name == "metadata-key" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +exec_args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +args = api.GetSchemaTypeMapping_Args(exec_args=exec_args) +api = api.API() +result = api.get_schema_type_mapping(args) +assert result.schema_type_mapping["app"].properties["replicas"].type == "int" +``` + +
++ +The content of `main.k` is + +```python +a = 1 + +b = { + "a": 1 + "b": 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api +import pathlib + +test_file = "main.k" +args = api.OverrideFile_Args( + file=test_file, + specs=["b.a=2"], +) +api = api.API() +result = api.override_file(args) +assert len(result.parse_errors) == 0 +assert result.result == True +assert pathlib.Path(test_file).read_text() == """\ +a = 1 +b = { + "a": 2 + "b": 2 +} +""" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +source_code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +args = api.FormatCode_Args(source=source_code) +api_instance = api.API() +result = api_instance.format_code(args) +assert ( + result.formatted.decode() + == """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 + +""" + ) +``` + +
++ +The content of `format_path.k` is + +```python +schema Person: + name: str + age: int + + check: + 0 < age < 120 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.FormatPath_Args(path="format_path.k") +api_instance = api.API() +result = api_instance.format_path(args) +print(result) +``` + +
++ +The content of `lint_path.k` is + +```python +import math + +a = 1 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LintPath_Args(paths=["lint_path.k"]) +api_instance = api.API() +result = api_instance.lint_path(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +data = '{"name": "Alice", "age": 10}' +args = api.ValidateCode_Args(code=code, data=data, format="json") +api_instance = api.API() +result = api_instance.validate_code(args) +assert result.success == True +assert result.err_message == "" +``` + +
++ +The content of `main.k` is + +```python +a = 1 +b = a +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.Rename_Args( + package_root=".", + symbol_path="a", + file_paths=["main.k"], + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +args = api.RenameCode_Args( + package_root="/mock/path", + symbol_path="a", + source_codes={"/mock/path/main.k": "a = 1\nb = a"}, + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename_code(args) +assert result.changed_codes["/mock/path/main.k"] == "a2 = 1\nb = a2" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api +args = api.Test_Args( + pkg_list=["path/to/testing/pkg/..."], +) +api_instance = api.API() +result = api_instance.test(args) +``` + +
++ +The content of `kcl.yaml` is + +```yaml +kcl_cli_configs: + strict_range_check: true +kcl_options: + - key: key + value: value +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadSettingsFiles_Args( + work_dir=".", files=["kcl.yaml"] +) +api_instance = api.API() +result = api_instance.load_settings_files(args) +assert result.kcl_cli_configs.files == [] +assert result.kcl_cli_configs.strict_range_check == True +assert ( + result.kcl_options[0].key == "key" and result.kcl_options[0].value == '"value"' +) +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +pkg_names = [pkg.pkg_name for pkg in result.external_pkgs] +assert len(pkg_names) == 2 +assert "helloworld" in pkg_names +assert "flask" in pkg_names +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +The content of `module/main.k` is + +```python +import helloworld +import flask + +a = helloworld.The_first_kcl_program +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +exec_args = api.ExecProgram_Args( + k_filename_list=["module/main.k"], + external_pkgs=result.external_pkgs, +) +result = api_instance.exec_program(exec_args) +assert result.yaml_result == "a: Hello World!" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +api_instance = api.API() +result = api_instance.get_version() +print(result.version_info) +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +api = api.API() +result = api.exec_program(args) +assert result.yaml_result == "app:\n replicas: 2" +``` + +
++ +```python +import kcl_lib.api as api + +try: + args = api.ExecProgram_Args(k_filename_list=["file_not_found"]) + api = api.API() + result = api.exec_program(args) + assert False +except Exception as err: + assert "Cannot find the kcl file" in str(err) +``` + +
++ +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=[TEST_FILE]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["schema.k"]) +api = api.API() +result = api.parse_program(args) +assert len(result.paths) == 1 +assert len(result.errors) == 0 +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadPackage_Args( + parse_args=api.ParseProgram_Args(paths=["schema.k"]), resolve_ast=True +) +api = api.API() +result = api.load_package(args) +assert list(result.symbols.values())[0].ty.schema_name == "AppConfig" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ListVariables_Args(files=[TEST_FILE]) +api = api.API() +result = api.list_variables(args) +assert result.variables["app"].variables[0].value == "AppConfig {replicas: 2}" +``` + +
++ +The content of `options.k` is + +```python +a = option("key1") +b = option("key2", required=True) +c = { + metadata.key = option("metadata-key") +} +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.ParseProgram_Args(paths=["options.k"]) +api = api.API() +result = api.list_options(args) +assert len(result.options) == 3 +assert result.options[0].name == "key1" +assert result.options[1].name == "key2" +assert result.options[2].name == "metadata-key" +``` + +
++ +The content of `schema.k` is + +```python +schema AppConfig: + replicas: int + +app: AppConfig { + replicas: 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api + +exec_args = api.ExecProgram_Args(k_filename_list=["schema.k"]) +args = api.GetSchemaTypeMapping_Args(exec_args=exec_args) +api = api.API() +result = api.get_schema_type_mapping(args) +assert result.schema_type_mapping["app"].properties["replicas"].type == "int" +``` + +
++ +The content of `main.k` is + +```python +a = 1 + +b = { + "a": 1 + "b": 2 +} +``` + +Python Code + +```python +import kcl_lib.api as api +import pathlib + +test_file = "main.k" +args = api.OverrideFile_Args( + file=test_file, + specs=["b.a=2"], +) +api = api.API() +result = api.override_file(args) +assert len(result.parse_errors) == 0 +assert result.result == True +assert pathlib.Path(test_file).read_text() == """\ +a = 1 +b = { + "a": 2 + "b": 2 +} +""" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +source_code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +args = api.FormatCode_Args(source=source_code) +api_instance = api.API() +result = api_instance.format_code(args) +assert ( + result.formatted.decode() + == """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 + +""" + ) +``` + +
++ +The content of `format_path.k` is + +```python +schema Person: + name: str + age: int + + check: + 0 < age < 120 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.FormatPath_Args(path="format_path.k") +api_instance = api.API() +result = api_instance.format_path(args) +print(result) +``` + +
++ +The content of `lint_path.k` is + +```python +import math + +a = 1 +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LintPath_Args(paths=["lint_path.k"]) +api_instance = api.API() +result = api_instance.lint_path(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +code = """\ +schema Person: + name: str + age: int + + check: + 0 < age < 120 +""" +data = '{"name": "Alice", "age": 10}' +args = api.ValidateCode_Args(code=code, data=data, format="json") +api_instance = api.API() +result = api_instance.validate_code(args) +assert result.success == True +assert result.err_message == "" +``` + +
++ +The content of `main.k` is + +```python +a = 1 +b = a +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.Rename_Args( + package_root=".", + symbol_path="a", + file_paths=["main.k"], + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename(args) +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +args = api.RenameCode_Args( + package_root="/mock/path", + symbol_path="a", + source_codes={"/mock/path/main.k": "a = 1\nb = a"}, + new_name="a2", +) +api_instance = api.API() +result = api_instance.rename_code(args) +assert result.changed_codes["/mock/path/main.k"] == "a2 = 1\nb = a2" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api +args = api.Test_Args( + pkg_list=["path/to/testing/pkg/..."], +) +api_instance = api.API() +result = api_instance.test(args) +``` + +
++ +The content of `kcl.yaml` is + +```yaml +kcl_cli_configs: + strict_range_check: true +kcl_options: + - key: key + value: value +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.LoadSettingsFiles_Args( + work_dir=".", files=["kcl.yaml"] +) +api_instance = api.API() +result = api_instance.load_settings_files(args) +assert result.kcl_cli_configs.files == [] +assert result.kcl_cli_configs.strict_range_check == True +assert ( + result.kcl_options[0].key == "key" and result.kcl_options[0].value == '"value"' +) +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +pkg_names = [pkg.pkg_name for pkg in result.external_pkgs] +assert len(pkg_names) == 2 +assert "helloworld" in pkg_names +assert "flask" in pkg_names +``` + +
++ +The content of `module/kcl.mod` is + +```yaml +[package] +name = "mod_update" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.0" } +flask = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests", commit = "ade147b" } +``` + +The content of `module/main.k` is + +```python +import helloworld +import flask + +a = helloworld.The_first_kcl_program +``` + +Python Code + +```python +import kcl_lib.api as api + +args = api.UpdateDependencies_Args( + manifest_path="module" +) +api_instance = api.API() +result = api_instance.update_dependencies(args) +exec_args = api.ExecProgram_Args( + k_filename_list=["module/main.k"], + external_pkgs=result.external_pkgs, +) +result = api_instance.exec_program(exec_args) +assert result.yaml_result == "a: Hello World!" +``` + +
++ +Python Code + +```python +import kcl_lib.api as api + +api_instance = api.API() +result = api_instance.get_version() +print(result.version_info) +``` + +
+