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: Evaluate expr and return a PropertySelection object representing the
  edges that match the expression selection criteria.
  
  Parameters
  ----------
  expr : string
      A python expression using property names and operators to select
      specific edges.
  
  Returns
  -------
  PropertySelection
      Can be used for calls to extract_subgraph()
      in order to construct a Graph containing only specific edges.
  
  Examples
  --------
  >>> import cudf
  >>> import cugraph
  >>> from cugraph.experimental import PropertyGraph
  >>> df = cudf.DataFrame(columns=["src", "dst", "some_property"],
  ...                     data=[(99, 22, "a"),
  ...                           (98, 34, "b"),
  ...                           (97, 56, "c"),
  ...                           (96, 88, "d"),
  ...                          ])
  >>> pG = PropertyGraph()
  >>> pG.add_edge_data(df, type_name="etype", vertex_col_names=("src", "dst"))
  >>> vert_df = cudf.DataFrame({"vert_id": [99, 22, 98, 34, 97, 56, 96, 88],
  ...                           "v_prop": [1, 2, 3, 4, 5, 6, 7, 8]})
  >>> pG.add_vertex_data(vert_df, type_name="vtype", vertex_col_name="vert_id")
  >>> selection = pG.select_edges("(_TYPE_ == 'etype') & (some_property == 'd')")
  >>> G = pG.extract_subgraph(selection=selection,
  ...                         create_using=cugraph.Graph(directed=True),
  ...                         renumber_graph=False)
  >>> print (G.edges())
  src  dst
  0   96   88
code: def select_edges(self, expr):
      """
      Evaluate expr and return a PropertySelection object representing the
      edges that match the expression selection criteria.
  
      Parameters
      ----------
      expr : string
          A python expression using property names and operators to select
          specific edges.
  
      Returns
      -------
      PropertySelection
          Can be used for calls to extract_subgraph()
          in order to construct a Graph containing only specific edges.
  
      Examples
      --------
      >>> import cudf
      >>> import cugraph
      >>> from cugraph.experimental import PropertyGraph
      >>> df = cudf.DataFrame(columns=["src", "dst", "some_property"],
      ...                     data=[(99, 22, "a"),
      ...                           (98, 34, "b"),
      ...                           (97, 56, "c"),
      ...                           (96, 88, "d"),
      ...                          ])
      >>> pG = PropertyGraph()
      >>> pG.add_edge_data(df, type_name="etype", vertex_col_names=("src", "dst"))
      >>> vert_df = cudf.DataFrame({"vert_id": [99, 22, 98, 34, 97, 56, 96, 88],
      ...                           "v_prop": [1, 2, 3, 4, 5, 6, 7, 8]})
      >>> pG.add_vertex_data(vert_df, type_name="vtype", vertex_col_name="vert_id")
      >>> selection = pG.select_edges("(_TYPE_ == 'etype') & (some_property == 'd')")
      >>> G = pG.extract_subgraph(selection=selection,
      ...                         create_using=cugraph.Graph(directed=True),
      ...                         renumber_graph=False)
      >>> print (G.edges())
      src  dst
      0   96   88
      """
      # FIXME: check types
      globals = {}
      locals = self.__edge_prop_eval_dict
  
      selected_col = eval(expr, globals, locals)
      return EXPERIMENTAL__PropertySelection(
          edge_selection_series=selected_col
      )
  
imports: import cudf
  import numpy
  import cugraph
  from cugraph.utilities.utils import import_optional, MissingModule, create_list_series_from_2d_ar
  from typing import Union
label_desc: Use image node_id 26 for calling the EXPERIMENTAL__PropertyGraph obj's underlying member method code with example usage: obj.select_edges(expr) and returns: EXPERIMENTAL__PropertySelection