This class handles two-way translation between the data types in C++ and Python. More...
#include <pythonutils.h>
Public Member Functions | |
bool | check (const PythonType &c) const |
bool | getBool () const |
Date | getDate () const |
double | getDouble () const |
int | getInt () const |
long | getLong () const |
string | getString () const |
TimePeriod | getTimeperiod () const |
unsigned long | getUnsignedLong () const |
operator bool () const | |
operator PyObject * () const | |
PythonObject & | operator= (const PythonObject &o) |
PythonObject (const Date &val) | |
PythonObject (const TimePeriod val) | |
PythonObject (const bool val) | |
PythonObject (const unsigned long val) | |
PythonObject (const long val) | |
PythonObject (const int val) | |
PythonObject (const double val) | |
PythonObject (const string &val) | |
PythonObject (Object *p) | |
PythonObject (PyObject *o) | |
PythonObject () |
This class handles two-way translation between the data types in C++ and Python.
This class is basically a wrapper around a PyObject pointer.
When creating a PythonObject from a C++ object, make sure to increment the reference count of the object.
When constructing a PythonObject from an existing Python object, the code that provided us the PyObject pointer should have incremented the reference count already.
Definition at line 297 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | ) | [inline, explicit] |
Default constructor. The default value is equal to Py_None.
Definition at line 304 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | PyObject * | o | ) | [inline] |
Constructor from an existing Python object.
The reference count isn't increased.
Definition at line 309 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | Object * | p | ) |
Constructor from a pointer to an Object.
The metadata of the Object instances allow us to create a Python object that works as a proxy for the C++ object.
Definition at line 428 of file pythonutils.cpp.
frepple::utils::PythonObject::PythonObject | ( | const string & | val | ) | [inline] |
Convert a C++ string into a (raw) Python string.
Definition at line 452 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const double | val | ) | [inline] |
Convert a C++ double into a Python number.
Definition at line 464 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const int | val | ) | [inline] |
Convert a C++ integer into a Python integer.
Definition at line 470 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const long | val | ) | [inline] |
Convert a C++ long into a Python long.
Definition at line 476 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const unsigned long | val | ) | [inline] |
Convert a C++ unsigned long into a Python long.
Definition at line 482 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const bool | val | ) | [inline] |
Convert a C++ boolean into a Python boolean.
Definition at line 488 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const TimePeriod | val | ) | [inline] |
Convert a frePPLe TimePeriod into a Python number representing the number of seconds.
Definition at line 496 of file pythonutils.h.
frepple::utils::PythonObject::PythonObject | ( | const Date & | val | ) |
Convert a frePPLe date into a Python datetime.datetime object.
Definition at line 371 of file pythonutils.cpp.
bool frepple::utils::PythonObject::check | ( | const PythonType & | c | ) | const [inline] |
Check whether the Python object is of a certain type.
Subclasses of the argument type will also give a true return value.
Definition at line 323 of file pythonutils.h.
bool frepple::utils::PythonObject::getBool | ( | ) | const [inline, virtual] |
Convert a Python number into a C++ bool.
Reimplemented from frepple::utils::DataElement.
Definition at line 418 of file pythonutils.h.
Date frepple::utils::PythonObject::getDate | ( | ) | const [virtual] |
Convert a Python datetime.date or datetime.datetime object into a frePPLe date.
Reimplemented from frepple::utils::DataElement.
Definition at line 393 of file pythonutils.cpp.
double frepple::utils::PythonObject::getDouble | ( | ) | const [inline, virtual] |
Convert a Python number or string into a C++ double.
Reimplemented from frepple::utils::DataElement.
Definition at line 365 of file pythonutils.h.
int frepple::utils::PythonObject::getInt | ( | ) | const [inline, virtual] |
Convert a Python number or string into a C++ integer.
Reimplemented from frepple::utils::DataElement.
Definition at line 380 of file pythonutils.h.
long frepple::utils::PythonObject::getLong | ( | ) | const [inline, virtual] |
Convert a Python number into a C++ long.
Reimplemented from frepple::utils::DataElement.
Definition at line 399 of file pythonutils.h.
string frepple::utils::PythonObject::getString | ( | ) | const [inline, virtual] |
Convert a Python string into a C++ string.
Reimplemented from frepple::utils::DataElement.
Definition at line 331 of file pythonutils.h.
TimePeriod frepple::utils::PythonObject::getTimeperiod | ( | ) | const [inline, virtual] |
Convert a Python number as a number of seconds into a frePPLe TimePeriod.
A TimePeriod is represented as a number of seconds in Python.
Reimplemented from frepple::utils::DataElement.
Definition at line 427 of file pythonutils.h.
unsigned long frepple::utils::PythonObject::getUnsignedLong | ( | ) | const [inline, virtual] |
Extract an unsigned long from the Python object.
Reimplemented from frepple::utils::DataElement.
Definition at line 344 of file pythonutils.h.
frepple::utils::PythonObject::operator bool | ( | ) | const [inline, virtual] |
Check for null value.
Reimplemented from frepple::utils::DataElement.
Definition at line 315 of file pythonutils.h.
frepple::utils::PythonObject::operator PyObject * | ( | ) | const [inline] |
This conversion operator casts the object back to a PyObject pointer.
Definition at line 312 of file pythonutils.h.
PythonObject& frepple::utils::PythonObject::operator= | ( | const PythonObject & | o | ) | [inline] |
Assignment operator.
Definition at line 318 of file pythonutils.h.