Loads the neighbors of the node from the igraph `Graph` instance that is
        wrapped by the graph that has this node.

def _load_neighbors_from_external_source(self) -> None:
        """
        Loads the neighbors of the node from the igraph `Graph` instance that is
        wrapped by the graph that has this node.
        """
        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)