Discussion:
[Maya-Python] Fast way to create QIcon in PySide2?
(too old to reply)
Michael Boon
2017-05-22 08:10:00 UTC
Permalink
Hey all,

I've just discovered that QIcon is really slow to create in Maya 2017. I'm
creating what is essentially a file browser, and my old version had a
QStandardItemModel, a QListView with setViewModel(QtWidgets.QListView.IconMode)
and about 50,000 icons. Creating the icons used to take ~1 second and now
takes ~5 minutes.

Has anyone else found this? Does anyone know a way around it? Or has anyone
else found that they can create QIcons fast?

Thanks!

Boon
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/185bdb63-7a77-4201-83e8-3f361b1cca4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Marcus Ottosson
2017-05-22 08:16:33 UTC
Permalink
How do you mean creating the icons? Could the icons not be created as they
are shown, or are you showing 50,000 items all at once? Also what is the
content of your icons, are they .png files, fetched from the web etc.?

Overall though, it sounds like something that qualifies as a Qt 4 vs 5
question, alternatively PySide vs PySide2. You might be able to get help on
Stackoverflow or the like.
Post by Michael Boon
Hey all,
I've just discovered that QIcon is really slow to create in Maya 2017. I'm
creating what is essentially a file browser, and my old version had a
QStandardItemModel, a QListView with setViewModel(QtWidgets.QListView.IconMode)
and about 50,000 icons. Creating the icons used to take ~1 second and now
takes ~5 minutes.
Has anyone else found this? Does anyone know a way around it? Or has
anyone else found that they can create QIcons fast?
Thanks!
Boon
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit https://groups.google.com/d/
msgid/python_inside_maya/185bdb63-7a77-4201-83e8-
3f361b1cca4b%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/185bdb63-7a77-4201-83e8-3f361b1cca4b%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOD1ZZFxqjxs3So-EimBG5xQzf4Ycq%3Dx8GKAwu3MNtUSZg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Justin Israel
2017-05-22 11:41:54 UTC
Permalink
Post by Michael Boon
Hey all,
I've just discovered that QIcon is really slow to create in Maya 2017. I'm
creating what is essentially a file browser, and my old version had a
QStandardItemModel, a QListView with setViewModel(QtWidgets.QListView.IconMode)
and about 50,000 icons. Creating the icons used to take ~1 second and now
takes ~5 minutes.
Are they actually 50k discreet source images, or is it 50k items in your
model which make use of a smaller collection of icons?

Do you make any use of reusing the same QIcon for the same source file or
is a new instance created per item for the same file each time? If you know
all your icons up front, you can create the set of them up front. Or you
can use a cache to create them once as needed and retrieved from the cache
on subsequent needs.

If nothing has changed in your own code between Qt4 and Qt5, maybe there is
a difference in how they implicitly cache images for you.
Post by Michael Boon
Has anyone else found this? Does anyone know a way around it? Or has
anyone else found that they can create QIcons fast?
Thanks!
Boon
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/185bdb63-7a77-4201-83e8-3f361b1cca4b%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/185bdb63-7a77-4201-83e8-3f361b1cca4b%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA27psr3di%3Dv2JksA6pdhapKUJNqnTERESs8vMiU4LG2_g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Michael and Amanda
2017-05-22 11:52:14 UTC
Permalink
Thanks for the replies. I should have been more clear. What I'm doing that
takes the time is instantiating 50k QIcons using file paths to 50k jpegs,
each 512x512 pixels. Creating items, telling the icons what size I want
them to display, adding them to my QStandardItemModel and displaying them
in my view is still fast. I run the same code in Maya 2016 and 2017.

I'm at home now but I'll try to be more specific tomorrow.
Post by Justin Israel
Post by Michael Boon
Hey all,
I've just discovered that QIcon is really slow to create in Maya 2017.
I'm creating what is essentially a file browser, and my old version had a
QStandardItemModel, a QListView with setViewModel(QtWidgets.QListView.IconMode)
and about 50,000 icons. Creating the icons used to take ~1 second and
now takes ~5 minutes.
Are they actually 50k discreet source images, or is it 50k items in your
model which make use of a smaller collection of icons?
Do you make any use of reusing the same QIcon for the same source file or
is a new instance created per item for the same file each time? If you know
all your icons up front, you can create the set of them up front. Or you
can use a cache to create them once as needed and retrieved from the cache
on subsequent needs.
If nothing has changed in your own code between Qt4 and Qt5, maybe there
is a difference in how they implicitly cache images for you.
Post by Michael Boon
Has anyone else found this? Does anyone know a way around it? Or has
anyone else found that they can create QIcons fast?
Thanks!
Boon
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit https://groups.google.com/d/
msgid/python_inside_maya/185bdb63-7a77-4201-83e8-
3f361b1cca4b%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/185bdb63-7a77-4201-83e8-3f361b1cca4b%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the
Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit https://groups.google.com/d/
topic/python_inside_maya/4J47CxyM11A/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
To view this discussion on the web visit https://groups.google.com/d/
msgid/python_inside_maya/CAPGFgA27psr3di%3Dv2JksA6pdhapKUJNqnTERESs8vMi
U4LG2_g%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA27psr3di%3Dv2JksA6pdhapKUJNqnTERESs8vMiU4LG2_g%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAA27_y%2BK0CS5-HKrijv7cgqFT%3DD9kn3B0qrCAs%3D%3Di5gdaxpRZw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Marcus Ottosson
2017-05-22 15:42:03 UTC
Permalink
Loading 50k jpegs at 512x512 at ~1 second?

