Re: [Touch-packages] [Bug 1866625] Re: OverflowError: With Python 3 Gtk.ListStore only accepts 32 Bit Integers.

2020-05-08 Thread Wolf Pichler
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.

2020-03-11 Thread Christoph Reiter
"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.

2020-03-09 Thread Wolf Pichler
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.

2020-03-09 Thread Sebastien Bacher
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.

2020-03-09 Thread Wolf Pichler
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.

2020-03-09 Thread Sebastien Bacher
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