1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
- case: register_filter_unnamed
main: |
from typing_extensions import reveal_type
from django import template
register = template.Library()
@register.filter
def lower(value: str) -> str:
return value.lower()
reveal_type(lower) # N: Revealed type is "def (value: builtins.str) -> builtins.str"
- case: register_filter_named
main: |
from typing_extensions import reveal_type
from django import template
register = template.Library()
@register.filter(name="tolower")
def lower(value: str) -> str:
return value.lower()
reveal_type(lower) # N: Revealed type is "def (value: builtins.str) -> builtins.str"
- case: register_simple_tag_no_args
main: |
from typing_extensions import reveal_type
import datetime
from django import template
register = template.Library()
@register.simple_tag
def current_time(format_string: str) -> str:
return datetime.datetime.now().strftime(format_string)
reveal_type(current_time) # N: Revealed type is "def (format_string: builtins.str) -> builtins.str"
- case: register_simple_tag_context
main: |
from typing_extensions import reveal_type
from django import template
from typing import Any
register = template.Library()
@register.simple_tag(takes_context=True)
def current_time(context: dict[str, Any], format_string: str) -> str:
timezone = context['timezone']
return "test"
reveal_type(current_time) # N: Revealed type is "def (context: builtins.dict[builtins.str, Any], format_string: builtins.str) -> builtins.str"
- case: register_simple_tag_named
main: |
from typing_extensions import reveal_type
from django import template
register = template.Library()
@register.simple_tag(name='minustwo')
def some_function(value: int) -> int:
return value - 2
reveal_type(some_function) # N: Revealed type is "def (value: builtins.int) -> builtins.int"
- case: register_simple_tag_via_call
main: |
from typing_extensions import reveal_type
from django import template
register = template.Library()
def f(s: str) -> str:
return s * 2
reveal_type(register.simple_tag(f, name='double')) # N: Revealed type is "def (s: builtins.str) -> builtins.str"
- case: register_simple_block_tag
main: |
from typing_extensions import reveal_type
import datetime
from django import template
register = template.Library()
def f(s: str) -> str:
return s * 2
reveal_type(register.simple_block_tag(f, name='double')) # N: Revealed type is "def (s: builtins.str) -> builtins.str"
@register.simple_block_tag
def current_time(format_string: str) -> str:
return datetime.datetime.now().strftime(format_string)
reveal_type(current_time) # N: Revealed type is "def (format_string: builtins.str) -> builtins.str"
@register.simple_block_tag(name='minustwo')
def some_function(value: int) -> int:
return value - 2
reveal_type(some_function) # N: Revealed type is "def (value: builtins.int) -> builtins.int"
- case: register_tag_no_args
main: |
from typing_extensions import reveal_type
from django import template
from django.template.base import Parser, Token
from django.template.defaulttags import CycleNode
register = template.Library()
@register.tag
def cycle(parser: Parser, token: Token) -> CycleNode:
return CycleNode([])
reveal_type(cycle) # N: Revealed type is "def (parser: django.template.base.Parser, token: django.template.base.Token) -> django.template.defaulttags.CycleNode"
- case: register_tag_named
main: |
from typing_extensions import reveal_type
from django import template
from django.template.base import Parser, Token
from django.template.defaulttags import CycleNode
register = template.Library()
@register.tag(name="cycle")
def cycle_impl(parser: Parser, token: Token) -> CycleNode:
return CycleNode([])
reveal_type(cycle_impl) # N: Revealed type is "def (parser: django.template.base.Parser, token: django.template.base.Token) -> django.template.defaulttags.CycleNode"
- case: register_inclusion_tag
main: |
from typing_extensions import reveal_type
from django import template
register = template.Library()
@register.inclusion_tag('results.html')
def format_results(results: list[str]) -> str:
return ', '.join(results)
reveal_type(format_results) # N: Revealed type is "def (results: builtins.list[builtins.str]) -> builtins.str"
|