| [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] |