class_docstr: Class which stores vertex and edge properties that can be used to construct
  Graphs from individual property selections and used later to annotate graph
  algorithm results with corresponding properties.
class_docstr_tok: ["Class","which","stores","vertex","and","edge","properties","that","can","be","used","to","construct","Graphs","from","individual","property","selections","and","used","later","to","annotate","graph","algorithm","results","with","corresponding","properties","."]
code: def _vector_series_to_array_partition(s, length, fillvalue, missing):
      # This returns a writable view (i.e., no copies!)
      if len(s) == 0:
          # TODO: fix bug in cudf; operating on dask_cudf dataframes nests list dtype
          dtype = s.dtype
          while dtype == "list":
              dtype = dtype.element_type
          return cupy.empty((0, length), dtype=dtype)
      if fillvalue is not None:
          s = s.copy()  # copy b/c we mutate below
          s[s.isnull()] = fillvalue
      rv = s._data.columns[0].children[-1].values.reshape(-1, length)
      if (
          fillvalue is None
          and missing == "error"
          and rv.shape[0] != len(s)
      ):
          raise RuntimeError(
              f"Vector property {s.name!r} has empty rows! "
              'Provide a fill value or use `missing="ignore"` to ignore empty rows.'
          )
      return rv
  
imports: import cudf
  import cupy
  import cugraph
  import dask_cudf
  import cugraph.dask
  from cugraph.utilities.utils import import_optional, create_list_series_from_2d_ar
  from typing import Union
label_desc: Use image node_id 47 for calling the EXPERIMENTAL__MGPropertyGraph obj's underlying member method code with example usage: obj._vector_series_to_array_partition(s, length, fillvalue, missing) and returns: rv, cupy