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