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