…e files (so \n does not become \r\n)
* the static bindings used to be able to set a string gvalue to any python object that implemented __str__, for instance when setting a treemodel column * this restores that code while still keeping unicode and python 3 compatability
When using a separate build tree, the compiled GSettings schema will be in the build tree, but as the test scripts are only in the source tree they won't find the compiled schema. Pass the build dir as environment variable and prefer it over test_overrides.py's directory.
* before we were able to marshal python callables into methods that took GClosures but we had no way to take a GClosure returned from one method and pass it to another - this enables that usecase https://bugzilla.gnome.org/show_bug.cgi?id=644757
* PyGObjects wern't being marshalled correctly as python objects when a treemodel column was set to take pyobjects * Fix this by explicetly marshalling all PyObjects as boxed gvalue types in the overrides
Don't just ignore the type argument, actually pass it on. Thanks to Tualatrix Chou for spotting this!
Calling methods on DBusProxy objects usually requires specifying the signature as first argument. However, if the D-BUS method does not take any arguments, specifying the empty '()' signature does not give any additional information, so allow the caller to just call the proxy method without any arguments. Also ensure that passing a non-string signature raises a comprehensible exception, instead of crashing deep in the GVariant leaf constructor. https://bugzilla.gnome.org/show_bug.cgi?id=644260
When creating a wrapper around an object to call a python function, we try to avoid calling pygobject_sink() when the object was not created by pygobject or the static bindings because otherwise we can end up leaking one reference for GInitiallyUnowned subclasses if the object was already owned by someone else. https://bugzilla.gnome.org/show_bug.cgi?id=644067
Since this helper was storing plain references in a long-lived dict, the refcount for the instances would never drop to zero, and so they would never get finalized. https://bugzilla.gnome.org/show_bug.cgi?id=644039
* use etype, e = sys.exc_info[:2] to extract error details instead of except Exception as e or except Exception, e
* This worked in Python2 because bytes and strings are equivilant and the macro PYGLIB_PyString_FromStringAndSize evaluated to a PyString * In Python 3 PYGLIB_PyString_FromStringAndSize evaluates to a PyUnicode * PYGLIB_PyBytes_FromStringAndSize evaluates to a PyString in Python 2 and a PyBytes object in Python 3
* python < 2.6 does not allow sending in keyword litterals after sending in *args. You can only send in **kwds.