It sounds like Qt 4 was deferring the actual load of these files until you
viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.

But why on earth would you do this? :O Sounds incredibly inefficient. Why
not have icons instantiated when you view them, through the .data() member
of your model, and optionally cache them yourself where necessary?

512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb of
memory utilisation, unless some of your images are the same.

What’s wrong with this picture?
​
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Justin Israel
2017-05-22 19:40:38 UTC
Permalink
Post by Marcus Ottosson
Loading 50k jpegs at 512x512 at ~1 second?
It sounds like Qt 4 was deferring the actual load of these files until you
viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.
But why on earth would you do this? :O Sounds incredibly inefficient. Why
not have icons instantiated when you view them, through the .data()
member of your model, and optionally cache them yourself where necessary?
512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb of
memory utilisation, unless some of your images are the same.
What’s wrong with this picture?
That would be gigaBITS ;-) . Also jpegs are 3 channel usually. So it would
be more like:
512x512x(8x3)/8 = ~39GB of uncompressed image data. But it would
probably end up mostly going into swap memory. If you don't run out of
virtual memory and you aren't swapping too hard then your program could
function. It would then depend on how much of that data Qt wants to load
active at once.

That suggestion you made of implementing data() on the model, loading on
demand, and caching a realistic max number at a time, seems like it would
work great to solve this problem.


​
Post by Marcus Ottosson
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA2PPOsGE35K3fGcTv%3DNVQv_H5%2BNp6s5wZb4e_TJuCwQMg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Michael Boon
2017-05-22 21:43:12 UTC
Permalink
Thanks. That sounds like good advice. I'll try it and get back to you. It
bears out so far though - trying it in Maya 2017 I see a huge amount of
swapping going on.

To answer your question Marcus, I guess I was doing it this way because it
used to work! The documentation for QIcon says "The file will be loaded on
demand," and although it's not entirely clear what that means, in PySide2
it's definitely loading it before the icon has even been added to a visible
widget.
Post by Justin Israel
Post by Marcus Ottosson
Loading 50k jpegs at 512x512 at ~1 second?
It sounds like Qt 4 was deferring the actual load of these files until
you viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.
But why on earth would you do this? :O Sounds incredibly inefficient. Why
not have icons instantiated when you view them, through the .data()
member of your model, and optionally cache them yourself where necessary?
512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb of
memory utilisation, unless some of your images are the same.
What’s wrong with this picture?
That would be gigaBITS ;-) . Also jpegs are 3 channel usually. So it would
512x512x(8x3)/8 = ~39GB of uncompressed image data. But it would
probably end up mostly going into swap memory. If you don't run out of
virtual memory and you aren't swapping too hard then your program could
function. It would then depend on how much of that data Qt wants to load
active at once.
That suggestion you made of implementing data() on the model, loading on
demand, and caching a realistic max number at a time, seems like it would
work great to solve this problem.
​
Post by Marcus Ottosson
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Justin Israel
2017-05-22 22:02:19 UTC
Permalink
Related?
https://bugreports.qt.io/browse/QTBUG-59621

