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","."]
docstr: Check if vector_properties is valid and update vector_property_lengths
docstr_tok: ["Check","if","vector_properties","is","valid","and","update","vector_property_lengths"]
code: def _check_vector_properties(
      self, df, vector_properties, vector_property_lengths, invalid_keys
  ):
      """Check if vector_properties is valid and update vector_property_lengths"""
      df_cols = set(df.columns)
      for key, columns in vector_properties.items():
          if key in invalid_keys:
              raise ValueError(
                  "Cannot assign new vector property to existing "
                  f"non-vector property: {key}"
              )
          if isinstance(columns, str):
              # If df[columns] is a ListDtype column, should we allow it?
              raise TypeError(
                  f"vector property columns for {key!r} should be a list; "
                  f"got a str ({columns!r})"
              )
          if not df_cols.issuperset(columns):
              missing = ", ".join(set(columns) - df_cols)
              raise ValueError(
                  f"Dataframe does not have columns for vector property {key!r}:"
                  f"{missing}"
              )
          if not columns:
              raise ValueError(
                  "Empty vector property columns for {key!r}!"
              )
          if vector_property_lengths.get(key, len(columns)) != len(
              columns
          ):
              prev_length = vector_property_lengths[key]
              new_length = len(columns)
              raise ValueError(
                  f"Wrong size for vector property {key}; got {new_length}, but "
                  f"this vector property already exists with size {prev_length}"
              )
      for key, columns in vector_properties.items():
          vector_property_lengths[key] = len(columns)
  
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 34 for calling the EXPERIMENTAL__MGPropertyGraph obj's underlying member method code with example usage: obj._check_vector_properties(df, vector_properties, vector_property_lengths, invalid_keys) without return types