original_docstring: 
          Make an iterator using the SCAN command so that the client doesn't
          need to remember the cursor position.
  
          ``match`` allows for filtering the keys by pattern
          ``count`` allows for hint the minimum number of returns
  
          Cluster impl:
              Result from SCAN is different in cluster mode.
          
docstring: Make an iterator using the SCAN command so that the client doesn't
  need to remember the cursor position.
  
  
  
  Cluster impl:
  Result from SCAN is different in cluster mode.
docstring_tokens: Make an iterator using the SCAN command so that the client doesn ' t need to remember the cursor position . Cluster impl : Result from SCAN is different in cluster mode .
code: def scan_iter(self, match=None, count=None):
          """
          Make an iterator using the SCAN command so that the client doesn't
          need to remember the cursor position.
  
          ``match`` allows for filtering the keys by pattern
          ``count`` allows for hint the minimum number of returns
  
          Cluster impl:
              Result from SCAN is different in cluster mode.
          """
          cursors = {}
          nodeData = {}
          for master_node in self.connection_pool.nodes.all_masters():
              cursors[master_node["name"]] = "0"
              nodeData[master_node["name"]] = master_node
  
          while not all(cursors[node] == 0 for node in cursors):
              for node in cursors:
                  if cursors[node] == 0:
                      continue
  
                  conn = self.connection_pool.get_connection_by_node(nodeData[node])
  
                  pieces = ['SCAN', cursors[node]]
                  if match is not None:
                      pieces.extend([Token('MATCH'), match])
                  if count is not None:
                      pieces.extend([Token('COUNT'), count])
  
                  conn.send_command(*pieces)
  
                  raw_resp = conn.read_response()
  
                  # if you don't release the connection, the driver will make another, and you will hate your life
                  self.connection_pool.release(conn)
                  cur, resp = self._parse_scan(raw_resp)
                  cursors[node] = cur
  
                  for r in resp:
                      yield r
code_tokens: def scan_iter ( self , match = None , count = None ) : cursors = { } nodeData = { } for master_node in self . connection_pool . nodes . all_masters ( ) : cursors [ master_node [ "name" ] ] = "0" nodeData [ master_node [ "name" ] ] = master_node while not all ( cursors [ node ] == 0 for node in cursors ) : for node in cursors : if cursors [ node ] == 0 : continue conn = self . connection_pool . get_connection_by_node ( nodeData [ node ] ) pieces = [ 'SCAN' , cursors [ node ] ] if match is not None : pieces . extend ( [ Token ( 'MATCH' ) , match ] ) if count is not None : pieces . extend ( [ Token ( 'COUNT' ) , count ] ) conn . send_command ( * pieces ) raw_resp = conn . read_response ( ) self . connection_pool . release ( conn ) cur , resp = self . _parse_scan ( raw_resp ) cursors [ node ] = cur for r in resp : yield r
short_docstring: Make an iterator using the SCAN command so that the client doesn't
  need to remember the cursor position.
short_docstring_tokens: Make an iterator using the SCAN command so that the client doesn ' t need to remember the cursor position .
comment: """
          Make an iterator using the SCAN command so that the client doesn't
          need to remember the cursor position.
  
          ``match`` allows for filtering the keys by pattern
          ``count`` allows for hint the minimum number of returns
  
          Cluster impl:
              Result from SCAN is different in cluster mode.
          """$SEP$# if you don't release the connection, the driver will make another, and you will hate your life