Justin
Post by Michael Boon
Thanks. That sounds like good advice. I'll try it and get back to you. It
bears out so far though - trying it in Maya 2017 I see a huge amount of
swapping going on.
To answer your question Marcus, I guess I was doing it this way because it
used to work! The documentation for QIcon says "The file will be loaded on
demand," and although it's not entirely clear what that means, in PySide2
it's definitely loading it before the icon has even been added to a visible
widget.
Post by Justin Israel
Post by Marcus Ottosson
Loading 50k jpegs at 512x512 at ~1 second?
It sounds like Qt 4 was deferring the actual load of these files until
you viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.
But why on earth would you do this? :O Sounds incredibly inefficient.
Why not have icons instantiated when you view them, through the .data()
member of your model, and optionally cache them yourself where necessary?
512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb of
memory utilisation, unless some of your images are the same.
What’s wrong with this picture?
That would be gigaBITS ;-) . Also jpegs are 3 channel usually. So it
512x512x(8x3)/8 = ~39GB of uncompressed image data. But it would
probably end up mostly going into swap memory. If you don't run out of
virtual memory and you aren't swapping too hard then your program could
function. It would then depend on how much of that data Qt wants to load
active at once.
That suggestion you made of implementing data() on the model, loading on
demand, and caching a realistic max number at a time, seems like it would
work great to solve this problem.
​
Post by Marcus Ottosson
--
You received this message because you are subscribed to the Google
Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA3xo_cZhXjLsdtEJOEM2stgXBiAi9CNndOMDCAw%2BPhF0g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Michael Boon
2017-05-22 23:49:05 UTC
Permalink
Yeah I had decided it was probably the same thing. The comments on the bug
indicate that the person trying to fix it has misunderstood though - I
think they are trying to cache image files, rather than defer loading them.
Post by Justin Israel
Related?
https://bugreports.qt.io/browse/QTBUG-59621
Justin
Post by Michael Boon
Thanks. That sounds like good advice. I'll try it and get back to you. It
bears out so far though - trying it in Maya 2017 I see a huge amount of
swapping going on.
To answer your question Marcus, I guess I was doing it this way because
it used to work! The documentation for QIcon says "The file will be loaded
on demand," and although it's not entirely clear what that means, in
PySide2 it's definitely loading it before the icon has even been added to a
visible widget.
Post by Justin Israel
Post by Marcus Ottosson
Loading 50k jpegs at 512x512 at ~1 second?
It sounds like Qt 4 was deferring the actual load of these files until
you viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.
But why on earth would you do this? :O Sounds incredibly inefficient.
Why not have icons instantiated when you view them, through the .data()
member of your model, and optionally cache them yourself where necessary?
512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb
of memory utilisation, unless some of your images are the same.
What’s wrong with this picture?
That would be gigaBITS ;-) . Also jpegs are 3 channel usually. So it
512x512x(8x3)/8 = ~39GB of uncompressed image data. But it would
probably end up mostly going into swap memory. If you don't run out of
virtual memory and you aren't swapping too hard then your program could
function. It would then depend on how much of that data Qt wants to load
active at once.
That suggestion you made of implementing data() on the model, loading on
demand, and caching a realistic max number at a time, seems like it would
work great to solve this problem.
​
Post by Marcus Ottosson
--
You received this message because you are subscribed to the Google
Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/4b724142-9c4d-4b9b-8140-c2eefe4405a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Marcus Ottosson
2017-05-23 05:33:55 UTC
Permalink
That would be gigaBITS

Realised this shortly after posting. :)

To answer your question Marcus, I guess I was doing it this way because it
used to work!

Hah, fair enough!
​
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAFRtmOBUj_Ocidj_6Kjrkw%3DVPPhzoBfijL3%3DxoQ_2gOhwNjjgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Michael Boon
2017-05-23 06:30:53 UTC
Permalink
I created a simple class for my model. Overrode __init__() to create an
empty list for my icon cache. Overrode data() to cache and return an icon
if role==QtCore.Qt.DecorationRole. Works like a charm. Thanks for the help!

(I also tried creating all the icons in the model items, and setting their
images on demand instead of maintaining my own icon cache list, but that
was much slower.)
Post by Michael Boon
Yeah I had decided it was probably the same thing. The comments on the bug
indicate that the person trying to fix it has misunderstood though - I
think they are trying to cache image files, rather than defer loading them.
Post by Justin Israel
Related?
https://bugreports.qt.io/browse/QTBUG-59621
Justin
Post by Michael Boon
Thanks. That sounds like good advice. I'll try it and get back to you.
It bears out so far though - trying it in Maya 2017 I see a huge amount of
swapping going on.
To answer your question Marcus, I guess I was doing it this way because
it used to work! The documentation for QIcon says "The file will be loaded
on demand," and although it's not entirely clear what that means, in
PySide2 it's definitely loading it before the icon has even been added to a
visible widget.
Post by Justin Israel
Post by Marcus Ottosson
Loading 50k jpegs at 512x512 at ~1 second?
It sounds like Qt 4 was deferring the actual load of these files until
you viewed them, whereas Qt 5 is loading them into memory. Not impossible,
could be an optimisation on their part.
But why on earth would you do this? :O Sounds incredibly inefficient.
Why not have icons instantiated when you view them, through the
.data() member of your model, and optionally cache them yourself
where necessary?
512 x 512 x 8 bits x 4 color channels x 50,000 images comes to 419 gb
of memory utilisation, unless some of your images are the same.
What’s wrong with this picture?
That would be gigaBITS ;-) . Also jpegs are 3 channel usually. So it
512x512x(8x3)/8 = ~39GB of uncompressed image data. But it would
probably end up mostly going into swap memory. If you don't run out of
virtual memory and you aren't swapping too hard then your program could
function. It would then depend on how much of that data Qt wants to load
active at once.
That suggestion you made of implementing data() on the model, loading
on demand, and caching a realistic max number at a time, seems like it
would work great to solve this problem.
​
Post by Marcus Ottosson
--
You received this message because you are subscribed to the Google
Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com
<https://groups.google.com/d/msgid/python_inside_maya/CAFRtmODrO8hMjrAvYQPP1BT7eXRm6RVXCVtZZrUDm4DYn0cXBQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com
<https://groups.google.com/d/msgid/python_inside_maya/eb4e85bd-fe2c-41b7-b6da-96939f156156%40googlegroups.com?utm_medium=email&utm_source=footer>
.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/f7dcfd3b-df31-4d87-84e2-7b5f651dd6b1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...