mapeditor/tiled

Modernize Python bindings

Open

#2,190 opened on Aug 28, 2019

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (1,708 forks)batch import
help wanted

Repository metrics

Stars
 (10,413 stars)
PR merge metrics
 (Avg merge 14d 4h) (17 merged PRs in 30d)

Description

The current Python plugin relies on a large amount of generated code based on the somewhat hard to maintain and always incomplete tiledbinding.py and qtbinding.py.

I've recently learned about pybind11 (see also this blog post), which seems like a much nicer way of binding the classes to Python. The bindings are defined with similar verbosity, but directly in C++ which makes it easier to keep up-to-date.

In addition, pybind11 provides a more convenient way of interfacing with an embedded Python interpreter than using the Python API directly.

Contributor guide