docstr: Retrieve a key value entry
  
  :param resource: the resource (dashboard, chart etc)
  :param key: the key to retrieve
  :param codec: codec used to decode the value
  :return: the value associated with the key if present
docstr_tok: ["Retrieve","a","key","value","entry",":","param","resource",":","the","resource","(","dashboard",",","chart","etc",")",":","param","key",":","the","key","to","retrieve",":","param","codec",":","codec","used","to","decode","the","value",":","return",":","the","value","associated","with","the","key","if","present"]
code: def __init__(
      self,
      resource: KeyValueResource,
      key: Union[int, UUID],
      codec: KeyValueCodec,
  ):
      """
      Retrieve a key value entry
  
      :param resource: the resource (dashboard, chart etc)
      :param key: the key to retrieve
      :param codec: codec used to decode the value
      :return: the value associated with the key if present
      """
      self.resource = resource
      self.key = key
      self.codec = codec
  
file_path: superset/superset/commands/key_value/get.py
imports: import logging
  from datetime import datetime
  from typing import Any, Optional, Union
  from uuid import UUID
  from sqlalchemy.exc import SQLAlchemyError
  from superset import db
  from superset.commands.base import BaseCommand
  from superset.key_value.exceptions import KeyValueGetFailedError
  from superset.key_value.models import KeyValueEntry
  from superset.key_value.types import KeyValueCodec, KeyValueResource
  from superset.key_value.utils import get_filter
label_desc: Use image node_id 1 to create a new GetKeyValueCommand object from inherited base classes: BaseCommand with example: obj = GetKeyValueCommand(resource, key, codec)