code: def from_proto(cls, proto: DeploymentVersionProto):
      return DeploymentVersion(
          proto.code_version,
          DeploymentConfig.from_proto(proto.deployment_config),
          json.loads(proto.ray_actor_options),
          placement_group_bundles=(
              json.loads(proto.placement_group_bundles)
              if proto.placement_group_bundles
              else None
          ),
          placement_group_version=(
              proto.placement_group_version
              if proto.placement_group_version
              else None
          ),
          max_replicas_per_node=(
              proto.max_replicas_per_node
              if proto.max_replicas_per_node
              else None
          ),
      )
  
imports: import json
  import logging
  from abc import ABC
  from copy import deepcopy
  from typing import Any, Dict, List, Optional
  from zlib import crc32
  from ray._private.pydantic_compat import BaseModel
  from ray.serve._private.config import DeploymentConfig
  from ray.serve._private.utils import DeploymentOptionUpdateType, get_random_string
  from ray.serve.generated.serve_pb2 import DeploymentVersion
label_desc: Use image node_id 10 for calling the DeploymentVersion obj's underlying member method code with example usage: obj.from_proto(cls, proto) and returns: DeploymentVersion