Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto generate methods that have been deprecated for Qt5 stuff #68

Closed
goanpeca opened this issue Aug 25, 2016 · 10 comments
Closed

Auto generate methods that have been deprecated for Qt5 stuff #68

goanpeca opened this issue Aug 25, 2016 · 10 comments

Comments

@goanpeca
Copy link
Member

We need to generate all the things that change between qt4 and qt5 and try to trun them into issues so we can start working on this issues little by little.

@mottosso
Copy link

We're on the same road! :)

Working on this now, let's solve this!

@goanpeca
Copy link
Member Author

Hi @mottosso, what do you propose?

@goanpeca
Copy link
Member Author

goanpeca commented Aug 26, 2016

Our needs are based on patches like this

https://github.com/spyder-ide/qtpy/blob/master/qtpy/_patch/qheaderview.py

That will include missing methods (on older libraries Qt4...) and include newer methods (renames) and if possible to offer the new functionality (this will not always be possible).

I generally use the Qt docs for everything, I really never bothered looking at pyside or pyqt, so all the info I got regarding methods and classes I scrapped from the Qt docs website (for the different versions of Qt5 and the latest of Qt4) and then made the set arithmetic locally.

@mottosso
Copy link

Our needs are based on patches like this

Woah, I can't tell what's going on in that file. :O

Hi @mottosso, what do you propose?

I was going to give this a try.

  1. During a Travis build, automatically generate a dictionary of members and argument signatures of everything in the PySide2 namespace
  2. Compare this with an identical listing for each other binding
  3. Things that exist in PySide2, but not in the others, are officially missing from other bindings; and that's a bug.

Using the Qt documentation site is another option. Scraping it. At the moment, there's tension about whether to commit to PySide2 completely, or the official Qt docs. The problem with PySide2 being that it is as of yet incomplete.

What do you think?

@goanpeca
Copy link
Member Author

Your method is ok but was incomplete for our requirements.

That's exactly how I started (some weeks ago) but then realized I needed to know what was the actual truth, and that can only be provided by the Qt docs.

We can not say who is right if PySide2 or PyQt5, but we are pretty sure Qt docs are right and we aim for that first and then we will handle whatever strange things PyQt5 or PySide2 needed to implement (a simple example is Signals and Slots, that differs in PyQt and PySide, but we Actually use the PySide convention).

The previous example needs to be documented cause it is indeed a quirk of this library cause it is the most obvious example where we do not follow PyQt5 http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html

@mottosso
Copy link

That's exactly how I started (some weeks ago) but then realized I needed to know what was the actual truth, and that can only be provided by the Qt docs.

Perfect! This will save us lots of time.

Do you remember which commit/PR this was? I'd love to take a look at the approach.

How do you feel about fetching members and argument signatures directly from the Qt git repository?

@ccordoba12
Copy link
Member

How do you feel about fetching members and argument signatures directly from the Qt git repository?

I think that should be the way to go :-)

@goanpeca
Copy link
Member Author

Sure, that works, I just happen to like scrapping stuff :-p and not parsing c++ code

@mottosso
Copy link

About your previous attempt at this, I was looking through your past PR's but came up empty. Do you remember where this went? It would be very helpful!

@mottosso
Copy link

Ok, we've got a first pass on this!

This does as I mentioned above; comparing members of other bindings to PySide2. It's possible the same achieved by PySide2 switched out for PyQt5, which may be closer to what you guys need.

@goanpeca goanpeca closed this as completed May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants