nodes: 0, module; 1, function_definition; 2, function_name:georadius; 3, parameters; 4, block; 5, identifier:self; 6, identifier:key; 7, identifier:longitude; 8, identifier:latitude; 9, identifier:radius; 10, default_parameter; 11, keyword_separator; 12, default_parameter; 13, default_parameter; 14, default_parameter; 15, default_parameter; 16, default_parameter; 17, default_parameter; 18, expression_statement; 19, expression_statement; 20, expression_statement; 21, if_statement; 22, return_statement; 23, identifier:unit; 24, string; 25, identifier:with_dist; 26, False; 27, identifier:with_hash; 28, False; 29, identifier:with_coord; 30, False; 31, identifier:count; 32, None; 33, identifier:sort; 34, None; 35, identifier:encoding; 36, identifier:_NOTSET; 37, comment:"""Query a sorted set representing a geospatial index to fetch members
          matching a given maximum distance from a point.
  
          Return value follows Redis convention:
  
          * if none of ``WITH*`` flags are set -- list of strings returned:
  
              >>> await redis.georadius('Sicily', 15, 37, 200, 'km')
              [b"Palermo", b"Catania"]
  
          * if any flag (or all) is set -- list of named tuples returned:
  
              >>> await redis.georadius('Sicily', 15, 37, 200, 'km',
              ...                       with_dist=True)
              [GeoMember(name=b"Palermo", dist=190.4424, hash=None, coord=None),
               GeoMember(name=b"Catania", dist=56.4413, hash=None, coord=None)]
  
          :raises TypeError: radius is not float or int
          :raises TypeError: count is not int
          :raises ValueError: if unit not equal ``m``, ``km``, ``mi`` or ``ft``
          :raises ValueError: if sort not equal ``ASC`` or ``DESC``
  
          :rtype: list[str] or list[GeoMember]
          """; 38, assignment; 39, assignment; 40, boolean_operator; 41, block; 42, identifier:fut; 43, string_content:m; 44, identifier:args; 45, call; 46, identifier:fut; 47, call; 48, boolean_operator; 49, identifier:with_coord; 50, return_statement; 51, identifier:validate_georadius_options; 52, argument_list; 53, attribute; 54, argument_list; 55, identifier:with_dist; 56, identifier:with_hash; 57, call; 58, identifier:radius; 59, identifier:unit; 60, identifier:with_dist; 61, identifier:with_hash; 62, identifier:with_coord; 63, identifier:count; 64, identifier:sort; 65, identifier:self; 66, identifier:execute; 67, string; 68, identifier:key; 69, identifier:longitude; 70, identifier:latitude; 71, identifier:radius; 72, identifier:unit; 73, list_splat; 74, keyword_argument; 75, identifier:wait_convert; 76, argument_list; 77, string_content:GEORADIUS; 78, identifier:args; 79, identifier:encoding; 80, identifier:encoding; 81, identifier:fut; 82, identifier:make_geomember; 83, keyword_argument; 84, keyword_argument; 85, keyword_argument; 86, identifier:with_dist; 87, identifier:with_dist; 88, identifier:with_hash; 89, identifier:with_hash; 90, identifier:with_coord; 91, identifier:with_coord
code: def georadius(self, key, longitude, latitude, radius, unit='m', *,
                    with_dist=False, with_hash=False, with_coord=False,
                    count=None, sort=None, encoding=_NOTSET):
          """Query a sorted set representing a geospatial index to fetch members
          matching a given maximum distance from a point.
  
          Return value follows Redis convention:
  
          * if none of ``WITH*`` flags are set -- list of strings returned:
  
              >>> await redis.georadius('Sicily', 15, 37, 200, 'km')
              [b"Palermo", b"Catania"]
  
          * if any flag (or all) is set -- list of named tuples returned:
  
              >>> await redis.georadius('Sicily', 15, 37, 200, 'km',
              ...                       with_dist=True)
              [GeoMember(name=b"Palermo", dist=190.4424, hash=None, coord=None),
               GeoMember(name=b"Catania", dist=56.4413, hash=None, coord=None)]
  
          :raises TypeError: radius is not float or int
          :raises TypeError: count is not int
          :raises ValueError: if unit not equal ``m``, ``km``, ``mi`` or ``ft``
          :raises ValueError: if sort not equal ``ASC`` or ``DESC``
  
          :rtype: list[str] or list[GeoMember]
          """
          args = validate_georadius_options(
              radius, unit, with_dist, with_hash, with_coord, count, sort
          )
  
          fut = self.execute(
              b'GEORADIUS', key, longitude, latitude, radius,
              unit, *args, encoding=encoding
          )
          if with_dist or with_hash or with_coord:
              return wait_convert(fut, make_geomember,
                                  with_dist=with_dist,
                                  with_hash=with_hash,
                                  with_coord=with_coord)
          return fut