code: def get_project_url(
      self, project_id: str, workspace: str, project_name: str
  ) -> str:
      pass
  
imports: import abc
  from typing import Any, List, Optional, Tuple, Union
  from neptune.api.dtos import FileEntry
  from neptune.common.exceptions import NeptuneException
  from neptune.internal.artifacts.types import ArtifactFileData
  from neptune.internal.backends.api_model import ApiExperiment, ArtifactAttribute, Attribute, AttributeType, BoolAttribute, DatetimeAttribute, FileAttribute, FloatAttribute, FloatSeriesAttribute, FloatSeriesValues, ImageSeriesValues, IntAttribute, LeaderboardEntry, Project, StringAttribute, StringSeriesAttribute, StringSeriesValues, StringSetAttribute, Workspace
  from neptune.internal.backends.nql import NQLQuery
  from neptune.internal.container_type import ContainerType
  from neptune.internal.id_formats import QualifiedName, UniqueId
  from neptune.internal.operation import Operation
  from neptune.internal.operation_processors.operation_storage import OperationStorage
  from neptune.internal.utils.git import GitInfo
  from neptune.internal.websockets.websockets_factory import WebsocketsFactory
label_desc: Use image node_id 34 for calling the NeptuneBackend obj's underlying member method code with example usage: obj.get_project_url(project_id, workspace, project_name) without return types