code: def from_json(cls, viewspec):
      obj = cls(project=viewspec["project"]["name"])
      obj._viewspec = viewspec
      obj._orig_viewspec = deepcopy(obj._viewspec)
      return obj
  
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 7 for calling the Report obj's underlying member method code with example usage: obj.from_json(cls, viewspec) and returns: obj