What's the status of the py3k branch?

I stumbled across this post on the matplotlib-users archives that linked to the py3k branch. After doing a checkout, though, I ran into issues running the make.osx script as the README.osx recommends doing. Since I’m assuming I cannot commit any changes to the branch, let me comment on the few changes that enabled me to compile the dependencies so far.
Because I wanted to compile matplotlib for Python 3, I initially changed the 4th line to:
PYVERSION=3.1
Apparently urllib changed a bit from python 2 to 3, so I had to change all calls to it to urllib.request, which resulted in the following changes to lines 34-37:
** ${PYTHON} -c ‘import urllib.request; urllib.request.urlretrieve(“http://sourceforge.net/projects/libpng/files/zlib/${ZLIBVERSION}/zlib-${ZLIBVERSION}.tar.gz/download”, “zlib-${ZLIBVERSION}.tar.gz”)’ &&
${PYTHON} -c ‘import urllib.request; urllib.request.urlretrieve(“http://sourceforge.net/projects/libpng/files/libpng12/older-releases/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download”, “libpng-${PNGVERSION}.tar.gz”)’ &&
${PYTHON} -c ‘import urllib.request; urllib.request.urlretrieve(“http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2”, “freetype-${FREETYPEVERSION}.tar.bz2”)’**
Note that I also updated the links for zlib and libpng. The original zlib link worked, but I couldn’t find the sourceforge project (the url seemed to be old), so I updated it to the one distributed through libpng’s project nowadays (which is what the other seems to have been, anyway). For libpng, though, the previous link didn’t work and instead of giving an error when downloading, it just created a file that couldn’t be uncompressed. Changing these three lines above enabled the download and proper compilation of all deps.
I also bumped into a minor typo on line 25, that caused clean not to delete the downloaded libpng tarball:
*rm -rf zlib-${ZLIBVERSION}.tar.gz libpng-${PNGVERSION}.tar.gz *

After making all these changes, though, the compilation broke when either making mpl_build or mpl_install.

Before continuing the debug process, though, I wanted to check with someone knowledgeable of this branch regarding its current status. Is it possible to compile matplotlib on python3? If so, what are the limitations to its capabilities?

Thanks so much for your time,

– Fernando

P.S.: I’m attaching a diff with all these changes for convenience.

make.osx.diff (1.89 KB)

[Resending in plain text, for better archiving]

I stumbled across this post on the matplotlib-users archives
(http://www.mailinglistarchive.com/html/matplotlib-users@...925...net/2010-09/msg00359.html)
that linked to the py3k branch. After doing a checkout, though, I ran
into issues running the make.osx script as the README.osx recommends
doing. Since I'm assuming I cannot commit any changes to the branch,
let me comment on the few changes that enabled me to compile the
dependencies so far.

Because I wanted to compile matplotlib for Python 3, I initially
changed the 4th line to:

PYVERSION=3.1

Apparently urllib changed a bit from python 2 to 3, so I had to change
all calls to it to urllib.request, which resulted in the following
changes to lines 34-37:

$\{PYTHON\} \-c 'import urllib\.request;

urllib.request.urlretrieve("http://sourceforge.net/projects/libpng/files/zlib/${ZLIBVERSION}/zlib-${ZLIBVERSION}.tar.gz/download",
"zlib-${ZLIBVERSION}.tar.gz")' &&\
${PYTHON} -c 'import urllib.request;
urllib.request.urlretrieve("http://sourceforge.net/projects/libpng/files/libpng12/older-releases/${PNGVERSION}/libpng-${PNGVERSION}.tar.gz/download",
"libpng-${PNGVERSION}.tar.gz")' &&\
${PYTHON} -c 'import urllib.request;
urllib.request.urlretrieve("http://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPEVERSION}.tar.bz2",
"freetype-${FREETYPEVERSION}.tar.bz2")'

Note that I also updated the links for zlib and libpng. The original
zlib link worked, but I couldn't find the sourceforge project (the url
seemed to be old), so I updated it to the one distributed through
libpng's project nowadays (which is what the other seems to have been,
anyway). For libpng, though, the previous link didn't work and instead
of giving an error when downloading, it just created a file that
couldn't be uncompressed. Changing these three lines above enabled the
download and proper compilation of all deps.

I also bumped into a minor typo on line 25, that caused clean not to
delete the downloaded libpng tarball:

rm \-rf zlib\-$\{ZLIBVERSION\}\.tar\.gz libpng\-$\{PNGVERSION\}\.tar\.gz \\

After making all these changes, though, the compilation broke when
either making mpl_build or mpl_install.

Before continuing the debug process, though, I wanted to check with
someone knowledgeable of this branch regarding its current status. Is
it possible to compile matplotlib on python3? If so, what are the
limitations to its capabilities?

Thanks so much for your time,

-- Fernando

P.S.: I'm attaching a diff with all these changes for convenience.

make.osx.diff (1.89 KB)

Mike D. did some initial work for py3 support a while back. I don't
know what platform he was working on, but he was able to produce a
simple plot, maybe running the simple_plot demo.

I understand there is still plenty of work to do, and some of the devs
recently discussed it off list. In the next couple of days, I should
be able to finish converting the svn/sourceforge repository over to
git/github, which will make it easier for some (like me) to contribute
to different branches of development. My plan is to rebase the py3k
branch so we have a more recent point of reference, and I will
probably split the py3k branch into its own repository. I'd like to
suggest you clone that repository once it is available, apply your
changes in a new branch, and file a pull request on github.

Darren

···

On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez <movrev@...149...> wrote:

Before continuing the debug process, though, I wanted to check with
someone knowledgeable of this branch regarding its current status. Is
it possible to compile matplotlib on python3?

I was working on Linux (RHEL5), and never got past that platform.

Mike

···

On 02/03/2011 07:48 AM, Darren Dale wrote:

On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez > <movrev@...149...> wrote:
   

Before continuing the debug process, though, I wanted to check with
someone knowledgeable of this branch regarding its current status. Is
it possible to compile matplotlib on python3?
     

Mike D. did some initial work for py3 support a while back. I don't
know what platform he was working on, but he was able to produce a
simple plot, maybe running the simple_plot demo.
   

--
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA

I'll stay on the lookout for the github py3k branch and will do as
suggested. Thanks for the update.

-- Fernando

···

On Thu, Feb 3, 2011 at 06:05, Michael Droettboom <mdroe@...31...> wrote:

On 02/03/2011 07:48 AM, Darren Dale wrote:

On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez >> <movrev@...149...> wrote:

Before continuing the debug process, though, I wanted to check with
someone knowledgeable of this branch regarding its current status. Is
it possible to compile matplotlib on python3?

Mike D. did some initial work for py3 support a while back. I don't
know what platform he was working on, but he was able to produce a
simple plot, maybe running the simple_plot demo.

I was working on Linux (RHEL5), and never got past that platform.

Mike

--
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Fernando Garcia Bermudez, on 2011-02-03 09:14, wrote:

···

On Thu, Feb 3, 2011 at 06:05, Michael Droettboom <mdroe@...31...> wrote:
> On 02/03/2011 07:48 AM, Darren Dale wrote:
>> On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez > >> <movrev@...149...> wrote:
>>
>>> Before continuing the debug process, though, I wanted to check with
>>> someone knowledgeable of this branch regarding its current status. Is
>>> it possible to compile matplotlib on python3?
>>>
>> Mike D. did some initial work for py3 support a while back. I don't
>> know what platform he was working on, but he was able to produce a
>> simple plot, maybe running the simple_plot demo.
>>
> I was working on Linux (RHEL5), and never got past that platform.

I'll stay on the lookout for the github py3k branch and will do as
suggested. Thanks for the update.

By the way, there was a recent poll on python.org for packages
where users desire Python 3 support.

Here are the top 10:

Votes | Package
------+--------
837 | Django
454 | wxPython
406 | scipy
364 | matplotlib
327 | PIL
266 | py2exe
185 | Twisted
179 | PyGTK
135 | Pygame
  94 | web2py

http://python.org/3kpoll

best,
--
Paul Ivanov
314 address only used for lists, off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7

Which just goes to show that some people don’t understand dependencies… (PIL and PyGTK are needed by matplotllib to be fully py3k compatible). Hopefully this will light a fire for them as well.

Ben Root

···

On Fri, Feb 25, 2011 at 5:11 PM, Paul Ivanov <pivanov314@…149…> wrote:

Fernando Garcia Bermudez, on 2011-02-03 09:14, wrote:

On Thu, Feb 3, 2011 at 06:05, Michael Droettboom <mdroe@…31…> wrote:

On 02/03/2011 07:48 AM, Darren Dale wrote:

On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez > > > >> <movrev@…149…> wrote:

Before continuing the debug process, though, I wanted to check with

someone knowledgeable of this branch regarding its current status. Is

it possible to compile matplotlib on python3?

Mike D. did some initial work for py3 support a while back. I don’t

know what platform he was working on, but he was able to produce a

simple plot, maybe running the simple_plot demo.

I was working on Linux (RHEL5), and never got past that platform.

I’ll stay on the lookout for the github py3k branch and will do as

suggested. Thanks for the update.

By the way, there was a recent poll on python.org for packages

where users desire Python 3 support.

Here are the top 10:

Votes | Package

------±-------

837 | Django

454 | wxPython

406 | scipy

364 | matplotlib

327 | PIL

266 | py2exe

185 | Twisted

179 | PyGTK

135 | Pygame

94 | web2py

http://python.org/3kpoll

best,

Paul Ivanov

314 address only used for lists, off-list direct email at:

http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7

Benjamin Root, on 2011-02-25 18:03, wrote:

> By the way, there was a recent poll on python.org for packages
> where users desire Python 3 support.
>
> Here are the top 10:
>
> Votes | Package
> ------+--------
> 837 | Django
> 454 | wxPython
> 406 | scipy
> 364 | matplotlib
> 327 | PIL
> 266 | py2exe
> 185 | Twisted
> 179 | PyGTK
> 135 | Pygame
> 94 | web2py
>
> http://python.org/3kpoll

Which just goes to show that some people don't understand dependencies...
(PIL and PyGTK are needed by matplotllib to be fully py3k compatible).
Hopefully this will light a fire for them as well.

Well, this was a user poll - users shouldn't have to know or
express all of the dependencies for a given package that they use
- that's for us package developers to figure out.

To quote from the poll conclusions:

  What does this poll mean?
  
  Off-hand, nothing: nominating a package will not mean that its
  authors now start porting it to Python 3.
  
  However, we still hope that this still has some effect on the
  Python community:
  
    * Volunteers trying to help now see where help is most wanted
    * Package authors now see that there really is (or is not)
      demand for getting their package ported.

It's that last point that I was trying to highlight for us, as
matplotlib was the fourth most nominated package for py3k
support.

best,

···

On Fri, Feb 25, 2011 at 5:11 PM, Paul Ivanov <pivanov314@...149...> wrote:

--
Paul Ivanov
314 address only used for lists, off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7

Are PIL and PyGTK holding back matplotlib for Python 3?

I have a private port of PIL 1.1.7 for Python 3 that is passing all tests on Windows <http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil> and works well with a couple of other third party libraries (e.g. scipy, biopython). Official Python 3 support is planned for PIL 1.2 <http://mail.python.org/pipermail/image-sig/2011-January/006650.html>.

As for PyGTK, there will likely never be an official version for Python 3: "PyGtk 2.24 will be the last release in the PyGtk series. ... New users wising to develop Python applications using GTK are recommended to use the GObject-Introspection features available in PyGObject." <http://mail.gnome.org/archives/gnome-announce-list/2011-February/msg00046.html>.

It seems that wxPython, in its current form, will also not be available for Python 3. Python 3 support is planned for the "Next Generation" <http://wiki.wxpython.org/TentativeRoadmap>. There is a private port of wxPython 2.9.x for Python 3 <http://groups.google.com/group/wxPython-dev/browse_thread/thread/49701177b0a72c6f>. I have never gotten it to run reliable.

Are there plans for matplotlib to drop Python 2.4 and 2.5? This would make porting to Python 3 much easier.

Christoph

···

On 2/25/2011 4:03 PM, Benjamin Root wrote:

On Fri, Feb 25, 2011 at 5:11 PM, Paul Ivanov <pivanov314@…149… > <mailto:pivanov314@…149…>> wrote:

    Fernando Garcia Bermudez, on 2011-02-03 09:14, wrote:
    > On Thu, Feb 3, 2011 at 06:05, Michael Droettboom <mdroe@…31… > <mailto:mdroe@…31…>> wrote:
    > > On 02/03/2011 07:48 AM, Darren Dale wrote:
    > >> On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez > > >> <movrev@…149… <mailto:movrev@…149…>> wrote:
    > >>
    > >>> Before continuing the debug process, though, I wanted to check
    with
    > >>> someone knowledgeable of this branch regarding its current
    status. Is
    > >>> it possible to compile matplotlib on python3?
    > >>>
    > >> Mike D. did some initial work for py3 support a while back. I don't
    > >> know what platform he was working on, but he was able to produce a
    > >> simple plot, maybe running the simple_plot demo.
    > >>
    > > I was working on Linux (RHEL5), and never got past that platform.
    >
    > I'll stay on the lookout for the github py3k branch and will do as
    > suggested. Thanks for the update.
    >

    By the way, there was a recent poll on python.org
    <http://python.org> for packages
    where users desire Python 3 support.

    Here are the top 10:

    Votes | Package
    ------+--------
      837 | Django
      454 | wxPython
      406 | scipy
      364 | matplotlib
      327 | PIL
      266 | py2exe
      185 | Twisted
      179 | PyGTK
      135 | Pygame
      94 | web2py

    http://python.org/3kpoll

    best,
    --
    Paul Ivanov
    314 address only used for lists, off-list direct email at:
    http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7

Which just goes to show that some people don't understand
dependencies... (PIL and PyGTK are needed by matplotllib to be fully
py3k compatible). Hopefully this will light a fire for them as well.

Ben Root

Not at all. Both are optional dependencies. Mpl's hard external dependencies are python, zlib, libpng, freetype and numpy. With those you get the agg, pdf, ps and svg backends. Various GUI tooolkits are optional, as is PIL, which provides some image reading capabilities and image comparisons for the unit tests.

···

On Feb 25, 2011, at 7:00 PM, Christoph Gohlke <cgohlke@...244...> wrote:

Are PIL and PyGTK holding back matplotlib for Python 3

Those interested in py3 support should see
github.com/matplotlib/matplotlib-py3 and
https://github.com/matplotlib/matplotlib-py3/wiki . Mike D. has
already made a good start.

···

On Fri, Feb 25, 2011 at 9:01 PM, John Hunter <jdh2358@...149...> wrote:

On Feb 25, 2011, at 7:00 PM, Christoph Gohlke <cgohlke@...244...> wrote:

Are PIL and PyGTK holding back matplotlib for Python 3

Not at all. Both are optional dependencies. Mpl's hard external dependencies are python, zlib, libpng, freetype and numpy. With those you get the agg, pdf, ps and svg backends. Various GUI tooolkits are optional, as is PIL, which provides some image reading capabilities and image comparisons for the unit tests.

While the GUI toolkits are optional, practically speaking, they are a requirement for many (if not most) users.

The damn-ing part about the backends is that many users use only one of the GUI backends, and if that one is broken for them, they believe that matplotlib is completely broken. (Evidence: the user who complained that matplotlib was not designed correctly when it turned out that the macosx backend didn’t support (non-?)interactive mode).

PyGTK not being updated for py3k is a heart-breaker for me. I don’t want to even imagine what sort of pain in the butt it is going to be to program using PyGObject introspection (yeah, that sounds like fun…).

Ben Root

···

On Fri, Feb 25, 2011 at 8:01 PM, John Hunter <jdh2358@…552…149…> wrote:

On Feb 25, 2011, at 7:00 PM, Christoph Gohlke <cgohlke@…244…> wrote:

Are PIL and PyGTK holding back matplotlib for Python 3

Not at all. Both are optional dependencies. Mpl’s hard external dependencies are python, zlib, libpng, freetype and numpy. With those you get the agg, pdf, ps and svg backends. Various GUI tooolkits are optional, as is PIL, which provides some image reading capabilities and image comparisons for the unit tests.

Looks good. I checked out the code from git and gave it a try on win-amd64-py3.1. After upgrading CXX to the latest version from svn and making some minor modifications to the mpl code (attached), I was able to run many examples and also my own scripts without problem (using the TkAgg backend). There are more things to fix but it seems that matplotlib could soon be usable on Python 3.1. CXX does not yet support PyCapsule, which is required for Python 3.2.

How up to date is matplotlib-py3 with respect to the master branch?

Christoph

win-amd64-py31.diff (82.6 KB)

···

On 2/25/2011 6:31 PM, Darren Dale wrote:

On Fri, Feb 25, 2011 at 9:01 PM, John Hunter<jdh2358@...149...> wrote:

On Feb 25, 2011, at 7:00 PM, Christoph Gohlke<cgohlke@...244...> wrote:

Are PIL and PyGTK holding back matplotlib for Python 3

Not at all. Both are optional dependencies. Mpl's hard external dependencies are python, zlib, libpng, freetype and numpy. With those you get the agg, pdf, ps and svg backends. Various GUI tooolkits are optional, as is PIL, which provides some image reading capabilities and image comparisons for the unit tests.

Those interested in py3 support should see
github.com/matplotlib/matplotlib-py3 and
https://github.com/matplotlib/matplotlib-py3/wiki . Mike D. has
already made a good start.

It is currently 5 commits behind matplotlib/master.

···

On Fri, Feb 25, 2011 at 10:36 PM, Christoph Gohlke <cgohlke@...244...> wrote:

How up to date is matplotlib-py3 with respect to the master branch?

     > Are PIL and PyGTK holding back matplotlib for Python 3

    Not at all. Both are optional dependencies. Mpl's hard external
    dependencies are python, zlib, libpng, freetype and numpy. With
    those you get the agg, pdf, ps and svg backends. Various GUI
    tooolkits are optional, as is PIL, which provides some image reading
    capabilities and image comparisons for the unit tests.

While the GUI toolkits are optional, practically speaking, they are a
requirement for many (if not most) users.

The damn-ing part about the backends is that many users use only one of
the GUI backends, and if that one is broken for them, they believe that
matplotlib is completely broken. (Evidence: the user who complained
that matplotlib was not designed correctly when it turned out that the
macosx backend didn't support (non-?)interactive mode).

PyGTK not being updated for py3k is a heart-breaker for me. I don't
want to even imagine what sort of pain in the butt it is going to be to
program using PyGObject introspection (yeah, that sounds like fun...).

It's not clear to me how bad it will be to handle this in the mpl backend. This page (http://live.gnome.org/PyGObject/IntrospectionPorting) suggests it might be quite easy, and might not require extensive code change. I think the idea is not so much that the bindings offer a different API but that their implementation is different, they are imported differently, and the constants are different. Unfortunately, the python-gobject package on Ubuntu 10.10 seems to be broken; the example that comes with it won't run.

In any case it appears that with the exception of Tkinter, it may take a long time before interactive mpl backends can be used with py3k.

Eric

···

On 02/25/2011 04:54 PM, Benjamin Root wrote:

On Fri, Feb 25, 2011 at 8:01 PM, John Hunter <jdh2358@…149… > <mailto:jdh2358@…149…>> wrote:
    On Feb 25, 2011, at 7:00 PM, Christoph Gohlke <cgohlke@…244… > <mailto:cgohlke@…244…>> wrote:

Ben Root

      > Are PIL and PyGTK holding back matplotlib for Python 3

     Not at all. Both are optional dependencies. Mpl's hard external
     dependencies are python, zlib, libpng, freetype and numpy. With
     those you get the agg, pdf, ps and svg backends. Various GUI
     tooolkits are optional, as is PIL, which provides some image reading
     capabilities and image comparisons for the unit tests.

While the GUI toolkits are optional, practically speaking, they are a
requirement for many (if not most) users.

The damn-ing part about the backends is that many users use only one of
the GUI backends, and if that one is broken for them, they believe that
matplotlib is completely broken. (Evidence: the user who complained
that matplotlib was not designed correctly when it turned out that the
macosx backend didn't support (non-?)interactive mode).

PyGTK not being updated for py3k is a heart-breaker for me. I don't
want to even imagine what sort of pain in the butt it is going to be to
program using PyGObject introspection (yeah, that sounds like fun...).

It's not clear to me how bad it will be to handle this in the mpl
backend. This page
(http://live.gnome.org/PyGObject/IntrospectionPorting) suggests it might
be quite easy, and might not require extensive code change. I think the
idea is not so much that the bindings offer a different API but that
their implementation is different, they are imported differently, and
the constants are different. Unfortunately, the python-gobject package
on Ubuntu 10.10 seems to be broken; the example that comes with it won't
run.

That's right -- the changes should be minimal. The GObject introspection version is not meant to require the user to perform manual object introspection. The difference is that rather than generating bindings at compile-time (like the old pygtk), the method lookup and resolution happens at run-time (much like Python objects already work). The advantage is there is less of a compilation dependency between the version of pygtk and gtk+, and it should be much easier to get Python access to any library based on GObject.

In any case it appears that with the exception of Tkinter, it may take a
long time before interactive mpl backends can be used with py3k.

The Qt4Agg backend is also working (with the exception of the Qt form layout stuff) under Python 3.x.

But gtk and cairo will have to wait until the bindings settle down, fltk and Qt 3.x can probably be safely deprecated, and wxPython seems to be in Python 3.x limbo.

Mike

···

On 02/26/2011 02:37 AM, Eric Firing wrote:

On 02/25/2011 04:54 PM, Benjamin Root wrote:

On Fri, Feb 25, 2011 at 8:01 PM, John Hunter<jdh2358@…149… >> <mailto:jdh2358@…149…>> wrote:
     On Feb 25, 2011, at 7:00 PM, Christoph Gohlke<cgohlke@…244… >> <mailto:cgohlke@…244…>> wrote:

Eric

Ben Root

------------------------------------------------------------------------------
Free Software Download: Index, Search& Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

     Fernando Garcia Bermudez, on 2011-02-03 09:14, wrote:
     > >>
     > >>> Before continuing the debug process, though, I wanted to check
     with
     > >>> someone knowledgeable of this branch regarding its current
     status. Is
     > >>> it possible to compile matplotlib on python3?
     > >>>
     > >> Mike D. did some initial work for py3 support a while back. I don't
     > >> know what platform he was working on, but he was able to produce a
     > >> simple plot, maybe running the simple_plot demo.
     > >>
     > > I was working on Linux (RHEL5), and never got past that platform.
     >
     > I'll stay on the lookout for the github py3k branch and will do as
     > suggested. Thanks for the update.
     >

     By the way, there was a recent poll on python.org
     <http://python.org> for packages
     where users desire Python 3 support.

     Here are the top 10:

     Votes | Package
     ------+--------
       837 | Django
       454 | wxPython
       406 | scipy
       364 | matplotlib
       327 | PIL
       266 | py2exe
       185 | Twisted
       179 | PyGTK
       135 | Pygame
       94 | web2py

     http://python.org/3kpoll

     best,
     --
     Paul Ivanov
     314 address only used for lists, off-list direct email at:
     http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7

Which just goes to show that some people don't understand
dependencies... (PIL and PyGTK are needed by matplotllib to be fully
py3k compatible). Hopefully this will light a fire for them as well.

Ben Root

Are PIL and PyGTK holding back matplotlib for Python 3?

PIL is used for the regression test framework, but it should be possible to remove that dependency there by using our own png loading code.

PyGTK is optional, of course, and users can use another GUI backend until the pygtk bindings catch up.

Are there plans for matplotlib to drop Python 2.4 and 2.5? This would
make porting to Python 3 much easier.

Yes. The minimum version for this Python 3.x compatibility work is Python 2.6. Anything earlier is just insane :wink:

Mike

···

On 02/25/2011 08:00 PM, Christoph Gohlke wrote:

On 2/25/2011 4:03 PM, Benjamin Root wrote:

On Fri, Feb 25, 2011 at 5:11 PM, Paul Ivanov<pivanov314@…149… >> <mailto:pivanov314@…149…>> wrote:
     > On Thu, Feb 3, 2011 at 06:05, Michael Droettboom<mdroe@…31… >> <mailto:mdroe@…31…>> wrote:
     > > On 02/03/2011 07:48 AM, Darren Dale wrote:
     > >> On Thu, Feb 3, 2011 at 12:12 AM, Fernando Garcia Bermudez >> > >> <movrev@…149…<mailto:movrev@…149…>> wrote:

Christoph

------------------------------------------------------------------------------
Free Software Download: Index, Search& Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

In any case it appears that with the exception of Tkinter, it may take a
long time before interactive mpl backends can be used with py3k.

The MacOSX backend has already been ported to Py3k (at least the C part of it, which is the largest and most difficult part of it), though I won't be able to test it until the rest of matplotlib has been ported.

The damn-ing part about the backends is that many users use only one of
the GUI backends, and if that one is broken for them, they believe that
matplotlib is completely broken. (Evidence: the user who complained
that matplotlib was not designed correctly when it turned out that the
macosx backend didn't support (non-?)interactive mode).

Sometimes I wonder if it is better to retire the MacOSX backend. When it was first introduced, it was much faster (depending on what you wanted to draw) because of how its event loop is organized. By now the other backends use the same event loop strategy, and as far as I know there is no significant difference in speed compared to e.g. the TkAgg backend. The remaining advantage of the MacOSX backend is that it does not rely on other toolkits, and therefore it is easier to compile and use if something changes (e.g., when a new version of OS X comes out, or when compiling for 64-bits, or when Py3K comes out). Still, it needs some maintenance work, and it is hard to keep up.
Opinions, anybody?

--Michiel.

In any case it appears that with the exception of Tkinter, it may take a
long time before interactive mpl backends can be used with py3k.

The MacOSX backend has already been ported to Py3k (at least the C part of it, which is the largest and most difficult part of it), though I won't be able to test it until the rest of matplotlib has been ported.

The damn-ing part about the backends is that many users use only one of
the GUI backends, and if that one is broken for them, they believe that
matplotlib is completely broken. (Evidence: the user who complained
that matplotlib was not designed correctly when it turned out that the
macosx backend didn't support (non-?)interactive mode).

Sometimes I wonder if it is better to retire the MacOSX backend. When it was first introduced, it was much faster (depending on what you wanted to draw) because of how its event loop is organized. By now the other backends use the same event loop strategy, and as far as I know there is no significant difference in speed compared to e.g. the TkAgg backend. The remaining advantage of the MacOSX backend is that it does not rely on other toolkits, and therefore it is easier to compile and use if something changes (e.g., when a new version of OS X comes out, or when compiling for 64-bits, or when Py3K comes out).

Michiel

I use the macos x backend almost exclusively, for this reason. It just works!

It also supports more output formats than TkAgg.

-Jeff

···

On 2/26/11 5:30 AM, Michiel de Hoon wrote:

  Still, it needs some maintenance work, and it is hard to keep up.
Opinions, anybody?

--Michiel.

------------------------------------------------------------------------------
Free Software Download: Index, Search& Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

In any case it appears that with the exception of Tkinter, it may take a
long time before interactive mpl backends can be used with py3k.

The MacOSX backend has already been ported to Py3k (at least the C part of it, which is the largest and most difficult part of it), though I won't be able to test it until the rest of matplotlib has been ported.

The damn-ing part about the backends is that many users use only one of
the GUI backends, and if that one is broken for them, they believe that
matplotlib is completely broken. (Evidence: the user who complained
that matplotlib was not designed correctly when it turned out that the
macosx backend didn't support (non-?)interactive mode).

Sometimes I wonder if it is better to retire the MacOSX backend. When it was first introduced, it was much faster (depending on what you wanted to draw) because of how its event loop is organized. By now the other backends use the same event loop strategy, and as far as I know there is no significant difference in speed compared to e.g. the TkAgg backend. The remaining advantage of the MacOSX backend is that it does not rely on other toolkits, and therefore it is easier to compile and use if something changes (e.g., when a new version of OS X comes out, or when compiling for 64-bits, or when Py3K comes out). Still, it needs some maintenance work, and it is hard to keep up.
Opinions, anybody?

Michiel,

I don't have a mac, so I can't say yes or no based on my own usage. Your efforts in writing and maintaining that backend are appreciated, though.

What about the non-interactive mode behavior--is it hard to make the MaxOSX backend behave like the others in that respect? From the general developer standpoint, I don't like divergence in behavior among the backends. (I don't even like the way QT4agg seems to be diverging.)

Eric

···

On 02/26/2011 02:30 AM, Michiel de Hoon wrote:

--Michiel.