Python win32com e arrays bidimensionais

Ao usar o python e o win32com para automatizar o formulário do software, o Adobe encontra problemas com a passagem de matrizes de coordenadas 2d. Se alguém olha para o código que a Adobe envia para visual basic (VB), é simples. Um exemplo simplificado para desenhar uma linha no Illustrator seria o seguinte:

<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>

Agora, a suposição ingênua é que o código VB poderia ser transformado em python convertendo-o da seguinte maneira:

<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, não é assim tão fácil, o Python emite um erro dizendo "Somente arrays com dimensão 1 são suportados". Agora eu sei que há uma diferença entre arrays de arrays e arrays bidimensionais. Então a questão é como forçar o Python a criar um array do tipo certo?

Eu tentei fazer meu próprio tipo VARIANT mas falhei miseravelmente. Eu também olhei para ctypes para isso. Alguém teve o mesmo problema e poderia lançar alguma luz?

PS:

Estou ciente de que o problema pode ser contornado 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>

Mas há casos semelhantes em que isso não funciona de fato. De qualquer forma, o objetivo é escrever diretrizes sobre como portar os alunos, de modo que estar tão próximo da intenção original seria melhor.

questionAnswers(2)

yourAnswerToTheQuestion