code: def from_node(node: AbstractNode) -> Self:
      return WorkerSettings(
          id=node.id,
          name=node.name,
          node_type=node.node_type,
          signing_key=node.signing_key,
          document_store_config=node.document_store_config,
          action_store_config=node.action_store_config,
          node_side_type=node.node_side_type.value,
          blob_store_config=node.blob_store_config,
          queue_config=node.queue_config,
      )
  
imports: from __future__ import annotations
  from typing import Optional
  from typing_extensions import Self
  from ..abstract_node import AbstractNode
  from ..abstract_node import NodeSideType
  from ..abstract_node import NodeType
  from ..node.credentials import SyftSigningKey
  from ..serde.serializable import serializable
  from ..service.queue.base_queue import QueueConfig
  from ..store.blob_storage import BlobStorageConfig
  from ..store.document_store import StoreConfig
  from ..types.syft_migration import migrate
  from ..types.syft_object import SYFT_OBJECT_VERSION_1
  from ..types.syft_object import SYFT_OBJECT_VERSION_2
  from ..types.syft_object import SyftObject
  from ..types.transforms import drop
  from ..types.transforms import make_set_default
  from ..types.uid import UID
label_desc: Use image node_id 1 for calling the WorkerSettings obj's underlying member method code with example usage: obj.from_node(node) and returns: WorkerSettings