SIP (oprogramowanie)

łyk
Oryginalni autorzy Phila Thompsona
Napisane w C , C++
Licencja GPL i inne
Strona internetowa riverbankcomputing.co.uk/software/sip/intro _ _ _ _ _

SIP to narzędzie oprogramowania typu open source służące do łączenia programów komputerowych lub bibliotek napisanych w języku C lub C++ z językiem skryptowym Python . Jest to alternatywa dla SWIG .

SIP został pierwotnie opracowany w 1998 roku dla PyQt — powiązań Pythona dla zestawu narzędzi Qt GUI — ale nadaje się do generowania powiązań dla dowolnej biblioteki C lub C++.

Pojęcie

SIP pobiera zestaw plików specyfikacji (.sip) opisujących API i generuje wymagany kod C++. Jest to następnie kompilowane w celu wytworzenia modułów rozszerzeń Pythona. Plik .sip jest zasadniczo plikiem nagłówkowym klasy, z którego usunięto niektóre elementy (ponieważ SIP nie zawiera pełnego parsera C++) i dodano kilka elementów (ponieważ C++ nie zawsze dostarcza wystarczających informacji o działaniu interfejsu API).

Dla PyQt v4 używam wewnętrznego narzędzia (oczywiście napisanego przy użyciu PyQt) o nazwie metasip. To jest coś w rodzaju IDE dla SIP. Używa GCC -XML do analizowania najnowszych plików nagłówkowych i zapisywania odpowiednich danych w formacie XML w projekcie metasip. Metasip następnie wykonuje odpowiednik porównania z poprzednią wersją API i zaznacza wszelkie zmiany, którym należy się przyjrzeć. Zmiany te są następnie wprowadzane przez GUI i zaznaczane na liście TODO. Generowanie plików .sip to tylko jedno kliknięcie. W moim repozytorium Subversion PyQt v4 to w zasadzie tylko 20-milionowy plik XML. Aktualizacja PyQt v4 dla mniejszej wersji Qt v4 to około pół godziny pracy. Jeśli chodzi o sposób działania wygenerowanego kodu, nie sądzę, aby różnił się on bardzo od działania dowolnego innego generatora powiązań. Python ma bardzo dobre C API do pisania modułów rozszerzeń - to jeden z powodów, dla których tak wiele narzędzi innych firm ma powiązania z Pythonem. Dla każdej klasy C++ kod wygenerowany przez SIP tworzy odpowiednią klasę Pythona zaimplementowaną w C.

Phil Thompson, programista i opiekun

Wybitne aplikacje korzystające z SIP

  • PyQt , port Pythona struktury aplikacji i zestawu narzędzi widżetów Qt
  • QGIS , darmowy i wieloplatformowy system informacji geograficznej (GIS) dla komputerów stacjonarnych
  • QtiPlot , program komputerowy do analizy i wizualizacji danych naukowych
  • calibre (oprogramowanie) , darmowy i wieloplatformowy menedżer e-booków typu open source
  • Veusz , darmowy i wieloplatformowy program typu open source do wizualizacji danych naukowych