code: def from_url(cls, url, api=None):
      if api is None:
          api = PublicApi()
      report_id = cls._url_to_report_id(url)
      r = api.client.execute(
          VIEW_REPORT, variable_values={"reportId": report_id}
      )
      viewspec = r["view"]
      viewspec["spec"] = json.loads(viewspec["spec"])
      return cls.from_json(viewspec)
  
imports: import base64
  import inspect
  import json
  import re
  import urllib
  from copy import deepcopy
  from typing import List
  from ...None import __version__
  from ...None import termlog, termwarn
  from ...sdk.lib import ipython
  from ..public import Api
  from ..public import RetryingClient
  from ._blocks import P, PanelGrid, UnknownBlock, WeaveBlock, block_mapping, weave_blocks
  from .mutations import UPSERT_VIEW, VIEW_REPORT
  from .runset import Runset
  from .util import Attr, Base, Block, coalesce, generate_name, nested_get, nested_set
  from .validators import OneOf, TypeValidator
label_desc: Use image node_id 2 for calling the Report obj's underlying member method code with example usage: obj.from_url(cls, url, api) and returns: cls