class_docstr: This Blueprint has a subtasks number option to combine multiple conversations into
  "sub-HITs".
  
  It also has options for the onboarding data answers and the annotation bucket
  definitions.
class_docstr_tok: ["This","Blueprint","has","a","subtasks","number","option","to","combine","multiple","conversations","into","''","sub-HITs","''",".","It","also","has","options","for","the","onboarding","data","answers","and","the","annotation","bucket","definitions","."]
docstr: Specifies what options within a task_config should be forwarded to the client
  for use by the task's frontend.
docstr_tok: ["Specifies","what","options","within","a","task_config","should","be","forwarded","to","the","client","for","use","by","the","task","'s","frontend","."]
code: def get_frontend_args(self) -> Dict[str, Any]:
      """
      Specifies what options within a task_config should be forwarded to the client
      for use by the task's frontend.
      """
  
      # Load task description from file
      task_description = (
          "<h1>" "You didn't specify a task_description_file" "</h1>"
      )
      if (
          self.args.blueprint.get("task_description_file", None)
          is not None
      ):
          full_path = os.path.expanduser(
              self.args.blueprint.task_description_file
          )
          assert os.path.exists(
              full_path
          ), f"Target task description path {full_path} doesn't exist"
          with open(full_path, "r") as description_fp:
              task_description = description_fp.read()
  
      with open(
          self.args.blueprint.onboarding_data, "r", encoding="utf-8-sig"
      ) as f:
          onboarding_data = json.loads(f.read())
  
      annotation_buckets = None
      if self.args.blueprint.get("annotations_config_path", ""):
          with open(
              self.args.blueprint.annotations_config_path,
              "r",
              encoding="utf-8-sig",
          ) as f:
              annotation_buckets = json.loads(f.read())
  
      return {
          "task_description": task_description,
          "task_title": self.args.task.get("task_title", None),
          "annotation_question": self.args.blueprint.annotation_question,
          "onboarding_data": onboarding_data,
          "annotation_buckets": annotation_buckets,
          "ask_reason": self.args.blueprint.ask_reason,
          "response_field": self.args.blueprint.response_field,
          "frame_height": 0,
          "num_subtasks": self.args.blueprint.subtasks_per_unit,
          "block_mobile": True,
      }
  
imports: import json
  import logging
  import math
  import os
  import random
  from dataclasses import dataclass, field
  from typing import Any, Dict, List, Optional, Union, TYPE_CHECKING
  import numpy
  from mephisto.operations.registry import register_mephisto_abstraction
  from mephisto.abstractions.blueprint import SharedTaskState
  from mephisto.abstractions.blueprints.static_react_task.static_react_blueprint import StaticReactBlueprint, StaticReactBlueprintArgs
  from omegaconf import DictConfig
label_desc: Use image node_id 2 for calling the TurnAnnotationsStaticBlueprint obj's underlying member method code with example usage: obj.get_frontend_args() and returns: dict