gnuradio / gnuradio

GNU Radio – the Free and Open Software Radio Ecosystem
https://gnuradio.org
GNU General Public License v3.0
5.12k stars 1.91k forks source link

Replace PyQwt with PyQtGraph #1634

Open noc0lour opened 6 years ago

noc0lour commented 6 years ago

PyQwt is effectively unmaintained since 2014 and thus has no support for Qt5/Qwt6 and Python3. Fortunately there is PyQtGraph which could be used to replace all occurences of PyQwt.

Occurences:

Replacing PyQwt won't change dependencies since PyQtGraph has only a dependency on PyQt5/PyQt4+PySide.

ekigwana commented 6 years ago

Any progress on this? I am currently using the next branch and It'd be nice to be able to use the filter design tool.

noc0lour commented 6 years ago

I barely looked into it, any help is appreciated.

ekigwana commented 6 years ago

I have started to look at this and having only PyQt5 I have noticed that a few other changes will be required. From PyQt5 gotchas I noticed QStrings are gone and PyQt5 is not compatible with PyQt5. I forked the next branch and I believe it is targeting PyQT5 and Python v2, is that correct? Is PyQt4 support also required?

noc0lour commented 6 years ago

If possible I'd recommend to have development in py2/py3 compat mode. With GNU Radio 3.8 the goal is to support py3 as well.

ekigwana commented 6 years ago

To keep things reasonable since QT4 is EOL and I don't even have a system with it, I am targeting the following:

  1. Python v2/v3
  2. PyQt5
  3. pyqtgraphics

I am also using the PEP8 checker as I go along to help catch problems.

ekigwana commented 6 years ago

I have been working on the filter design tool and have a question below.

New "Filter Taps" plot in progress unless it is not required filter taps_new Old "Filter Taps" plot filter taps_old New "Impulse Response" plot impulse_response_new Old "Impulse Response" plot impulse_response_old New "Step Response" plot step_response_new Old "Step Response" plot step_response_old

What is the purpose of the "Filter Taps" plot? It is exactly the same as the "Impulse Response" but with a different x axis label and different tab label. It looks pretty useless to me as an Electrical engineer and think it should go. I am going some space between the view border and the axis labels so not done yet.

marcusmueller commented 6 years ago

@ekigwana somehow this slipped my attention. Is your code somewhere that I can look at it and merge it?

noc0lour commented 6 years ago

I tried the pyqtgraph branch on the @ekigwana remote, I actually rebased that on the new master. Maybe that helps with jump-starting this development again?

noc0lour commented 6 years ago

@marcusmueller You could try https://github.com/noc0lour/gnuradio/tree/pyqtgraph which is a rebased version of @ekigwana's work

noc0lour commented 6 years ago

The filter design tool looks pretty slick and the current state is something to start of (to implement missing features)

ekigwana commented 6 years ago

Sorry I got too busy. From what I could tell it should be "fairly" easy.

btashton commented 6 years ago

@noc0lour @ekigwana Anything I can do to help here?

noc0lour commented 6 years ago

@btashton Sure, if you wish you can pick my branch and open a separate PR for tracking/discussing your progress on that matter. Other than @marcusmueller rejecting pyqtgraph as dependency I'd say go for it.

btashton commented 6 years ago

@marcusmueller mentioned here #2145 that pyqtgraph might be up for discussion.

btashton commented 6 years ago

@marcusmueller @noc0lour before I look into picking this up too much, are we going to have a CLA issue? I don't want to spend too much time and then get blocked by needing a CLA from @ekigwana

noc0lour commented 6 years ago

Good question. My gut feeling tells me we might need one from @ekigwana . @bhilburn ?

ekigwana commented 6 years ago

I really just ran out of time to work on this but I'll give you whatever you need

ekigwana commented 6 years ago

Also when I looked at the filter design code, it looked like someone was transitioning to a modern interface so there is otherwise quite a bit of dead code sitting in there. I like the look of https://github.com/chipmuenk/pyFDA but it uses matplotlib although the concept still works a bit better for that. For this to work, the issues raised in #2145 would certainly need to be addressed in a project wide manner. My two cents FWIW.

bhilburn commented 6 years ago

Yes, we'll need a CLA from @ekigwana. Can you e-mail me? bhilburn@gnuradio.org

marcusmueller commented 5 years ago

hey, @ekigwana, we haven't heard from you yet! We'd need an email address to get in touch with you; this should be going rather quickly, all in all.

ekigwana commented 5 years ago

edwardwwgk@gmail.com

btashton commented 5 years ago

Sweet, I'll pick the rest of the filter stuff up once this is done. The plotting stuff I think is in a good place, just need to move the code over and add the file seek interface to the GUI.

bhilburn commented 5 years ago

@ekigwana - Just sent you an e-mail with instructions for getting the CLA in place!