To be even more exact, the copies contain acceptable license terms/copyrights since v6.1.2a5 (available on PyPI until now) but v6.1.2a7 contains the very last license terms/copyrights (and is now available on PyPI).
However, more important than the license terms, please do remember that it’s an alpha release, so it’s still experimental and unfinished. So it’s too early to begin a big migration from PyQwt to python-qwt, *but* now is the time to begin testing it with your own code so that python-qwt may be ready even sooner in a beta state for more extensive tests.
De : Pierre Raybaut
Envoyé le :samedi 29 août 2015 23:13
À : guidata...@googlegroups.com
Objet :RE: [guidata/guiqwt] Re: pure python qwt
Uwe, I'm sure they will *not* be interested in more details 😊. And I'm sure that we will come to an agreement very soon: we are doing things so much more challenging every day.
And by the way, python-qwt v6.1.2a6, available on PyPI is at the same state as GitHub. So it doesn't have to be removed...! This is already the "official update" (it it does mean something: this is still an alpha release).
All old copies with the license issue/missing copyrights are not available for a while now.
De : Uwe Rathmann
Envoyé : 29/08/2015 17:57
À : guidata...@googlegroups.com
Objet : [guidata/guiqwt] Re: pure python qwt
On Mon, 24 Aug 2015 11:44:40 +0200, Carlos Pascual wrote:
> - do you consider qwt ready for use by 3rd parties?
Definitely not: all packages released so far are ignoring copyrights and
license implications !
If you are interested in more details see:
[1] https://github.com/PierreRaybaut/python-qwt/issues/11
[2] https://github.com/PierreRaybaut/python-qwt/issues/13
[3] https://github.com/PierreRaybaut/python-qwt/issues/14
[4] https://github.com/PierreRaybaut/python-qwt/issues/15
I'm happy to say that we made substantially progress, but I need more
time before I'm giving a final o.k. to it.
So please remove all copies ( including python-qwt 6.1.2a6 from https://
pypi.python.org/pypi/python-qwt ! ) and take care of not propagating it
even further. Instead use the current state from https://github.com/
PierreRaybaut/python-qwt or wait for an official update from Pierre.
According to the license:
The project - status today - is a mixture of MIT licensed and Qwt
licensed files - examples are under the PyQwt license. You have to find
out yourself, what this means for using it in your application.
Uwe
--
You received this message because you are subscribed to the Google Groups "guidata/guiqwt" group.
To unsubscribe from this group and stop receiving emails from it, send an email to guidata_guiqw...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "guidata/guiqwt" group.
To unsubscribe from this group and stop receiving emails from it, send an email to guidata_guiqw...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Carlos, Uwe and others,
Personally, I wouldn’t jump to conclusions at this stage of the “python-qwt” project.
So here is my unbiased view on the situation: I’m not attached to either “Qwt” or “python-qwt”; my only interest is to find the best solution for the future of our data processing software development.
Let’s start from the beginning. A lot of applications (here and there) are based on “guiqwt” which relies on PyQwt. PyQwt was the best choice in 2008 (when the “guidata” and “guiqwt” projects started) for plotting data efficiently. Since 2010, we know that there is a “PyQwt obsolescence” issue that we must solve in order to maintain our data processing software collection. In 2011, I started looking for an alternative to PyQwt. But then I was forced to step back from intensive software development at my work (I still am), so nothing happened except when I found some time to spare on this during my vacations (I started “python-qwt” at home during Christmas 2013).
I came rapidly to the conclusion that there were two solutions:
1. Write a pure Python version of Qwt – that’s “python-qwt” – which implements only the interesting part of the API (basically only the canvas and axes) ; “guiqwt” can already take care of image visualization very efficiently thanks to its C++ scaler engine.
2. Rely on an OpenGL-based solution (the best candidate seems to be “vispy”) and rewrite the intermediate layer of “guiqwt” which is currently interfaced with a Qwt-like API.
So, currently, with “python-qwt”, I’m exploring solution 1. which is clearly less performant than “PyQwt”. As Uwe pointed out, performance is a relative matter: the idea is to find out if the performance loss is acceptable for our applications. When executing “guiqwt” examples on a Core i5-2520M @ 2.50GHz, performance loss can be imperceptible (depending on the compiler used to build extensions ; there are still things to clear out of course). However, we still have to optimize “python-qwt” and evaluate it with our applications to really know if we are going to adopt this project for our future developments. I hope that we will be able to know if this is the solution before the end of the year.
If solution 1. does not fit our needs, we will switch to solution 2.
The plan is to be able to transform “guiqwt-2.3” into “guiqwt-2.4” (python-qwt) or to “guiplot” (vispy) before the end of 2016.
Independently from guidata/guiqwt, I think the “python-qwt” project may be of interest (even if we finally decide to switch to vispy for “guiqwt”). That’s why I wanted to make it public, so that people could benefit from this work and eventually use it to replace PyQwt in their own project if it fits their need.
Some answers @Uwe:
“This project is a port of some subset of the Qwt C++ project ( 56000 vs 12000 lines of code ! )”
Comparing the line of codes of a Python project with a C++ project has its limits (Python is leading to more compact code). A part from that, “python-qwt” does not implement the whole Qwt API, indeed. That’s because we don’t need it: “guiqwt” is providing the rest.
“Almost all projects ( even the lamest duck ) claims to be "high performant" and I wouldn't trust on any statement like this.”
Performance is a relative matter, I agree. We never stated that “guiqwt” was highly performant in absolute terms. We only wrote that it was more performant than “matplotlib”, which is undoubtedly true.
“a) Line plots” – “python-qwt can't compete with a pyqt running the X11 paint engine - because of being Qt5”
FYI, “python-qwt” is compatible with both Qt4 and Qt5. So, users can choose to use Qt4 if it's really necessary.
“b) Raster data”
“python-qwt does not support displaying of raster data at all at the moment”
As I wrote above, “python-qwt” does need to do support this feature because “guiqwt” is already supporting it and it proved to be a major asset (image visualization is very powerful within “guiqwt” thanks to the included C++ scaler engine – for example, an application of ours is showing and processing in real-time 20,000 x 20,000 pixel images: scaling, changing contrast, and applying any affine transform to the image in real-time – that is: we move a cursor to adjust a parameter and the image is refreshing real-time).
“c) Polygon clipping”
“From the announcement it looks like python-qwt dropped the polygon clipping […]In situations, where the scale ranges are small compared to the bounding rectangle of the curve a python-qwt application will probably show a quite lousy performance in other situations you won't see any difference.”
You’re perfectly right: this fits the warning you may read in “python-qwt” README. I think that polygon clipping is not necessary for our (internal) applications using “guiqwt”, so it doesn’t bother me but other users should indeed be aware of this limitation, in a very particular case. Maybe it could be implemented in the future, but right now I don’t see how to do it without a significant loss of performance.
Regarding the project future, Uwe is right to state that we have two options:
“a) No own development and waiting for the next C++ version
b) Branching with the problem of becoming outdated”
For now, I think that waiting for the next C++ version is not a good idea. Porting code from C++ to Python was not so easy and there is still a lot of work to do to optimize things. The next step could be to optimize code deeper than I did: you have to be smarter in Python than in C++ because milliseconds are easily lost if the algorithm is not efficient enough or if the data structure is too complicated and convulated. So the code base could evolve separately from its C++ counterpart.
Anyway, the Qwt API that we work with is so basic that I don’t imagine that the future evolutions would be hard to follow even if the code base has evolved since then.
So ==> option b).