Python win32com y arrays bidimensionales

Cuando se utilizan python y win32com para automatizar el formulario de software, Adobe se encuentra con un problema al pasar matrices de coordenadas 2d. Si uno mira el código que Adobe envía para Visual Basic (VB) es simple. Un ejemplo simplificado para dibujar una línea en Illustrator sería el siguiente:

<code>Set appObj = CreateObject("Illustrator.Application")
Set docObj = appObj.Documents.Add

Set pathItem = docObj.PathItems.Add
    pathItem.SetEntirePath Array(Array(0.0, 0.0), Array(20.0, 20.0))
</code>

Ahora, la suposición ingenua es que el código VB podría simplemente convertirse en python convirtiéndolo de la siguiente manera:

<code>from win32com.client import Dispatch

appObj = Dispatch("Illustrator.Application")  
docObj = appObj.Documents.Add()

pathItem = docObj.PathItems.Add()
pathItem.SetEntirePath( [ [0.0,0.0], [20.0,20.0] ] )
</code>

Obviamente, no es tan fácil, Python emite un error que dice "Sólo se admiten matrices con dimensión 1". Ahora sé que hay una diferencia entre matrices de matrices y matrices bidimensionales. Entonces la pregunta es ¿cómo puedo forzar a Python para que haga una matriz del tipo correcto?

Intenté hacer mi propio tipo VARIANT pero fallé miserablemente. También he mirado ctypes para esto. ¿Alguien ha tenido el mismo problema y podría arrojar algo de luz?

PD:

Soy consciente de que el problema puede ser evitado usando:

<code>pathItem = docObj.PathItems.Add()
for point in (  [0.0,0.0], [20.0,20.0] ):
    pp = pathItem.PathPoints.Add() 
    pp.Anchor = point
</code>

Pero hay casos similares donde esto no funciona, de hecho. De todos modos, el punto es escribir pautas sobre cómo trasladar a los estudiantes para que sea lo más cercano a la intención original sería mejor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta