code: def construct_1d_arraylike_from_scalar(
      value: Scalar, length: int, dtype: DtypeObj | None
  ) -> ArrayLike:
      """
      create a np.ndarray / pandas type of specified shape and dtype
      filled with values
  
      Parameters
      ----------
      value : scalar value
      length : int
      dtype : pandas_dtype or np.dtype
  
      Returns
      -------
      np.ndarray / pandas type of length, filled with value
  
      """
  
      if dtype is None:
          try:
              dtype, value = infer_dtype_from_scalar(
                  value, pandas_dtype=True
              )
          except OutOfBoundsDatetime:
              dtype = _dtype_obj
  
      if isinstance(dtype, ExtensionDtype):
          cls = dtype.construct_array_type()
          seq = [] if length == 0 else [value]
          subarr = cls._from_sequence(seq, dtype=dtype).repeat(length)
  
      else:
          if length and is_integer_dtype(dtype) and isna(value):
              # coerce if we have nan for an integer dtype
              dtype = np.dtype("float64")
          elif isinstance(dtype, np.dtype) and dtype.kind in ("U", "S"):
              # we need to coerce to object dtype to avoid
              # to allow numpy to take our string as a scalar value
              dtype = np.dtype("object")
              if not isna(value):
                  value = ensure_str(value)
          elif dtype.kind in ["M", "m"]:
              value = _maybe_box_and_unbox_datetimelike(value, dtype)
  
          subarr = np.empty(length, dtype=dtype)
          if length:
              # GH 47391: numpy > 1.24 will raise filling np.nan into int dtypes
              subarr.fill(value)
  
      return subarr
  
imports: from __future__ import annotations
  import datetime
  import functools
  from typing import TYPE_CHECKING, Any, Literal, Sized, TypeVar, cast, overload
  import warnings
  import numpy
  from pandas._libs import lib
  from pandas._libs.missing import NA, NAType, checknull
  from pandas._libs.tslibs import NaT, OutOfBoundsDatetime, OutOfBoundsTimedelta, Timedelta, Timestamp, get_unit_from_dtype, is_supported_unit
  from pandas._libs.tslibs.timedeltas import array_to_timedelta64
  from pandas._typing import ArrayLike, Dtype, DtypeObj, NumpyIndexT, Scalar, npt
  from pandas.errors import IntCastingNaNError, LossySetitemError
  from pandas.core.dtypes.common import ensure_int8, ensure_int16, ensure_int32, ensure_int64, ensure_object, ensure_str, is_bool, is_bool_dtype, is_complex, is_complex_dtype, is_datetime64_dtype, is_extension_array_dtype, is_float, is_float_dtype, is_integer, is_integer_dtype, is_numeric_dtype, is_object_dtype, is_scalar, is_signed_integer_dtype, is_string_dtype, is_timedelta64_dtype, is_unsigned_integer_dtype, pandas_dtype
  from pandas.core.dtypes.dtypes import BaseMaskedDtype, CategoricalDtype, DatetimeTZDtype, ExtensionDtype, IntervalDtype, PandasExtensionDtype, PeriodDtype
  from pandas.core.dtypes.generic import ABCExtensionArray, ABCIndex, ABCSeries
  from pandas.core.dtypes.inference import is_list_like
  from pandas.core.dtypes.missing import is_valid_na_for_dtype, isna, na_value_for_dtype, notna
  from pandas.io._util import _arrow_dtype_mapping
label_desc: Use image node_id 42 for calling a global function with example usage: construct_1d_arraylike_from_scalar(value, length, dtype) and returns: subarr