code: def _load_neighbors_from_external_source(self) -> None:
          
          graph: SpotifyArtistGraph = self._graph
          items: List[NameExternalIDPair] = graph.client.similar_artists(self.external_id)
  
          limit: int = graph.neighbor_count if graph.neighbor_count > 0 else self._NEIGHBORS_TO_LOAD
          if len(items) > limit:
              del items[limit:]
  
          for item in items:
              neighbor: SpotifyArtistNode = graph.nodes.get_node_by_name(item.name,
                                                                         can_validate_and_load=True,
                                                                         external_id=item.external_id)
  
              # Strangely we need this guard because the Spofity API's search method doesn't
              # recognise certain artist names.
              # Actually it could also be a bug in SpotifyClient.search_artists_by_name(),
              # the artist name sent as a request parameter may not be encoded 100% correctly...
              # Anyway, this is a working hotfix.
              if neighbor is not None:
                  graph.add_edge(self, neighbor)
docs: Loads the neighbors of the node from the igraph `Graph` instance that is
          wrapped by the graph that has this node.