2016-01-04 33 views
8

Fakt, że python 3.5+ obsługuje wskazówki typów, ma wielkie zastosowanie podczas generowania wrapperów, na przykład poprzez SWIG.Generowanie podpowiedzi typu Pythona za pomocą kodu SWIG

Podpowiedzi dotyczące typów podczas pracy z dużym interfejsem API w języku C++ spowodowałyby znacznie lepsze wrażenia, ponieważ narzędzie IDE/linter może wykonywać sprawdzanie typu kompilacji.

W jaki sposób można wygenerować wskazówki do typu za pomocą SWIG?

+1

Można po prostu wstrzyknąć kod Pythona użyciem '% pythoncode% {%}' składni i systematycznie owinąć funkcje z funkcjami z podpowiedziami. Do zajęć możesz użyć '% extend'. Najlepiej możesz uwzględnić te rozszerzenia w swoich mapach, więc nie jest wymagana ręczna praca. Wiele osób jest niezadowolonych z Pythona 3.0, więc spodziewam się, że zajmie to trochę czasu, zanim stanie się częścią standardowej mapy typów –

Odpowiedz

1

Funkcja automatycznego podrzutu umożliwia to, przynajmniej w prostych przypadkach.

Dodawanie %feature("autodoc", "1") do swojego SWIG kodu interfejsu, będzie generować takie rzeczy jak:

def function_name(*args, **kwargs): 
    """function_name(int x, int y, Foo foo=None, Bar bar=None) -> bool""" 
    ... 

Zobacz http://www.swig.org/Doc3.0/SWIGDocumentation.html#Python_nn67