Hi Narf,

Yes, it is possible, and there are two approaches to that:
- platform (COM/XPCOM/webservices) specific (not recommended for XPCOM, not available for MSCOM, OK for webservices)
- platform neutral (implemented in recent SVN tree) - (recommended)

First approach it to use component technology's specific mechanism to access constants data available in typelib. To do that, for XPCOM xpcom.components.interfaces can be used, such as xpcom.components.interfaces.MachineState.Running. For webservices, one can use g_reflectionInfo in VirtualBox_wrappers (g_reflectionInfo.MachineState.Running). For MS COM there's no reliable mechanism to do that (win32com.client.constants
doesn't work entirely expected way).

Second approach, is to use pregenerated constants file, and rely on universal wrapper vboxapi.py to access constants, like this:
 virtualBoxManager = VirtualBoxManager(None, None)
 g_virtualBoxManager.constants.MachineState_Running

Note underscore in constant's name.

Class VirtualBoxManager hides platform-specific implementation details, and allow to write the same Python code for Windows, Linux and webservices.

Will work on improving of Python sections in SDK documentation .

Thanks,
   Nikolay


Narf wrote:
Hi,

Is it possible to access the enums (MachineState, HardDiskType, etc)
from python? I'm programming a python interface to virtualbox and I
feel stupid hardcoding the numbers. And the python section in the sdk
documentation is not... erm... very helpful :)

Thanks,
Narf

_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev


_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev

Reply via email to