Files
semantic-kernel/python/semantic_kernel/template_engine
Julio Carlos MenendezandEvan Mattson d97f9536c4 Python: Removes the _async suffix where is not needed (#4735)
### Motivation and Context
Delete all *_async where *_sync doesn't exist to make the library more
Pythonic.

Fixes #4629 

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄

---------

Co-authored-by: Evan Mattson <[email protected]>
2024-01-26 17:15:35 +00:00
..

Prompt Template Engine

The Semantic Kernel uses the following grammar to parse prompt templates:

# BNF parsed by TemplateTokenizer
[template]       ::= "" | [block] | [block] [template]
[block]          ::= [sk-block] | [text-block]
[sk-block]       ::= "{{" [variable] "}}" | "{{" [value] "}}" | "{{" [function-call] "}}"
[text-block]     ::= [any-char] | [any-char] [text-block]
[any-char]       ::= any char

# BNF parsed by CodeTokenizer:
[template]       ::= "" | [variable] " " [template] | [value] " " [template] | [function-call] " " [template]
[variable]       ::= "$" [valid-name]
[value]          ::= "'" [text] "'" | '"' [text] '"'
[function-call]  ::= [function-id] | [function-id] [parameter]
[parameter]      ::= [variable] | [value]

# BNF parsed by dedicated blocks
[function-id]    ::= [valid-name] | [valid-name] "." [valid-name]
[valid-name]     ::= [valid-symbol] | [valid-symbol] [valid-name]
[valid-symbol]   ::= [letter] | [digit] | "_"
[letter]         ::= "a" | "b" ... | "z" | "A" | "B" ... | "Z"
[digit]          ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"