Re: [pygtk] PyGtk and gtk-3.0 compatibility

Hey Tomeu,

Is there a plan to update the reference documentation for PyGtk 3.0?

I see this as a major problem at the moment as anyone googling is
gonna hit the 2.0 reference and end up in a pretty strange situation
of stuff just not working for no apparent reason.

2010/7/8 Tomeu Vizoso <tomeu sugarlabs org>:
> On Thu, Jul 8, 2010 at 16:19, Gerald Britton <gerald britton gmail com> wrote:
>> On Thu, Jul 8, 2010 at 4:03 AM, Tomeu Vizoso <tomeu sugarlabs org> wrote:
>>> On Mon, Jul 5, 2010 at 15:48, John Stowers <john stowers lists gmail com> wrote:
>>>> Hi,
>>>> First of all, PyGI and GObject introspection is the way forward.
>>>> Now, that being said, it seems a little silly to spend all this effort
>>>> porting C apps in GNOME to gtk-3.0 only to see the first PyGtk app drag
>>>> back in the gtk-2.0 libraries with "import gtk".
>>>> So I spent a little time trying to get PyGtk to build with GSEAL. Turns
>>>> out it wasn't that hard [1][2].
>>>> Only a few accessors were missing
>>>>  * GtkWindow.has_user_ref_count
>>>>  * GtkInvisible.has_user_ref_count
>>>>    These both are used in the sink funcs, and seem to be a synonym
>>>>    for checking the object has not been destroyed.
>>>>  * gtk_menu_get_position_func{,_data}
>>>> So, what is the opinion on this? Is it worth me continuing? My idea
>>>> would be to make *only one* PyGtk release that builds against gtk-3.0,
>>>> it would see no new features.
>>> Sounds like a good idea to me, given how much PyGTK application
>>> authors seem to lag behind platform changes.
>>> That said, I think distros should focus on moving to introspection
>>> because it allows them to drop maintenance of a lot of packages. But
>>> anything that makes this move easier for people is important.
>> I've trying to get a handle on PyGI for a while now, but I'm still in
>> a bit of a fog.
> First of all, sorry about the confusion, help is needed in properly
> explaining the situation, so if someone reading this is able to go
> through and make it a bit more coherent, it will
> be a great contribution.
> Second, PyGI has ceased to exist after it was merged into PyGObject so
> it may be better to only refer to it for historical purposes. In
> practical terms, PyGObject has gained support for using gobject-based
> libraries through introspection.
>> I've worked on some PyGTK apps so understand that OK,
>> but what I'm really looking for are answers to questions like:
>> 1. What problem is PyGI trying to solve?
> It adds the possibility to call gobject-based libraries without having
> to generate/write, build, package, maintain and install specific
> bindings for that library.
>> 2. What advantage will I see by using PyGI over PyGTK?
> You are able to use API that nobody has bothered to write bindings
> for, such as GSettings. Incidentally, your application will use less
> memory and will start up faster because the class wrappers are loaded
> lazily.
> One more consequence is that in order to port your application to
> Python 3.x or another Python implementation such as Jython you will
> only need to port your application code and PyGObject, and not the
> thousands of lines in static bindings.
> Last, is that the Python GNOME community can focus on improving and
> completing a much smaller codebase if we don't need to maintain static
> bindings for each library out there. We also pool resources with the
> other GNOME teams maintaining bindings for other languages. This has
> its importance because as we know critical components of Python in
> GNOME were having just minimal maintenance, when any at all.
>> 3. How do I port my application from PyGTK to PyGI?
> Right now, you need to change the way modules are imported (s/import
> gtk/from gi.repository import Gtk/) and mostly adapt to the API
> provided by the C libraries you use. This example script may give an
> idea of the transformations required:
> That said, PyGObject provides a mechanism for overriding the C API and
> is being used to provide an API more compatible with PyGTK. There's
> also the possibility to simulate the old way of importing modules with
> some import hook magic. As people start porting their applications,
> we'll know better how to make it easier.
> There exists the possibility that applications can be made to use
> introspected libraries instead of static bindings without changes, but
> it requires someone doing the work upstream.
> Note that by integrating PyGI into PyGObject we don't force you to use
> introspection instead of static bindings. It just gives the community
> a way forward that could work, given the current resources available.
> Hope it clarifies a bit,
> Tomeu
>>> Regards,
>>> Tomeu
>>>> John
>>>> [1]
>>>> [2]
>>>> _______________________________________________
>>>> pygtk mailing list   pygtk daa com au
>>>> Read the PyGTK FAQ:
>>> _______________________________________________
>>> pygtk mailing list   pygtk daa com au
>>> Read the PyGTK FAQ:
>> --
>> Gerald Britton
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list gnome org

Un saludo,
Alberto Ruiz

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]