| [case testTemplateStringBasics] | |
| reveal_type(t"foobar") # N: Revealed type is "string.templatelib.Template" | |
| t"{'foobar'}" | |
| t"foo{'bar'}" | |
| t".{1}." | |
| t"{type(1)}" | |
| t"{1!r}" | |
| t"{1:03d}" | |
| t"{1!r:03d}" | |
| from string.templatelib import Template | |
| a: Template | |
| a = t"foobar" | |
| a = t"{'foobar'}" | |
| [builtins fixtures/f_string.pyi] | |
| [case testTemplateStringWithoutExplicitImport] | |
| reveal_type(t"implicit import works") # N: Revealed type is "string.templatelib.Template" | |
| [builtins fixtures/f_string.pyi] | |
| [case testTemplateStringExpressionsOk] | |
| t".{1 + 1}." | |
| t".{1 + 1}.{'foo' + 'bar'}" | |
| [builtins fixtures/f_string.pyi] | |
| [case testTemplateStringExpressionsErrors] | |
| t"{1 + ''}" # E: Unsupported operand types for + ("int" and "str") | |
| t".{1 + ''}" # E: Unsupported operand types for + ("int" and "str") | |
| [builtins fixtures/f_string.pyi] | |
| [case testTemplateStringParseFormatOptions] | |
| value = 10.5142 | |
| width = 10 | |
| precision = 4 | |
| t"result: {value:{width}.{precision}}" | |
| [builtins fixtures/f_string.pyi] | |
| [case testTemplateStringNestedExpressionsTypeChecked] | |
| t"{2:{3 + ''}}" # E: Unsupported operand types for + ("int" and "str") | |
| [builtins fixtures/f_string.pyi] | |
| [case testIncrementalTemplateStringImplicitDependency] | |
| import m | |
| reveal_type(m.x) | |
| [file m.py] | |
| x = "foo" | |
| [file m.py.2] | |
| x = t"foo" | |
| [out1] | |
| main:2: note: Revealed type is "builtins.str" | |
| [out2] | |
| main:2: note: Revealed type is "string.templatelib.Template" | |
| [builtins fixtures/f_string.pyi] |