text: // Generated by using Rcpp::compileAttributes() -> do not edit by hand
  // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393
  
  #include "reticulate_types.h"
  #include <Rcpp.h>
  
  using namespace Rcpp;
  
  // write_stdout
  int write_stdout(std::string text);
  RcppExport SEXP _reticulate_write_stdout(SEXP textSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< std::string >::type text(textSEXP);
      rcpp_result_gen = Rcpp::wrap(write_stdout(text));
      return rcpp_result_gen;
  END_RCPP
  }
  // write_stderr
  int write_stderr(std::string text);
  RcppExport SEXP _reticulate_write_stderr(SEXP textSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< std::string >::type text(textSEXP);
      rcpp_result_gen = Rcpp::wrap(write_stderr(text));
      return rcpp_result_gen;
  END_RCPP
  }
  // is_python3
  bool is_python3();
  RcppExport SEXP _reticulate_is_python3() {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      rcpp_result_gen = Rcpp::wrap(is_python3());
      return rcpp_result_gen;
  END_RCPP
  }
  // py_last_error
  SEXP py_last_error();
  RcppExport SEXP _reticulate_py_last_error() {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      rcpp_result_gen = Rcpp::wrap(py_last_error());
      return rcpp_result_gen;
  END_RCPP
  }
  // py_clear_last_error
  void py_clear_last_error();
  RcppExport SEXP _reticulate_py_clear_last_error() {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      py_clear_last_error();
      return R_NilValue;
  END_RCPP
  }
  // py_is_callable
  bool py_is_callable(PyObjectRef x);
  RcppExport SEXP _reticulate_py_is_callable(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_is_callable(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_get_formals
  SEXP py_get_formals(PyObjectRef func);
  RcppExport SEXP _reticulate_py_get_formals(SEXP funcSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type func(funcSEXP);
      rcpp_result_gen = Rcpp::wrap(py_get_formals(func));
      return rcpp_result_gen;
  END_RCPP
  }
  // r_to_py_impl
  PyObjectRef r_to_py_impl(RObject object, bool convert);
  RcppExport SEXP _reticulate_r_to_py_impl(SEXP objectSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< RObject >::type object(objectSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(r_to_py_impl(object, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_activate_virtualenv
  void py_activate_virtualenv(const std::string& script);
  RcppExport SEXP _reticulate_py_activate_virtualenv(SEXP scriptSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type script(scriptSEXP);
      py_activate_virtualenv(script);
      return R_NilValue;
  END_RCPP
  }
  // py_initialize
  void py_initialize(const std::string& python, const std::string& libpython, const std::string& pythonhome, const std::string& virtualenv_activate, bool python3, bool interactive, const std::string& numpy_load_error);
  RcppExport SEXP _reticulate_py_initialize(SEXP pythonSEXP, SEXP libpythonSEXP, SEXP pythonhomeSEXP, SEXP virtualenv_activateSEXP, SEXP python3SEXP, SEXP interactiveSEXP, SEXP numpy_load_errorSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type python(pythonSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type libpython(libpythonSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type pythonhome(pythonhomeSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type virtualenv_activate(virtualenv_activateSEXP);
      Rcpp::traits::input_parameter< bool >::type python3(python3SEXP);
      Rcpp::traits::input_parameter< bool >::type interactive(interactiveSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type numpy_load_error(numpy_load_errorSEXP);
      py_initialize(python, libpython, pythonhome, virtualenv_activate, python3, interactive, numpy_load_error);
      return R_NilValue;
  END_RCPP
  }
  // py_finalize
  void py_finalize();
  RcppExport SEXP _reticulate_py_finalize() {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      py_finalize();
      return R_NilValue;
  END_RCPP
  }
  // py_is_none
  bool py_is_none(PyObjectRef x);
  RcppExport SEXP _reticulate_py_is_none(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_is_none(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_compare_impl
  bool py_compare_impl(PyObjectRef a, PyObjectRef b, const std::string& op);
  RcppExport SEXP _reticulate_py_compare_impl(SEXP aSEXP, SEXP bSEXP, SEXP opSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type a(aSEXP);
      Rcpp::traits::input_parameter< PyObjectRef >::type b(bSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type op(opSEXP);
      rcpp_result_gen = Rcpp::wrap(py_compare_impl(a, b, op));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_str_impl
  CharacterVector py_str_impl(PyObjectRef x);
  RcppExport SEXP _reticulate_py_str_impl(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_str_impl(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_print
  void py_print(PyObjectRef x);
  RcppExport SEXP _reticulate_py_print(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      py_print(x);
      return R_NilValue;
  END_RCPP
  }
  // py_is_function
  bool py_is_function(PyObjectRef x);
  RcppExport SEXP _reticulate_py_is_function(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_is_function(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_is_null_xptr
  bool py_is_null_xptr(PyObjectRef x);
  RcppExport SEXP _reticulate_py_is_null_xptr(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_is_null_xptr(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_validate_xptr
  void py_validate_xptr(PyObjectRef x);
  RcppExport SEXP _reticulate_py_validate_xptr(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      py_validate_xptr(x);
      return R_NilValue;
  END_RCPP
  }
  // py_numpy_available_impl
  bool py_numpy_available_impl();
  RcppExport SEXP _reticulate_py_numpy_available_impl() {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      rcpp_result_gen = Rcpp::wrap(py_numpy_available_impl());
      return rcpp_result_gen;
  END_RCPP
  }
  // py_list_attributes_impl
  std::vector<std::string> py_list_attributes_impl(PyObjectRef x);
  RcppExport SEXP _reticulate_py_list_attributes_impl(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_list_attributes_impl(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_has_attr_impl
  bool py_has_attr_impl(PyObjectRef x, const std::string& name);
  RcppExport SEXP _reticulate_py_has_attr_impl(SEXP xSEXP, SEXP nameSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
      rcpp_result_gen = Rcpp::wrap(py_has_attr_impl(x, name));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_get_attr_impl
  PyObjectRef py_get_attr_impl(PyObjectRef x, const std::string& name, bool silent);
  RcppExport SEXP _reticulate_py_get_attr_impl(SEXP xSEXP, SEXP nameSEXP, SEXP silentSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
      Rcpp::traits::input_parameter< bool >::type silent(silentSEXP);
      rcpp_result_gen = Rcpp::wrap(py_get_attr_impl(x, name, silent));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_set_attr_impl
  void py_set_attr_impl(PyObjectRef x, const std::string& name, RObject value);
  RcppExport SEXP _reticulate_py_set_attr_impl(SEXP xSEXP, SEXP nameSEXP, SEXP valueSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP);
      Rcpp::traits::input_parameter< RObject >::type value(valueSEXP);
      py_set_attr_impl(x, name, value);
      return R_NilValue;
  END_RCPP
  }
  // py_get_attribute_types
  IntegerVector py_get_attribute_types(PyObjectRef x, const std::vector<std::string>& attributes);
  RcppExport SEXP _reticulate_py_get_attribute_types(SEXP xSEXP, SEXP attributesSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< const std::vector<std::string>& >::type attributes(attributesSEXP);
      rcpp_result_gen = Rcpp::wrap(py_get_attribute_types(x, attributes));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_ref_to_r_with_convert
  SEXP py_ref_to_r_with_convert(PyObjectRef x, bool convert);
  RcppExport SEXP _reticulate_py_ref_to_r_with_convert(SEXP xSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_ref_to_r_with_convert(x, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_ref_to_r
  SEXP py_ref_to_r(PyObjectRef x);
  RcppExport SEXP _reticulate_py_ref_to_r(SEXP xSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      rcpp_result_gen = Rcpp::wrap(py_ref_to_r(x));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_call_impl
  SEXP py_call_impl(PyObjectRef x, List args, List keywords);
  RcppExport SEXP _reticulate_py_call_impl(SEXP xSEXP, SEXP argsSEXP, SEXP keywordsSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< List >::type args(argsSEXP);
      Rcpp::traits::input_parameter< List >::type keywords(keywordsSEXP);
      rcpp_result_gen = Rcpp::wrap(py_call_impl(x, args, keywords));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_dict_impl
  PyObjectRef py_dict_impl(const List& keys, const List& items, bool convert);
  RcppExport SEXP _reticulate_py_dict_impl(SEXP keysSEXP, SEXP itemsSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const List& >::type keys(keysSEXP);
      Rcpp::traits::input_parameter< const List& >::type items(itemsSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_dict_impl(keys, items, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_dict_get_item
  SEXP py_dict_get_item(PyObjectRef dict, RObject key);
  RcppExport SEXP _reticulate_py_dict_get_item(SEXP dictSEXP, SEXP keySEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type dict(dictSEXP);
      Rcpp::traits::input_parameter< RObject >::type key(keySEXP);
      rcpp_result_gen = Rcpp::wrap(py_dict_get_item(dict, key));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_dict_set_item
  void py_dict_set_item(PyObjectRef dict, RObject item, RObject value);
  RcppExport SEXP _reticulate_py_dict_set_item(SEXP dictSEXP, SEXP itemSEXP, SEXP valueSEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type dict(dictSEXP);
      Rcpp::traits::input_parameter< RObject >::type item(itemSEXP);
      Rcpp::traits::input_parameter< RObject >::type value(valueSEXP);
      py_dict_set_item(dict, item, value);
      return R_NilValue;
  END_RCPP
  }
  // py_dict_length
  int py_dict_length(PyObjectRef dict);
  RcppExport SEXP _reticulate_py_dict_length(SEXP dictSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type dict(dictSEXP);
      rcpp_result_gen = Rcpp::wrap(py_dict_length(dict));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_dict_get_keys
  PyObjectRef py_dict_get_keys(PyObjectRef dict);
  RcppExport SEXP _reticulate_py_dict_get_keys(SEXP dictSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type dict(dictSEXP);
      rcpp_result_gen = Rcpp::wrap(py_dict_get_keys(dict));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_dict_get_keys_as_str
  CharacterVector py_dict_get_keys_as_str(PyObjectRef dict);
  RcppExport SEXP _reticulate_py_dict_get_keys_as_str(SEXP dictSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type dict(dictSEXP);
      rcpp_result_gen = Rcpp::wrap(py_dict_get_keys_as_str(dict));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_tuple
  PyObjectRef py_tuple(const List& items, bool convert);
  RcppExport SEXP _reticulate_py_tuple(SEXP itemsSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const List& >::type items(itemsSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_tuple(items, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_tuple_length
  int py_tuple_length(PyObjectRef tuple);
  RcppExport SEXP _reticulate_py_tuple_length(SEXP tupleSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type tuple(tupleSEXP);
      rcpp_result_gen = Rcpp::wrap(py_tuple_length(tuple));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_module_import
  PyObjectRef py_module_import(const std::string& module, bool convert);
  RcppExport SEXP _reticulate_py_module_import(SEXP moduleSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type module(moduleSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_module_import(module, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_module_proxy_import
  void py_module_proxy_import(PyObjectRef proxy);
  RcppExport SEXP _reticulate_py_module_proxy_import(SEXP proxySEXP) {
  BEGIN_RCPP
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type proxy(proxySEXP);
      py_module_proxy_import(proxy);
      return R_NilValue;
  END_RCPP
  }
  // py_list_submodules
  CharacterVector py_list_submodules(const std::string& module);
  RcppExport SEXP _reticulate_py_list_submodules(SEXP moduleSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type module(moduleSEXP);
      rcpp_result_gen = Rcpp::wrap(py_list_submodules(module));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_iterate
  List py_iterate(PyObjectRef x, Function f);
  RcppExport SEXP _reticulate_py_iterate(SEXP xSEXP, SEXP fSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type x(xSEXP);
      Rcpp::traits::input_parameter< Function >::type f(fSEXP);
      rcpp_result_gen = Rcpp::wrap(py_iterate(x, f));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_iter_next
  SEXP py_iter_next(PyObjectRef iterator, RObject completed);
  RcppExport SEXP _reticulate_py_iter_next(SEXP iteratorSEXP, SEXP completedSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type iterator(iteratorSEXP);
      Rcpp::traits::input_parameter< RObject >::type completed(completedSEXP);
      rcpp_result_gen = Rcpp::wrap(py_iter_next(iterator, completed));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_run_string_impl
  SEXP py_run_string_impl(const std::string& code, bool local, bool convert);
  RcppExport SEXP _reticulate_py_run_string_impl(SEXP codeSEXP, SEXP localSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type code(codeSEXP);
      Rcpp::traits::input_parameter< bool >::type local(localSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_run_string_impl(code, local, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_run_file_impl
  SEXP py_run_file_impl(const std::string& file, bool local, bool convert);
  RcppExport SEXP _reticulate_py_run_file_impl(SEXP fileSEXP, SEXP localSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type file(fileSEXP);
      Rcpp::traits::input_parameter< bool >::type local(localSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_run_file_impl(file, local, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_eval_impl
  SEXP py_eval_impl(const std::string& code, bool convert);
  RcppExport SEXP _reticulate_py_eval_impl(SEXP codeSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type code(codeSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(py_eval_impl(code, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_convert_pandas_series
  SEXP py_convert_pandas_series(PyObjectRef series);
  RcppExport SEXP _reticulate_py_convert_pandas_series(SEXP seriesSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type series(seriesSEXP);
      rcpp_result_gen = Rcpp::wrap(py_convert_pandas_series(series));
      return rcpp_result_gen;
  END_RCPP
  }
  // py_convert_pandas_df
  SEXP py_convert_pandas_df(PyObjectRef df);
  RcppExport SEXP _reticulate_py_convert_pandas_df(SEXP dfSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< PyObjectRef >::type df(dfSEXP);
      rcpp_result_gen = Rcpp::wrap(py_convert_pandas_df(df));
      return rcpp_result_gen;
  END_RCPP
  }
  // r_convert_dataframe
  PyObjectRef r_convert_dataframe(RObject dataframe, bool convert);
  RcppExport SEXP _reticulate_r_convert_dataframe(SEXP dataframeSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< RObject >::type dataframe(dataframeSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(r_convert_dataframe(dataframe, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // r_convert_date
  PyObjectRef r_convert_date(DateVector date_vector, bool convert);
  RcppExport SEXP _reticulate_r_convert_date(SEXP date_vectorSEXP, SEXP convertSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< DateVector >::type date_vector(date_vectorSEXP);
      Rcpp::traits::input_parameter< bool >::type convert(convertSEXP);
      rcpp_result_gen = Rcpp::wrap(r_convert_date(date_vector, convert));
      return rcpp_result_gen;
  END_RCPP
  }
  // readline
  SEXP readline(const std::string& prompt);
  RcppExport SEXP _reticulate_readline(SEXP promptSEXP) {
  BEGIN_RCPP
      Rcpp::RObject rcpp_result_gen;
      Rcpp::RNGScope rcpp_rngScope_gen;
      Rcpp::traits::input_parameter< const std::string& >::type prompt(promptSEXP);
      rcpp_result_gen = Rcpp::wrap(readline(prompt));
      return rcpp_result_gen;
  END_RCPP
  }
  
  static const R_CallMethodDef CallEntries[] = {
      {"_reticulate_write_stdout", (DL_FUNC) &_reticulate_write_stdout, 1},
      {"_reticulate_write_stderr", (DL_FUNC) &_reticulate_write_stderr, 1},
      {"_reticulate_is_python3", (DL_FUNC) &_reticulate_is_python3, 0},
      {"_reticulate_py_last_error", (DL_FUNC) &_reticulate_py_last_error, 0},
      {"_reticulate_py_clear_last_error", (DL_FUNC) &_reticulate_py_clear_last_error, 0},
      {"_reticulate_py_is_callable", (DL_FUNC) &_reticulate_py_is_callable, 1},
      {"_reticulate_py_get_formals", (DL_FUNC) &_reticulate_py_get_formals, 1},
      {"_reticulate_r_to_py_impl", (DL_FUNC) &_reticulate_r_to_py_impl, 2},
      {"_reticulate_py_activate_virtualenv", (DL_FUNC) &_reticulate_py_activate_virtualenv, 1},
      {"_reticulate_py_initialize", (DL_FUNC) &_reticulate_py_initialize, 7},
      {"_reticulate_py_finalize", (DL_FUNC) &_reticulate_py_finalize, 0},
      {"_reticulate_py_is_none", (DL_FUNC) &_reticulate_py_is_none, 1},
      {"_reticulate_py_compare_impl", (DL_FUNC) &_reticulate_py_compare_impl, 3},
      {"_reticulate_py_str_impl", (DL_FUNC) &_reticulate_py_str_impl, 1},
      {"_reticulate_py_print", (DL_FUNC) &_reticulate_py_print, 1},
      {"_reticulate_py_is_function", (DL_FUNC) &_reticulate_py_is_function, 1},
      {"_reticulate_py_is_null_xptr", (DL_FUNC) &_reticulate_py_is_null_xptr, 1},
      {"_reticulate_py_validate_xptr", (DL_FUNC) &_reticulate_py_validate_xptr, 1},
      {"_reticulate_py_numpy_available_impl", (DL_FUNC) &_reticulate_py_numpy_available_impl, 0},
      {"_reticulate_py_list_attributes_impl", (DL_FUNC) &_reticulate_py_list_attributes_impl, 1},
      {"_reticulate_py_has_attr_impl", (DL_FUNC) &_reticulate_py_has_attr_impl, 2},
      {"_reticulate_py_get_attr_impl", (DL_FUNC) &_reticulate_py_get_attr_impl, 3},
      {"_reticulate_py_set_attr_impl", (DL_FUNC) &_reticulate_py_set_attr_impl, 3},
      {"_reticulate_py_get_attribute_types", (DL_FUNC) &_reticulate_py_get_attribute_types, 2},
      {"_reticulate_py_ref_to_r_with_convert", (DL_FUNC) &_reticulate_py_ref_to_r_with_convert, 2},
      {"_reticulate_py_ref_to_r", (DL_FUNC) &_reticulate_py_ref_to_r, 1},
      {"_reticulate_py_call_impl", (DL_FUNC) &_reticulate_py_call_impl, 3},
      {"_reticulate_py_dict_impl", (DL_FUNC) &_reticulate_py_dict_impl, 3},
      {"_reticulate_py_dict_get_item", (DL_FUNC) &_reticulate_py_dict_get_item, 2},
      {"_reticulate_py_dict_set_item", (DL_FUNC) &_reticulate_py_dict_set_item, 3},
      {"_reticulate_py_dict_length", (DL_FUNC) &_reticulate_py_dict_length, 1},
      {"_reticulate_py_dict_get_keys", (DL_FUNC) &_reticulate_py_dict_get_keys, 1},
      {"_reticulate_py_dict_get_keys_as_str", (DL_FUNC) &_reticulate_py_dict_get_keys_as_str, 1},
      {"_reticulate_py_tuple", (DL_FUNC) &_reticulate_py_tuple, 2},
      {"_reticulate_py_tuple_length", (DL_FUNC) &_reticulate_py_tuple_length, 1},
      {"_reticulate_py_module_import", (DL_FUNC) &_reticulate_py_module_import, 2},
      {"_reticulate_py_module_proxy_import", (DL_FUNC) &_reticulate_py_module_proxy_import, 1},
      {"_reticulate_py_list_submodules", (DL_FUNC) &_reticulate_py_list_submodules, 1},
      {"_reticulate_py_iterate", (DL_FUNC) &_reticulate_py_iterate, 2},
      {"_reticulate_py_iter_next", (DL_FUNC) &_reticulate_py_iter_next, 2},
      {"_reticulate_py_run_string_impl", (DL_FUNC) &_reticulate_py_run_string_impl, 3},
      {"_reticulate_py_run_file_impl", (DL_FUNC) &_reticulate_py_run_file_impl, 3},
      {"_reticulate_py_eval_impl", (DL_FUNC) &_reticulate_py_eval_impl, 2},
      {"_reticulate_py_convert_pandas_series", (DL_FUNC) &_reticulate_py_convert_pandas_series, 1},
      {"_reticulate_py_convert_pandas_df", (DL_FUNC) &_reticulate_py_convert_pandas_df, 1},
      {"_reticulate_r_convert_dataframe", (DL_FUNC) &_reticulate_r_convert_dataframe, 2},
      {"_reticulate_r_convert_date", (DL_FUNC) &_reticulate_r_convert_date, 2},
      {"_reticulate_readline", (DL_FUNC) &_reticulate_readline, 1},
      {NULL, NULL, 0}
  };
  
  RcppExport void R_init_reticulate(DllInfo *dll) {
      R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
      R_useDynamicSymbols(dll, FALSE);
  }
  