|
From: <da...@el...> - 2020-11-17 14:08:50
|
SX_L, I really do think you will entering a world of pain for minimal gain. XLL's are designed to be called from Excel. Yes, the XLL exposes a C-style interface (with no C++ name mangling etc), but the functions expect nearly all parameters to be passed via OPER structures, so getting Python to generate these would be the first hurdle. Second, the OPER structure also provides both Excel and the called XLL with the information on which of them is responsible for the memory allocation and tidy up for any parameters (so you could suffer memory leaks, access violations as the variable has been destroyed unexpectedly, or both). Third, implicit in every call is information (bespoke to Excel) about how the function has been called (in essence like the VBA Application object) so that the XLL can call-back into Excel if needed. And finally, the XLL interface does not currently provide all the objects and functions within QuantLib, and while the Python interface (AFAIK) also doesn't expose every piece of QL functionality, it gives you more than the Excel wrapper, and most importantly Python is being regularly updated. Best DS From: SX L <han...@ho...> Sent: Tuesday, 17 November 2020 13:00 To: Eric Ehlers <eri...@re...> Cc: qua...@li... Subject: Re: [Quantlib-users] How to expose QuantLibAddin to Python? Yes. I essentially turned Python to VBA. I tried to load the XLL with CDLL, no luck. As for the C bindings, I want to turn it on. Could you please elaborate? XLL bindings are actually C ones. C++ bindings won't work with ctypes. _____ From: Eric Ehlers <eri...@re... <mailto:eri...@re...> > Sent: Monday, November 16, 2020 6:34 PM To: SX L <han...@ho... <mailto:han...@ho...> > Cc: qua...@li... <mailto:qua...@li...> <qua...@li... <mailto:qua...@li...> > Subject: Re: [Quantlib-users] How to expose QuantLibAddin to Python? > I managed to load QuantLibXLL into Python with win32com. That's an interesting exercise to attempt. An XLL is a DLL so I guess there is nothing to prevent you from loading it as such into Python. But the XLL's entry points are designed to be called from Excel so it would be a hassle at best to use from Python. > However, what about Linux side? SWIG? Can gensrc generate C interfaces similar to XL ones? The idea behind gensrc is that you could autogenerate source code for the QuantLibAddin interface for any platform, Excel is just one example. There is a build for C++ but it only supports a subset of the functionality that QuantLibXL supports. So the C++ build is more of a proof of concept. It works on Windows and Linux and is documented here: https://www.quantlib.org/quantlibaddin/build_cpp.html Once upon a time, we implemented a gensrc module to export the QuantLibAddin interface to C, and that facilitated deployment to platforms such as Python that talk C. However that build has not been maintained for a long time and it would not be a trivial task to resurrect it. Regards, Eric On 11/15/20 5:13 PM, SX L wrote: I managed to load QuantLibXLL into Python with win32com. However, what about Linux side? SWIG? Can gensrc generate C interfaces similar to XL ones? _______________________________________________ QuantLib-users mailing list Qua...@li... <mailto:Qua...@li...> https://lists.sourceforge.net/lists/listinfo/quantlib-users |