Mercurial > pytave
annotate oct-py-util.h @ 333:96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
* oct-py-util.cc, oct-py-util.h (pytave::py_object_class_name,
pytave::is_py_kwargs_argument, pytave::update_py_dict): New functions.
* pycall.cc (Fpycall): Check for and handle keyword arguments.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Mon, 15 Aug 2016 13:20:15 -0700 |
parents | cee203ea6245 |
children | ebd83497ebda |
rev | line source |
---|---|
306
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
1 /* |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
2 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
3 Copyright (C) 2016 Abhinav Tripathi |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
4 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
5 This file is part of Pytave. |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
6 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
7 Pytave is free software; you can redistribute it and/or modify it |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
9 Free Software Foundation; either version 3 of the License, or (at your |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
10 option) any later version. |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
11 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
12 Pytave is distributed in the hope that it will be useful, but WITHOUT |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
15 for more details. |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
16 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
18 along with Pytave; see the file COPYING. If not, see |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
20 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
21 */ |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
22 |
331
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
23 #if ! defined (pytave_oct_py_util_h) |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
24 #define pytave_oct_py_util_h |
306
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
25 |
333
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
26 #include <string> |
306
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
27 #include <boost/python.hpp> |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
28 |
331
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
29 class octave_value; |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
30 |
306
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
31 namespace pytave |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
32 { |
331
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
33 |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
34 void |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
35 get_builtins_module (boost::python::object& builtins_module); |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
36 |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
37 void |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
38 get_object_from_python (const octave_value& oct_value, |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
39 boost::python::object& py_object); |
cee203ea6245
Rename oct-py-util.cc from pytave_utils.cc
Mike Miller <mtmiller@octave.org>
parents:
306
diff
changeset
|
40 |
333
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
41 std::string |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
42 py_object_class_name (PyObject *obj); |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
43 |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
44 bool |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
45 is_py_kwargs_argument (PyObject *obj); |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
46 |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
47 PyObject * |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
48 update_py_dict (PyObject *dict_orig, PyObject *dict_new); |
96b78e78a235
pycall: add support for keyword arguments from pyargs (fixes issue #45)
Mike Miller <mtmiller@octave.org>
parents:
331
diff
changeset
|
49 |
306
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
50 } |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
51 |
2ecae5c6eeb6
Refactor code, have common functions in pytave_utils
Abhinav Tripathi <genuinelucifer@gmail.com>
parents:
diff
changeset
|
52 #endif |