changeset 331:cee203ea6245

Rename oct-py-util.cc from pytave_utils.cc * oct-py-util.cc, oct-py-util.h: Rename and reindent contents. * Makefile.am (COMMON_SOURCE_FILES, PYTAVE_HEADER_FILES): Update to use new names. * pycall.cc, pyeval.cc, pyexec.cc, python_to_octave.cc: Include "oct-py-util.h".
author Mike Miller <mtmiller@octave.org>
date Mon, 15 Aug 2016 13:16:35 -0700
parents 5c63651b0ec4
children b8128a2e0e70
files Makefile.am oct-py-util.cc oct-py-util.h pycall.cc pyeval.cc pyexec.cc pytave_utils.cc pytave_utils.h python_to_octave.cc
diffstat 9 files changed, 148 insertions(+), 137 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.am	Sat Aug 13 23:59:49 2016 -0700
+++ b/Makefile.am	Mon Aug 15 13:16:35 2016 -0700
@@ -31,8 +31,8 @@
   exceptions.cc \
   octave_to_python.cc \
   oct-py-types.cc \
-  python_to_octave.cc \
-  pytave_utils.cc
+  oct-py-util.cc \
+  python_to_octave.cc
 
 DOC_FILES = \
   INSTALL.md \
@@ -50,9 +50,9 @@
   config.h \
   exceptions.h \
   oct-py-types.h \
+  oct-py-util.h \
   octave_to_python.h \
-  python_to_octave.h \
-  pytave_utils.h
+  python_to_octave.h
 
 PY_FILES = \
   package/__init__.py \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/oct-py-util.cc	Mon Aug 15 13:16:35 2016 -0700
