22
22
from http import HTTPStatus
23
23
from inspect import isawaitable
24
24
from typing import (
25
+ TYPE_CHECKING ,
25
26
Any ,
26
27
Awaitable ,
27
28
Callable ,
61
62
from synapse .util .caches import intern_dict
62
63
from synapse .util .iterutils import chunk_seq
63
64
65
+ if TYPE_CHECKING :
66
+ from synapse .server import HomeServer
67
+
64
68
logger = logging .getLogger (__name__ )
65
69
66
70
HTML_ERROR_TEMPLATE = """<!DOCTYPE html>
@@ -343,6 +347,11 @@ def _send_error_response(
343
347
return_json_error (f , request )
344
348
345
349
350
+ _PathEntry = collections .namedtuple (
351
+ "_PathEntry" , ["pattern" , "callback" , "servlet_classname" ]
352
+ )
353
+
354
+
346
355
class JsonResource (DirectServeJsonResource ):
347
356
"""This implements the HttpServer interface and provides JSON support for
348
357
Resources.
@@ -359,14 +368,10 @@ class JsonResource(DirectServeJsonResource):
359
368
360
369
isLeaf = True
361
370
362
- _PathEntry = collections .namedtuple (
363
- "_PathEntry" , ["pattern" , "callback" , "servlet_classname" ]
364
- )
365
-
366
- def __init__ (self , hs , canonical_json = True , extract_context = False ):
371
+ def __init__ (self , hs : "HomeServer" , canonical_json = True , extract_context = False ):
367
372
super ().__init__ (canonical_json , extract_context )
368
373
self .clock = hs .get_clock ()
369
- self .path_regexs = {}
374
+ self .path_regexs : Dict [ bytes , List [ _PathEntry ]] = {}
370
375
self .hs = hs
371
376
372
377
def register_paths (self , method , path_patterns , callback , servlet_classname ):
@@ -391,7 +396,7 @@ def register_paths(self, method, path_patterns, callback, servlet_classname):
391
396
for path_pattern in path_patterns :
392
397
logger .debug ("Registering for %s %s" , method , path_pattern .pattern )
393
398
self .path_regexs .setdefault (method , []).append (
394
- self . _PathEntry (path_pattern , callback , servlet_classname )
399
+ _PathEntry (path_pattern , callback , servlet_classname )
395
400
)
396
401
397
402
def _get_handler_for_request (
0 commit comments