44
55from .base import GraphQLBackend
66
7- _cached_schemas = {}
7+ if False :
8+ from typing import Any , Dict , Optional , Union , Tuple , Hashable
9+ from .base import GraphQLDocument
810
9- _cached_queries = {}
11+ _cached_schemas = {} # type: Dict[GraphQLSchema, str]
12+
13+ _cached_queries = {} # type: Dict[str, str]
1014
1115
1216def get_unique_schema_id (schema ):
17+ # type: (GraphQLSchema) -> str
1318 """Get a unique id given a GraphQLSchema"""
1419 assert isinstance (schema , GraphQLSchema ), (
1520 "Must receive a GraphQLSchema as schema. Received {}"
@@ -21,6 +26,7 @@ def get_unique_schema_id(schema):
2126
2227
2328def get_unique_document_id (query_str ):
29+ # type: (str) -> str
2430 """Get a unique id given a query_string"""
2531 assert isinstance (query_str , string_types ), (
2632 "Must receive a string as query_str. Received {}"
@@ -32,7 +38,13 @@ def get_unique_document_id(query_str):
3238
3339
3440class GraphQLCachedBackend (GraphQLBackend ):
35- def __init__ (self , backend , cache_map = None , use_consistent_hash = False ):
41+ def __init__ (
42+ self ,
43+ backend , # type: GraphQLBackend
44+ cache_map = None , # type: Optional[Dict[Hashable, GraphQLDocument]]
45+ use_consistent_hash = False , # type: bool
46+ ):
47+ # type: (...) -> None
3648 assert isinstance (
3749 backend , GraphQLBackend
3850 ), "Provided backend must be an instance of GraphQLBackend"
@@ -43,14 +55,16 @@ def __init__(self, backend, cache_map=None, use_consistent_hash=False):
4355 self .use_consistent_hash = use_consistent_hash
4456
4557 def get_key_for_schema_and_document_string (self , schema , request_string ):
58+ # type: (GraphQLSchema, str) -> int
4659 """This method returns a unique key given a schema and a request_string"""
4760 if self .use_consistent_hash :
4861 schema_id = get_unique_schema_id (schema )
4962 document_id = get_unique_document_id (request_string )
50- return ( schema_id , document_id )
63+ return hash (( schema_id , document_id ) )
5164 return hash ((schema , request_string ))
5265
5366 def document_from_string (self , schema , request_string ):
67+ # type: (GraphQLSchema, str) -> Optional[GraphQLDocument]
5468 """This method returns a GraphQLQuery (from cache if present)"""
5569 key = self .get_key_for_schema_and_document_string (schema , request_string )
5670 if key not in self .cache_map :
0 commit comments