docstr: Retrieves a cursor associated with the connection.
  
  Returns:
      EvaDBCursor: The cursor object used to execute queries.
  
  
  Examples:
      >>> import evadb
      >>> connection = evadb.connection()
      >>> cursor = connection.cursor()
  
  The cursor can be used to execute queries.
  
      >>> cursor.query('SELECT * FROM sample_table;').df()
         col1  col2
      0     1     2
      1     3     4
      2     5     6
docstr_tok: ["Retrieves","a","cursor","associated","with","the","connection",".","Returns",":","EvaDBCursor",":","The","cursor","object","used","to","execute","queries",".","Examples",":",">",">",">","import","evadb",">",">",">","connection","=","evadb.connection","(",")",">",">",">","cursor","=","connection.cursor","(",")","The","cursor","can","be","used","to","execute","queries",".",">",">",">","cursor.query","(","'SELECT","*","FROM","sample_table",";","'",")",".df","(",")","col1","col2","0","1","2","1","3","4","2","5","6"]
code: def cursor(self):
      """Retrieves a cursor associated with the connection.
  
      Returns:
          EvaDBCursor: The cursor object used to execute queries.
  
  
      Examples:
          >>> import evadb
          >>> connection = evadb.connection()
          >>> cursor = connection.cursor()
  
      The cursor can be used to execute queries.
  
          >>> cursor.query('SELECT * FROM sample_table;').df()
             col1  col2
          0     1     2
          1     3     4
          2     5     6
  
      """
      # One unique cursor for one connection
      if self._cursor is None:
          self._cursor = EvaDBCursor(self)
      return self._cursor
  
imports: import asyncio
  import multiprocessing
  import pandas
  from evadb.configuration.constants import EvaDB_DATABASE_DIR
  from evadb.database import EvaDBDatabase, init_evadb_instance
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.functions.function_bootstrap_queries import init_builtin_functions
  from evadb.interfaces.relational.relation import EvaDBQuery
  from evadb.interfaces.relational.utils import try_binding
  from evadb.models.server.response import Response
  from evadb.models.storage.batch import Batch
  from evadb.parser.alias import Alias
  from evadb.parser.select_statement import SelectStatement
  from evadb.parser.utils import parse_create_function, parse_create_table, parse_create_vector_index, parse_drop_function, parse_drop_index, parse_drop_table, parse_explain, parse_insert, parse_load, parse_query, parse_rename, parse_show, parse_table_clause
  from evadb.server.command_handler import execute_statement
  from evadb.utils.generic_utils import find_nearest_word, is_ray_enabled_and_installed
  from evadb.utils.job_scheduler import JobScheduler
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 2 for calling the EvaDBConnection obj's underlying member method code with example usage: obj.cursor() and returns: self