Re: [Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
It should indeed be done like this: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GObject mystore = Gtk.ListStore(GObject.TYPE_UINT64) mystore.insert_with_valuesv(-1, [1], [GObject.Value(GObject.TYPE_UINT64, 1330400507426)]) ### I was completely unaware of that possibility because the source of my GTK knowlege is https://lazka.github.io/pgi- docs/#Gtk-3.0/classes/ListStore.html#Gtk.ListStore.set_column_types When checking out the available types one ends up here: https://lazka.github.io/pgi- docs/#GObject-2.0/classes/GType.html#GObject.GType Which does not ring any bell ... So I did it like in https://python-gtk-3-tutorial.readthedocs.io/en/latest/treeview.html #the-model where the Python types are used. ### With the knowlege I gained through this FR it was possible to find this: GObject Built-in Type Constants The Built-in Type constants specify the pre-defined types used by gobject. https://developer.gnome.org/pygobject/stable/gobject-constants.html #gobject-type-constants which is quite useful. ### Thanks! On 11.03.20 17:56, Christoph Reiter wrote: > import gi > gi.require_version('Gtk', '3.0') > from gi.repository import Gtk > > This works in Python 2: > > mystore = Gtk.ListStore(long) > mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) > > This does not work in Python 3: > > mystore = Gtk.ListStore(int) > mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
"int" maps to the same underlying type in Python 2 and Python 3. This wasn't changed when pygobject was ported to Python 3 and can't really be changed now. If you want be sure your numbers fit use the suggested "GObject.TYPE_*", or just use "object" which means the Python int object is stored as is, assuming you don't need to access it in C code somewhere else. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
Re: [Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
It works! On 09.03.20 21:17, Sebastien Bacher wrote: > COuld you test the upstream workaround and use > GObject.Value(GObject.TYPE_UINT64, 1330400507426) ? > -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
COuld you test the upstream workaround and use GObject.Value(GObject.TYPE_UINT64, 1330400507426) ? -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
Re: [Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
I'm not sure what exactly they are really talking about at https://gitlab.gnome.org/GNOME/pygobject/issues/198. My FR concerns 3.26.1-2ubuntu1 and at gitlab it is stated "I think it used to work in 3.26." which clearly is not the case. I took a look into the source and in pygi-value.c I found this: case G_TYPE_INT: { glong val = PYGLIB_PyLong_AsLong(obj); if (val == -1 && PyErr_Occurred ()) return -1; if (val > G_MAXINT || val < G_MININT) { PyErr_SetString(PyExc_OverflowError, "out of range for int property"); return -1; } g_value_set_int(value, (gint)val); break; } and a lot of comments like this: #if PY_VERSION_HEX < 0x0300 [snip] #endif To me this means that somebody is/was aware of the fact that some more work has to be done for making this stuff compatible to Python 3. On 09.03.20 14:48, Sebastien Bacher wrote: > Thank you for your bug report, that seems similar to > https://gitlab.gnome.org/GNOME/pygobject/issues/198 > > ** Bug watch added: gitlab.gnome.org/GNOME/pygobject/issues #198 >https://gitlab.gnome.org/GNOME/pygobject/issues/198 > > ** Changed in: pygobject (Ubuntu) >Importance: Undecided => Low > -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.
Thank you for your bug report, that seems similar to https://gitlab.gnome.org/GNOME/pygobject/issues/198 ** Bug watch added: gitlab.gnome.org/GNOME/pygobject/issues #198 https://gitlab.gnome.org/GNOME/pygobject/issues/198 ** Changed in: pygobject (Ubuntu) Importance: Undecided => Low -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pygobject in Ubuntu. https://bugs.launchpad.net/bugs/1866625 Title: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers. Status in pygobject package in Ubuntu: New Bug description: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk This works in Python 2: mystore = Gtk.ListStore(long) mystore.insert_with_valuesv(-1, [1], [long(1330400507426)]) This does not work in Python 3: mystore = Gtk.ListStore(int) mystore.insert_with_valuesv(-1, [1], [int(1330400507426)]) OverflowError: Item 0: out of range for int property lsb_release -rd Description: Ubuntu 18.04.4 LTS Release: 18.04 apt-cache policy python3-gi python3-gi: Installed: 3.26.1-2ubuntu1 Candidate: 3.26.1-2ubuntu1 Version table: *** 3.26.1-2ubuntu1 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages 100 /var/lib/dpkg/status 3.26.1-2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages python3 -V Python 3.6.9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1866625/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp