code: def observed_dependent_deterministics(model: Model):
      """Find deterministics that depend directly on observed variables"""
      deterministics = model.deterministics
      observed_rvs = set(model.observed_RVs)
      blockers = model.basic_RVs
      return [
          deterministic
          for deterministic in deterministics
          if observed_rvs
          & set(ancestors([deterministic], blockers=blockers))
      ]
  
imports: import logging
  import warnings
  from typing import Any, Callable, Dict, Iterable, List, Optional, Sequence, Set, Tuple, Union, cast
  import numpy
  import xarray
  from arviz import InferenceData
  from fastprogress.fastprogress import progress_bar
  from pytensor import tensor
  from pytensor.graph.basic import Apply, Constant, Variable, ancestors, general_toposort, walk
  from pytensor.graph.fg import FunctionGraph
  from pytensor.tensor.random.var import RandomGeneratorSharedVariable, RandomStateSharedVariable
  from pytensor.tensor.sharedvar import SharedVariable
  from typing_extensions import TypeAlias
  import pymc
  from pymc.backends.arviz import _DefaultTrace
  from pymc.backends.base import MultiTrace
  from pymc.blocking import PointType
  from pymc.model import Model, modelcontext
  from pymc.pytensorf import compile_pymc
  from pymc.util import RandomState, _get_seeds_per_chain, dataset_to_point_list, get_default_varnames, point_wrapper
label_desc: Use image node_id 4 for calling a global function with example usage: observed_dependent_deterministics(model) and returns: unknown