1. Gerando bindings de bibliotecas
C++ para Python
Marcelo Lira - setanta
1 de Outubro / São Paulo - SP
2. Sobre o palestrante e seus overlords
ˆ Desenvolvedor híbrido Python/C++
ˆ Membro da equipe principal do PySide
ˆ INDT - Instituto Nokia de Tecnologia
3. O Que Veremos Hoje
ˆ Breve história
ˆ Denição do problema
ˆ Gerando bindings
Mais uma iniciação que um tutorial.
4. PySide
Senta que lá vem estória...
ˆ Parte I
ˆ Qt da Trolltech.
ˆ Nokia compra Trolltech.
ˆ Qt da Nokia.
ˆ Qt passa do desenvolvimento fechado pro aberto.
ˆ Parte II
ˆ PyQt da Riverbank.
ˆ Nokia negocia com Riverbank.
ˆ PyQt da Riverbank.
ˆ INDT faz o PySide.
6. O Problema
Como usar bibliotecas
C++ em Python?
7. Problemas com C
ˆ Converter de/para tipos primitivos
Python
int - int
struct MyString - unicode
ˆ Representar tipos em Python
struct Text {
struct MyString* paragraph;
int lines;
};
Text - Text
9. Identidade dos Objetos
ˆ Objeto passado por valor:
alterações sobre a cópia
struct Foo;
void function(Foo foo);
ˆ Objeto passado por ponteiro:
alterações sobre o original
void function(Foo* foo);
13. Gerador de Bindings
ˆ Coletor de informações sobre a biblioteca
C++ alvo
ˆ Capaz de inserir modicações do usuário
ˆ Necessário para bibliotecas grandes
14. Shiboken
ˆ Shiboken é o gerador de bindings usado para criar os
bindings PySide.
ˆ Usa Qt, mas os bindings gerados não dependem dela.
ˆ Está licenciado sob GPL.
15. libshiboken
ˆ libshiboken é a biblioteca de apoio para os
bindings gerados pelo Shiboken.
ˆ Licenciada sob a LGPL.
20. Melhorias Desejáveis
ˆ Uma ferramenta para iniciar o desenvolvimento de
bindings.
ˆ Utilitário gráco para edição atualização dos
bindings.
ˆ Bindings Python para a libapiextractor (casa de
ferreiro...).
21. Direções Perguntas
Código
http://github.com/PySide
www.pyside.org
Lista de discussão
http://lists.openbossa.org/listinfo/pyside
Canal #pyside no Freenode