Pythonnet: Add support for DLR types

Created on 16 Apr 2015  路  7Comments  路  Source: pythonnet/pythonnet

Using this it's possible to implement all required functionality in a separate DLR meta-class. I've already tried to do this in Python but sadly the .NET types (or their representation in Python-space) are not patchable.

enhancement

Most helpful comment

Indeed I have now found a way around this, check out this gist: https://gist.github.com/filmor/58f5099f96570c64b1d3

The implementation of the member access is done by basically translating the code that the C# compiler produces when accessing dynamic properties to Python.

Note: Strictly speaking this does _not_ implement full support, as it only helps classes that derive from DynamicObject, not those that only implement IDynamicMetaObjectProvider.

All 7 comments

Indeed I have now found a way around this, check out this gist: https://gist.github.com/filmor/58f5099f96570c64b1d3

The implementation of the member access is done by basically translating the code that the C# compiler produces when accessing dynamic properties to Python.

Note: Strictly speaking this does _not_ implement full support, as it only helps classes that derive from DynamicObject, not those that only implement IDynamicMetaObjectProvider.

@filmor what is the use case for exposing DLR types in python?

My particular use case is a configuration library that allows for constructs like:

string proxy = c.proxy.http;

where c is a dynamic object of which the members are implicitly created by reading from the config. It allows us to pass partial configuration around easily and reduces string-littering.

@filmor can this be used to access dynamic attributes of COM objects? if yes, can you provide minimal example?

@filmor here is my first attempt at using com objects from pythonnet:

https://gist.github.com/denfromufa/ec559b5af41060c5ac318f7f59d8b415#file-excel_interop_vsto-ipynb

@filmor how would you add support for IDynamicMetaObjectProvider?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

CodeProQuo picture CodeProQuo  路  11Comments

r0x0r picture r0x0r  路  5Comments

rionmonster picture rionmonster  路  9Comments

tarpista picture tarpista  路  10Comments

m-rossi picture m-rossi  路  5Comments