code: def _require_row_variant_w_struct_locus(mt: MatrixTable) -> NoReturn:
      """
      Similar to hail.methods.misc.require_row_key_variant_w_struct_locus, but not necessarily as keys
      """
      assert check_argument_types()
  
      if (
          not set(["locus", "alleles"]).issubset(set(mt.rows().row))
          or not mt["alleles"].dtype == tarray(tstr)
          or (
              not isinstance(mt["locus"].dtype, tlocus)
              and mt["locus"].dtype
              != hl.dtype("struct{contig: str, position: int32}")
          )
      ):
          raise ValueError(
              "'hail.from_matrix_table' requires row to contain two fields 'locus'"
              " (type 'locus<any>' or 'struct{{contig: str, position: int32}}') and "
              "'alleles' (type 'array<str>')"
          )
  
file_path: glow/python/glow/hail/functions.py
imports: import hail
  from hail import MatrixTable
  from hail.expr.expressions.typed_expressions import StructExpression
  from hail.expr.types import tarray, tbool, tcall, tfloat64, tint, tlocus, tset, tstr, tstruct
  from pyspark.sql import Column, DataFrame
  import pyspark.sql.functions
  from typing import List, NoReturn, Optional
  from typeguard import check_argument_types, check_return_type
label_desc: Use image node_id 5 for calling a global function with example usage: _require_row_variant_w_struct_locus(mt) without return types