code: def _convert_1bit_array_to_byte_array(arr):
      """
      Convert bit array to byte array.
  
      arr: list
          Bits as a list where each element is an integer of 0 or 1
  
      Returns
      -------
      numpy.array
          1D numpy array of type uint8
      """
      # Padding if necessary
      while len(arr) < 8 or len(arr) % 8:
          arr.append(0)
  
      arr = _np.array(arr, dtype="uint8")
      bit_arr = []
      idx = 0
      # Iterate and combine 8-bits into a uint8
      for arr_idx in range(int(len(arr) / 8)):
          bit_arr.append(
              ((arr[idx] << 7) & (1 << 7))
              | ((arr[idx + 1] << 6) & (1 << 6))
              | ((arr[idx + 2] << 5) & (1 << 5))
              | ((arr[idx + 3] << 4) & (1 << 4))
              | ((arr[idx + 4] << 3) & (1 << 3))
              | ((arr[idx + 5] << 2) & (1 << 2))
              | ((arr[idx + 6] << 1) & (1 << 1))
              | ((arr[idx + 7] << 0) & (1 << 0))
          )
          idx += 8
      return _np.array(bit_arr, dtype="uint8")
  
imports: from os import listdir
  from sys import stdout
  import numpy
  from coremltools import ComputeUnit, _logger
  from coremltools._deps import _HAS_KMEANS1D, _kmeans1d
  from coremltools.models import _QUANTIZATION_MODE_CUSTOM_LOOKUP_TABLE, _QUANTIZATION_MODE_DEQUANTIZE, _QUANTIZATION_MODE_LINEAR_QUANTIZATION, _QUANTIZATION_MODE_LINEAR_SYMMETRIC, _QUANTIZATION_MODE_LOOKUP_TABLE_KMEANS, _QUANTIZATION_MODE_LOOKUP_TABLE_LINEAR, _SUPPORTED_QUANTIZATION_MODES, MLModel
  from ...None import _MINIMUM_FP16_SPEC_VERSION, _MINIMUM_QUANTIZED_MODEL_SPEC_VERSION, _SPECIFICATION_VERSION_IOS_14
  from ..utils import _get_model, _macos_version, _wp_to_fp16wp
  from .optimization_utils import _optimize_nn
label_desc: Use image node_id 1 for calling a global function with example usage: _convert_1bit_array_to_byte_array(arr) and returns: _np