code: def _eval_con_normals(x, cons, la, n, m, meq, mieq):
      # Compute the normals of the constraints
      if cons["eq"]:
          a_eq = vstack(
              [con["jac"](x, *con["args"]) for con in cons["eq"]]
          )
      else:  # no equality constraint
          a_eq = zeros((meq, n))
  
      if cons["ineq"]:
          a_ieq = vstack(
              [con["jac"](x, *con["args"]) for con in cons["ineq"]]
          )
      else:  # no inequality constraint
          a_ieq = zeros((mieq, n))
  
      # Now combine a_eq and a_ieq into a single a matrix
      if m == 0:  # no constraints
          a = zeros((la, n))
      else:
          a = vstack((a_eq, a_ieq))
      a = concatenate((a, zeros([la, 1])), 1)
  
      return a
  
file_path: scipy/scipy/optimize/_slsqp_py.py
imports: import numpy
  from scipy.optimize._slsqp import slsqp
  from numpy import zeros, array, linalg, append, concatenate, finfo, sqrt, vstack, isfinite, atleast_1d
  from ._optimize import OptimizeResult, _check_unknown_options, _prepare_scalar_function, _clip_x_for_func, _check_clip_x
  from ._numdiff import approx_derivative
  from ._constraints import old_bound_to_new, _arr_to_scalar
  from scipy._lib._array_api import atleast_nd, array_namespace
  from numpy import exp, inf
label_desc: Use image node_id 5 for calling a global function with example usage: _eval_con_normals(x, cons, la, n, m, meq, mieq) and returns: a