@@ -0,0 +1,98 @@
+/*
+
+Copyright (C) 2016 Abhinav Tripathi
+
+This file is part of Pytave.
+
+Pytave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Pytave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Pytave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <oct.h>
+#include <octave/parse.h>
+
+#include "oct-py-util.h"
+
+using namespace boost::python;
+
+namespace pytave
+{
+
+void
+get_builtins_module (boost::python::object& builtins_module)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  builtins_module = import ("builtins");
+#else
+  builtins_module = import ("__builtin__");
+#endif
+}
+
+void
+get_object_from_python (const octave_value& oct_value,
+                             boost::python::object& py_object)
+{
+  bool by_name;
+  if (oct_value.is_string ())
+    by_name = true;
+  else if (oct_value.is_object () && oct_value.class_name () == "pyobject")
+    by_name = false;
+  else
+    {
+      py_object = boost::python::object();      //None
+      return;
+    }
+
+  object main_module = import ("__main__");
+  object builtins_module;
+  get_builtins_module (builtins_module);
+
+  if (by_name)
+    {
+      std::string module;
+      std::string func = oct_value.string_value ();
+
+      size_t idx = func.rfind (".");
+      if (idx != std::string::npos)
+        {
+          module = func.substr (0, idx);
+          func = func.substr (idx + 1);
+        }
+
+      object mod;
+      if (module.empty ())
+        {
+          if (PyObject_HasAttrString (main_module.ptr (), func.c_str ()))
+            mod = main_module;
+          else
+            mod = builtins_module;
+        }
+      else
+        mod = import (module.c_str ());
+      py_object = mod.attr (func.c_str ());
+    }
+  else
+    {
+      octave_value_list tmp = feval ("getid", ovl (oct_value), 1);
+      std::string hexid = tmp(0).string_value ();
+      py_object = main_module.attr ("__InOct__")[hexid];
+    }
+}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/oct-py-util.h	Mon Aug 15 13:16:35 2016 -0700
@@ -0,0 +1,42 @@
+/*
+
+Copyright (C) 2016 Abhinav Tripathi
+
+This file is part of Pytave.
+
+Pytave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Pytave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Pytave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#if ! defined (pytave_oct_py_util_h)
+#define pytave_oct_py_util_h
+
+#include <boost/python.hpp>
+
+class octave_value;
+
+namespace pytave
+{
+
+void
+get_builtins_module (boost::python::object& builtins_module);
+
+void
+get_object_from_python (const octave_value& oct_value,
+                        boost::python::object& py_object);
+
+}
+
+#endif
--- a/pycall.cc	Sat Aug 13 23:59:49 2016 -0700
+++ b/pycall.cc	Mon Aug 15 13:16:35 2016 -0700
@@ -33,9 +33,9 @@
 #define PYTAVE_DO_DECLARE_SYMBOL
 #include "arrayobjectdefs.h"
 #include "exceptions.h"
+#include "oct-py-util.h"
 #include "octave_to_python.h"
 #include "python_to_octave.h"
-#include "pytave_utils.h"
 
 using namespace boost::python;
 
--- a/pyeval.cc	Sat Aug 13 23:59:49 2016 -0700
+++ b/pyeval.cc	Mon Aug 15 13:16:35 2016 -0700
@@ -34,8 +34,8 @@
 #define PYTAVE_DO_DECLARE_SYMBOL
 #include "arrayobjectdefs.h"
 #include "exceptions.h"
+#include "oct-py-util.h"
 #include "python_to_octave.h"
-#include "pytave_utils.h"
 
 using namespace boost::python;
 
--- a/pyexec.cc	Sat Aug 13 23:59:49 2016 -0700
+++ b/pyexec.cc	Mon Aug 15 13:16:35 2016 -0700
@@ -33,8 +33,8 @@
 #define PYTAVE_DO_DECLARE_SYMBOL
 #include "arrayobjectdefs.h"
 #include "exceptions.h"
+#include "oct-py-util.h"
 #include "python_to_octave.h"
-#include "pytave_utils.h"
 
 using namespace boost::python;
 
--- a/pytave_utils.cc	Sat Aug 13 23:59:49 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-
-Copyright (C) 2016 Abhinav Tripathi
-
-This file is part of Pytave.
-
-Pytave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Pytave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Pytave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#if defined (HAVE_CONFIG_H)
-#  include <config.h>
-#endif
-
-#include <oct.h>
-#include <octave/parse.h>
-
-#include "pytave_utils.h"
-
-using namespace boost::python;
-
-namespace pytave
-{
-  void get_builtins_module (boost::python::object& builtins_module)
-  {
-#if PY_VERSION_HEX >= 0x03000000
-    builtins_module = import ("builtins");
-#else
-    builtins_module = import ("__builtin__");
-#endif
-  }
-
-  void get_object_from_python (const octave_value& oct_value,
-                               boost::python::object& py_object)
-  {
-    bool by_name;
-    if (oct_value.is_string ())
-      by_name = true;
-    else if (oct_value.is_object () && oct_value.class_name () == "pyobject")
-      by_name = false;
-    else
-      {
-        py_object = boost::python::object();      //None
-        return;
-      }
-
-    object main_module = import ("__main__");
-    object builtins_module;
-    get_builtins_module (builtins_module);
-
-    if (by_name)
-      {
-        std::string module;
-        std::string func = oct_value.string_value ();
-
-        size_t idx = func.rfind (".");
-        if (idx != std::string::npos)
-          {
-            module = func.substr (0, idx);
-            func = func.substr (idx + 1);
-          }
-
-        object mod;
-        if (module.empty ())
-          {
-            if (PyObject_HasAttrString (main_module.ptr (), func.c_str ()))
-              mod = main_module;
-            else
-              mod = builtins_module;
-          }
-        else
-          mod = import (module.c_str ());
-        py_object = mod.attr (func.c_str ());
-      }
-    else
-      {
-        octave_value_list tmp = feval ("getid", ovl (oct_value), 1);
-        std::string hexid = tmp(0).string_value ();
-        py_object = main_module.attr ("__InOct__")[hexid];
-      }
-  }
-}
--- a/pytave_utils.h	Sat Aug 13 23:59:49 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-
-Copyright (C) 2016 Abhinav Tripathi
-
-This file is part of Pytave.
-
-Pytave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Pytave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Pytave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#if ! defined (pytave_utils_h)
-#define pytave_utils_h
-
-#include <boost/python.hpp>
-
-namespace pytave
-{
-  void get_builtins_module (boost::python::object& builtins_module);
-  void get_object_from_python (const octave_value& oct_value,
-                               boost::python::object& py_object);
-}
-
-#endif
--- a/python_to_octave.cc	Sat Aug 13 23:59:49 2016 -0700
+++ b/python_to_octave.cc	Mon Aug 15 13:16:35 2016 -0700
@@ -41,8 +41,8 @@
 #include "arrayobjectdefs.h"
 #include "exceptions.h"
 #include "oct-py-types.h"
+#include "oct-py-util.h"
 #include "python_to_octave.h"
-#include "pytave_utils.h"
 
 using namespace boost::python;