[Python.NET] FromManagedObject and Booleans
Brian Lloyd
brian.lloyd at revolutionhealth.com
Fri Nov 2 17:29:32 CET 2007
That might actually be because bool didn't exist in python way back
then ;) I suspect its probably safe to fix it now.
-Brian
On 11/2/07 12:14 PM, "Michael Foord" <fuzzyman at voidspace.org.uk> wrote:
> Hello all,
>
> I'm using the Python.Runtime assembly to provide access to CPython
> modules from IronPython.
>
> I'm converting objects that pass from CPython to IronPython (and
> vice-versa) by converting datatypes or proxying access.
>
> To convert to CPython types I use "PyObject.FromManagedObject(obj)"
> where possible and do type specific conversion for other types.
>
> Unfortunately "PyObject.FromManagedObject(obj)" doesn't work for
> booleans and passing in booleans to CPython doesn't result in 'True' or
> 'False', but a 'System.Boolean' instead.
>
> As a workaround I'm using:
>
> @GIL
> def _getBools():
> "Hack because 'FromManagedObject' doesn't work for bools"
> builtin = engine.ImportModule('__builtin__')
> return {False: builtin.GetAttr('False'), True: builtin.GetAttr('True')}
>
> _bools = _getBools()
>
> Is the fact that "PyObject.FromManagedObject(obj)" doesn't work for
> booleans a bug? (Or is there an alternative method you can suggest?)
>
> All the best,
>
>
> Michael Foord
> http://www.manning.com/foord
> _________________________________________________
> Python.NET mailing list - PythonDotNet at python.org
> http://mail.python.org/mailman/listinfo/pythondotnet
--------------------------
Brian Lloyd
brian.lloyd at revolutionhealth.com
More information about the PythonDotNet
mailing list