#pyqt | Logs for 2018-09-11
Back
[02:43:19] -!- necrose99_ has joined #pyqt
[02:47:03] -!- necrose99 has quit [Ping timeout: 252 seconds]
[03:10:57] -!- necrose99_ has quit [Read error: Connection reset by peer]
[03:11:53] -!- necrose99_ has joined #pyqt
[03:15:46] -!- necrose99_ has quit [Excess Flood]
[03:24:44] -!- anqxyr has joined #pyqt
[04:00:07] -!- kallesbar has joined #pyqt
[04:38:21] -!- anqxyr has quit [Ping timeout: 252 seconds]
[05:32:05] -!- BPL has joined #pyqt
[06:15:37] -!- mintograde has joined #pyqt
[06:55:34] -!- mintograde has quit [Ping timeout: 240 seconds]
[08:01:05] -!- nitro25 has joined #pyqt
[08:17:07] -!- nitro25 has quit [Remote host closed the connection]
[08:22:41] -!- frispete has joined #pyqt
[08:25:47] -!- frispete_ has quit [Ping timeout: 240 seconds]
[09:16:54] -!- Siecje has joined #pyqt
[09:38:52] -!- nitro25 has joined #pyqt
[09:57:39] -!- argoneus has quit [Quit: No Ping reply in 180 seconds.]
[09:58:46] -!- argoneus has joined #pyqt
[10:13:43] -!- BazookaTooth has joined #pyqt
[10:14:28] -!- anqxyr has joined #pyqt
[10:16:10] <anqxyr> so, if I'm reading the docs right, for qtreewidget, there's only setHeaderLabels(labels), and setHeaderLabel(label)
[10:16:26] <anqxyr> the later of which is equal to setHeaderLabels([label])
[10:16:50] <anqxyr> I could really use something like setHeaderLabel(column_index, label)
[10:17:07] <anqxyr> but it doesn't seem like there's anything like that :|
[10:17:20] -!- argoneus has quit [Quit: No Ping reply in 180 seconds.]
[10:18:09] <anqxyr> ooooh, nevermind
[10:18:26] -!- argoneus has joined #pyqt
[10:18:29] <anqxyr> .headerItem().setText(column, text) is what I need
[10:19:05] -!- xp_prg has joined #pyqt
[10:19:05] <altendky> anqxyr: at some point you may want a QTreeView
[10:20:22] <anqxyr> maybe. widget seems to work fine enough here for now. I have a bunch of views for FileSystemModels already, but this one is a fairly simple 3-column list
[10:20:50] <xp_prg> can I cross compile pyqt for a windows target on linux?
[10:21:06] <anqxyr> xp_prg, pretty sure that no
[10:21:19] <altendky> xp_prg: i tried awhile back and decided to stop. why do you want this?
[10:21:19] <anqxyr> at least I've never managed to find a way
[10:21:29] <altendky> (unless i know you...)
[10:21:43] <xp_prg> heh you do :>
[10:21:52] <anqxyr> I was using a windows VM for a while, and it worked fine
[10:22:05] <altendky> CI still works well for me
[10:22:19] <altendky> and then you can actually run tests on your code on that os
[10:22:31] <xp_prg> CI?
[10:22:44] <altendky> xp_prg: continuous integration, build server. iow, appveyor
[10:23:02] <xp_prg> I heart your deep dives into free offerings
[10:23:30] <xp_prg> I learned crazy amounts about blockchain this weekend
[10:23:58] <xp_prg> altendky I have working examples now of qt canopen
[10:25:09] <xp_prg> I want to make a python bind to it
[10:25:25] <altendky> xp_prg: good deal. we're still more likely focusing on modbus
[10:25:45] <xp_prg> sounds good
[10:27:57] -!- Belxjander has quit [Ping timeout: 252 seconds]
[10:29:06] <altendky> xp_prg: you can still take the easy route to windows support and follow this reference https://github.com (tests, pyinstaller, etc) (though i need to fix the build...)
[10:31:36] <xp_prg> very cool
[10:31:55] <xp_prg> qt5 now comes with this javascript kind of ui thing, are you familiar with it?
[10:32:08] <altendky> xp_prg: qml/qt quick?
[10:32:25] <xp_prg> I guess
[10:32:38] <altendky> xp_prg: i have helped people a couple times with it but haven't built anything 'real'
[10:32:38] <xp_prg> I am biased toward straight qt designer
[10:32:47] <altendky> xp_prg: i just got pyqt5-tools working again
[10:32:54] <altendky> rc releases on pypi
[10:33:12] <xp_prg> not sure what that is etc...
[10:33:40] <altendky> xp_prg: https://github.com
[10:34:16] <altendky> xp_prg: easy access to designer and other qt tools without installing gigabytes of qt. also, it includes a built copy of the pyqt designer plugin so you can use custom widgets inside designer.
[10:34:19] <altendky> though, windows only at this point
[10:34:51] -!- crmaurei has quit [Remote host closed the connection]
[10:34:56] <xp_prg> wow, I am a mere mortal :>
[10:35:30] <altendky> xp_prg: based on the time i've spent on that (stupid too much) i would say i am as well
[10:35:40] -!- Belxjander has joined #pyqt
[10:37:56] <xp_prg> always a breath of fresh air to interact with you altendky, you give me hope there is sanity in this world
[10:38:31] <altendky> xp_prg: i bring what i can...
[10:39:59] <altendky> xp_prg: adding a couple things to allow yield/await'ing on signals as well (if you end up using twisted or asyncio) https://github.com
[10:40:41] <altendky> The-Compiler: ^^ haven't setup testing on the asyncio version yet. i need to look into pytest-asyncio supporting quamash. i'm guessing i'll have to add it like i did for qt5reactor/pytest-twisted
[10:51:32] <xp_prg> I forgot the answer you gave me before about how to route a signal to a very specific listener well
[10:52:29] -!- argoneus has quit [Quit: No Ping reply in 180 seconds.]
[10:53:37] -!- argoneus has joined #pyqt
[10:54:29] <xp_prg> oh another question I have is, can I program qt with absolutely no dynamic memory allocation?
[10:55:00] <altendky> xp_prg: the_source.signal.connect(the_callable)? pretty sure there was more though
[10:55:12] <altendky> xp_prg: c++ qt?
[10:55:15] <xp_prg> ya
[10:55:34] <altendky> xp_prg: i don't know offhand, but it's certainly used in safety application (i mean sure, there are different levels)
[10:55:50] <xp_prg> I don't understand your answer
[10:55:54] <xp_prg> safety applicatoin?
[10:56:30] <altendky> xp_prg: why do you want no dynamic allocation? usually that relates to safety critical applications
[10:56:41] <xp_prg> yes and yes
[10:57:05] <xp_prg> so it is possible?
[10:57:19] <altendky> xp_prg: https://youtu.be two systems, both qt. one is generic and the other is running some safety critical os etc
[10:57:31] <altendky> xp_prg: i don't know about zero dynamic memory allocation or not offhand
[10:57:39] <altendky> perhaps
[10:58:04] <altendky> xp_prg: but, maybe ask about the things that lead you to that question instead. and #qt would know more than i do
[10:58:23] <altendky> xp_prg: "i need to meet safety standard XYZ, can i do that with Qt?" or such
[11:00:29] <xp_prg> well, can I talk about it with you for a minute?
[11:00:40] <altendky> xp_prg: sure
[11:01:28] <xp_prg> so if I want a screen, I do not have to do ScreenClass *newClass = new ScreenClass(); I could just do ScreenClass newClass = ScreenClass(); right?
[11:01:59] <altendky> xp_prg: been awhile since i've coded C++ but sure.
[11:02:02] <altendky> seems ok
[11:02:12] <altendky> xp_prg: that'll put it on the stack
[11:02:21] <altendky> (within a function)
[11:02:26] -!- Belxjander has quit [Ping timeout: 244 seconds]
[11:02:28] <xp_prg> then if I store its reference in some global structure it will not destruct
[11:02:52] <altendky> xp_prg: uh... if you store it itself in a global struct. not sure a struct can have a reference
[11:03:07] <xp_prg> global variable is what I meant to say
[11:03:25] <altendky> xp_prg: sure, but aren't 'references' a function parameter thing?
[11:04:55] <xp_prg> not sure what your asking me, c++ references are commonplace
[11:05:01] <xp_prg> you pass by reference instead of value
[11:05:06] <xp_prg> to prevent a deep copy
[11:05:14] <altendky> xp_prg: as i said, a function parameter thing
[11:05:25] <altendky> xp_prg: unless you have some docs saying a struct/class element can be a reference?
[11:06:29] <altendky> it's roughly a pointer that can't refer a a non-existent object or NULL. and i think that's enforced by way of accepting only an actual object and only being usable in ways that wouldn't let the reference outlive the object
[11:06:34] -!- Belxjander has joined #pyqt
[11:06:38] <altendky> iow, function parameters
[11:08:25] <altendky> xp_prg: but, none of this means you can't just have an Everything class that you instantiate globally and which has a tree of everything you need.
[11:08:58] <altendky> xp_prg: i'm just not sure of the details when you call functions and they return qt lists and such. seems like that would be dynamic? i'm not really sure
[11:09:20] <xp_prg> ya, just thinking out loud a little bit
[11:09:38] -!- nsizemor has joined #pyqt
[11:09:58] <xp_prg> can I describe my register signal with listener problem?
[11:10:09] -!- argoneus has quit [Quit: No Ping reply in 180 seconds.]
[11:10:14] <xp_prg> I talked with you about it before, I just forgot the answer you gave me
[11:10:58] <altendky> xp_prg: if you want to 'dynamically create a signal' you have a class that inherits from qobject and has a signal and you create an instance of it.
[11:11:15] <altendky> xp_prg: but maybe some existing class you already have should just have the signal on it
[11:11:16] -!- argoneus has joined #pyqt
[11:13:20] <xp_prg> well, can I describe the problem again, just not understanding your answers :<
[11:13:31] <altendky> xp_prg: sure
[11:13:39] <nsizemor> I'm having issues with setupUi() causng segfaults. I've got a minimal test created and a simple .ui layout, and it's certainly that call. This code worked before, but there have been several environment changes. Is there something obvious I'm missing?
[11:15:05] <altendky> nsizemor: is a link coming?
[11:15:06] <xp_prg> well I want to connect a function to a signal but I need to somehow dynamically make the signal prior to doing this, and then I want another class to emit to that signal causing the function to fire
[11:15:24] <altendky> xp_prg: why doesn't that class just have a regular signal?
[11:16:06] <altendky> (i think i know the answer but let's walk through it)
[11:18:14] <nsizemor> altendky: Example at https://pastebin.com
[11:18:58] <altendky> nsizemor: that's really not how you do multiple inheritance, and you don't need multiple inheritance.
[11:19:40] <altendky> nsizemor: when you inherit use super() and only call it once (not once for each base class)
[11:20:06] <altendky> nsizemor: but maybe you'd like to drop the multiple inheritance and do this instead. https://github.com
[11:20:12] <nsizemor> I will admit confusion about doing multiple inheritance in Python. :-)
[11:20:28] <altendky> nsizemor: when you feel the need, either don't or ask for help in #python. :]
[11:21:39] <nsizemor> "Don't" would be my preference -- this was based originally on some example code for PyQt when I was learning, and if I could refactor out the multiple inheritance, so much the better. Thanks, atendky, I'll have a look at that exampe!
[11:21:41] <altendky> nsizemor: let me know how you feel about my example. i personally really like that i get to isolate all my gui objects under the .ui attribute with that. no more `doit` QPushButton colliding with `doit()` method and confusing me
[11:22:19] -!- argoneus has quit [Quit: No Ping reply in 180 seconds.]
[11:23:26] -!- argoneus has joined #pyqt
[11:25:59] <altendky> xp_prg: isn't the answer that that class is dynamically creating other objects into a list/dict/some-collection? at which point the question becomes, why don't they just have a regular signal?
[11:26:56] <xp_prg> oh its coming back to me
[11:27:00] <altendky> xp_prg: but if you really want a dynamic signal not associated with some existing class... `class SignalHolder(QObject): signal = PyQt5.QtCore.pyqtSignal(list, parameters, here)` and then you can `x = SignalHolder(); x.signal.connect(callable)`
[11:27:02] <xp_prg> you said just have a class have a signal in it
[11:27:08] <xp_prg> then dynamically create it
[11:27:22] <xp_prg> then connect to it
[11:27:30] <altendky> xp_prg: yeah, though it seems like there's probably an existing class that you could put a regular signal on instead
[11:27:51] <xp_prg> yup, I think that would work
[11:27:55] <altendky> and if there isn't a class, perhaps there ought to be one
[11:28:04] <xp_prg> ya, that seems simplest
[11:29:02] <altendky> xp_prg: these are for the od subindexes, yes?
[11:29:22] <xp_prg> something like that yes
[11:29:36] <altendky> xp_prg: it seems there ought to be a class and object to represent each one?
[11:29:53] <xp_prg> yes, that is one way to handle it
[11:29:58] <xp_prg> most straight forward I think
[11:30:08] <xp_prg> I am for simplicity
[11:30:10] <altendky> rather than a bunch of dicts indexed by (index, subindex) that would end up distributing the related data
[11:30:42] <xp_prg> well I was thinking of a dict with index, subindex as key and class instance as value
[11:30:50] <xp_prg> is that wrong?
[11:30:56] <altendky> xp_prg: that's reasonable probably
[11:31:22] <altendky> i meant that without a class for a subindex you'd end up with multiple dicts with the same keys to store the type, min, max, etc
[11:31:49] <altendky> xp_prg: though, perhaps an index should have a class as well? so you would the_indexes[index_number][subindex_number]
[11:31:55] <xp_prg> ya, I am not being that strict, my class might simply have two members: string and signal
[11:32:02] <xp_prg> string = index_subindex
[11:32:26] <altendky> xp_prg: don't store the subindex as a string. iirc it's a UNSIGNED8
[11:32:40] <altendky> xp_prg: but you can double check that in the canopen standard
[11:32:44] <xp_prg> well its easier to maintain and understand for me
[11:33:00] <altendky> xp_prg: do _not_ store numbers as strings
[11:33:01] <xp_prg> anyway, the overall approach is understood now
[11:33:11] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[11:33:17] <xp_prg> I would convert it to a hex string
[11:33:28] <altendky> xp_prg: do _not_ store numbers as strings
[11:33:39] <altendky> xp_prg: you can present them to users as strings and accept them from users as strings...
[11:33:59] <xp_prg> hmm.... ok, I will think about it
[11:34:01] <altendky> xp_prg: even if you need to store something like 1.3 exactly (no float error) don't use a string. that's what decimal.Decimal is for
[11:34:29] <altendky> or fractions if you need 1/3
[11:38:17] -!- Belxjander has joined #pyqt
[11:46:55] -!- swalladge has quit [Ping timeout: 246 seconds]
[11:51:02] -!- kushal has quit [Ping timeout: 256 seconds]
[11:51:37] -!- kushal has joined #pyqt
[12:01:34] <nsizemor> altendky: I refactored my demo based on your (cleaner) example, and I'm still getting a segfault on the call to setupUi(). Could there be some issue in the .ui file itself? it's brand-new and created w/ designer-qt4, matching my need to use of PyQt4.
[12:02:06] <altendky> nsizemor: sorry, i forget, did we discuss your reasons for pyqt4?
[12:02:16] <altendky> nsizemor: but sure, share everything
[12:02:54] <nsizemor> Supporting legacy systems. :-) We'll be moving to Qt5 next release, but for now, this app needs to be PyQt4.
[12:03:06] <altendky> alrighty
[12:04:48] <nsizemor> https://pastebin.com is the .ui file I'm using. I'm also using Python2 (legacy, see above).
[12:05:34] <altendky> nsizemor: can you share latest code and output from running with the two shared files?
[12:05:44] <nsizemor> Sure, one moment.
[12:05:48] <altendky> gist.github.com is a nice place to share, especially with multiple files
[12:06:21] <altendky> nsizemor: also, maybe use layouts? hopefully unrelated, but still
[12:11:08] <nsizemor> Huh. I was in the process of cleaning up the code to add to a gist for you, and when I ran it to give you the output, it now seems to work as expected. I swear all I did was remove some commented-out lines . . .
[12:11:11] <The-Compiler> altendky: oh, interesting :)
[12:11:26] <altendky> The-Compiler: got testing working for asyncio, just tidying so builds pass
[12:11:43] <altendky> The-Compiler: i remember you having a bigger thing so i'll have to look back to see what was different
[12:11:46] <The-Compiler> altendky: does that need a asyncio main loop to work though?
[12:12:48] <nsizemor> altendky: you appear to be able to work miracles. :-) I'll drop the refactor we discussed in my main code, but it looks like I have a path forward. My thanks!
[12:13:04] <altendky> The-Compiler: the stuff in the asyncio file would work with asyncio. the stuff in the twisted file would work with twisted. is that what yours was? no asyncio/twisted, just qt?
[12:13:36] <altendky> nsizemor: such is life. i confuse myself regularly. let me know if it regresses...
[12:13:59] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[12:15:54] -!- xp_prg has quit [Ping timeout: 252 seconds]
[12:16:36] -!- rpodgorny has joined #pyqt
[12:17:44] -!- Belxjander has joined #pyqt
[12:21:07] -!- swalladge has joined #pyqt
[12:21:22] <altendky> The-Compiler: you understand quamash (for asyncio) and qt5reactor (for twisted)? they provide the asyncio or twisted functionality using the pyqt provided event loop. so, one event loop but two interfaces (asyncio/qt or twisted/qt).
[12:24:31] <The-Compiler> altendky: https://github.com doesn't seem very useful, no?
[12:25:07] <rpodgorny> hi! there seems to be some serious breakage in the 32bit 5.11 pyqt5 wheel on pypi. whatever i try to do i always end up with "importerror: dll load failed: the specified procedure could not be found". 5.10 works just fine. checking the file sizes i see: 64bit - 5.10 (81mb) -> 5.11 (93mb), 32bit - 5.10 (68mb) -> 5.11 (39mb). what a weird decrease in size for the 32bit version! :-O
[12:25:26] <altendky> The-Compiler: it's attrs, you have to explicitly call super(), can't let it fall through since attrs writes it's own __init__
[12:25:34] <The-Compiler> fun
[12:26:09] <altendky> The-Compiler: i could go use my magic Signal class if you preferred :]
[12:26:28] <altendky> rpodgorny: what version of python?
[12:26:45] <altendky> rpodgorny: i think webengine or somesuch isn't included in qt 32 right now
[12:27:02] <altendky> but i would have heard that from The-Compiler if i actually heard it somewhere
[12:28:07] <rpodgorny> altendky: python 3.6 on windows 10 (64bit - but i need 32bit python)
[12:28:59] <altendky> rpodgorny: 3.6.?
[12:29:53] <altendky> rpodgorny: also, are you running in a virtualenv? venv? installing into the system python?
[12:30:14] <rpodgorny> 3.6.0
[12:30:17] -!- xp_prg has joined #pyqt
[12:30:32] <rpodgorny> yes, creating fresh venv every time i start the app
[12:30:48] <rpodgorny> i have no system-wide package installs
[12:30:52] <altendky> rpodgorny: i'd update that. it's not the same error but https://www.riverbankcomputing.com
[12:30:55] <altendky> rpodgorny: glad to hear it :]
[12:31:23] <altendky> rpodgorny: i'm not confident it will fix the issue but running a newer 3.6 would be 'proper' anyways. :]
[12:31:59] <rpodgorny> hmmm, ok, will try right now and let you know... stay tuned. ;-)
[12:34:28] <The-Compiler> yeah, Qt (and thus PyQt) 32-bit on Windows doesn't include QtWebEngine
[12:34:54] <The-Compiler> altendky: and yeah, I don't have any twisted/asyncio loop, for my callback thing I just need a Future object because the callback gets called by Qt's mainloop
[12:36:04] <altendky> The-Compiler: to be clear, quamash and twisted don't 'have a loop' either.
[12:36:28] <altendky> they leverage the qt loop to do the loopy stuff
[12:37:34] <altendky> The-Compiler: i guess it'd be kind of interesting to have a minimal thing to use generators/async with qt but i'm not sure if how much sense it makes when solutions exist providing full asyncio/twisted featuresets on qt
[12:41:39] <altendky> unless they bring in a significant performance penalty?
[12:42:31] <rpodgorny> altendky: upgrading to python 3.6.6 did fix the problem! yay! thanks!
[12:42:44] <altendky> rpodgorny: good deal. i didn't have a backup plan so... :]
[12:42:49] <rpodgorny> :-)))
[12:43:12] <rpodgorny> anyway, this seems to be not pyqt5 related problem, i just found this:
[12:43:21] <rpodgorny> https://wiki.qt.io - see the knows issues
[12:43:31] <rpodgorny> just fyi
[12:43:51] <altendky> rpodgorny: thanks
[12:45:21] <rpodgorny> so, this scratched my itch - thanks again and bye ;-)
[12:45:45] -!- rpodgorny has parted #pyqt
[13:11:01] <altendky> The-Compiler: https://ci.appveyor.com it'd be nice if pytest-qt didn't summarize all import errors. going to add a manual import to see why it's failing
[13:16:10] <The-Compiler> altendky: also, complexity - I'd rather not have another mainloop running which I never need
[13:16:52] <altendky> The-Compiler: maybe i'm way off, but it's not another loop?
[13:17:07] <altendky> The-Compiler: i thought it was an interface that entirely used the qt loop behind the scenes
[13:19:43] <The-Compiler> hmm, not sure - I thought it integrated with the Qt mainloop somehow, but I expected it to be a separate event loop thing still
[13:20:11] <altendky> The-Compiler: how would it work to have two mainloops in one thread? they'd each be blocking each other out
[13:20:58] <altendky> i mean i ought to know with the things i've done with qt5reactor... but i really don't recall the details
[13:21:13] <altendky> just more conjecture based on what makes sense to me from the outside now
[13:35:03] <altendky> fyi, python 3.5.6 is coming to appveyor at some point. https://github.com
[13:40:23] -!- BazookaTooth has quit [Remote host closed the connection]
[13:40:32] <The-Compiler> altendky: https://github.com looks like it somehow integrates them with each other
[13:40:34] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[13:40:42] -!- BazookaTooth has joined #pyqt
[13:43:06] <altendky> The-Compiler: what part specifically?
[13:43:49] -!- Belxjander has joined #pyqt
[13:45:04] <The-Compiler> everything :D
[13:45:28] <altendky> The-Compiler: if you were going to provide an interface that translated from asyncio methods to QEventLoop you'd make an asyncio-event-loop-looking class. yeah?
[13:46:30] <The-Compiler> sure - still means integrating the two loops with each other and a lot more complexity if I just want to use Qt signals/callbacks
[13:46:55] <altendky> The-Compiler: well, i'm seeing some stuff but i don't think that two loops are required
[13:47:27] <altendky> The-Compiler: note here it's using a qt socket notifier not a python socket notified etc https://github.com
[13:47:39] <altendky> The-Compiler: so that's just interfacing to the existing qt loop
[13:47:42] <altendky> (on that line)
[13:49:42] <altendky> https://github.com https://github.com
[13:49:50] <altendky> their timer is using a qobject startTimer() method
[13:50:02] <altendky> so it really looks to me like an interface, not a second loop
[13:50:09] <altendky> i mean sure, there's still overhead...
[13:50:26] <altendky> but the loopy stuff seems to be being handed over to the qt loop
[13:51:04] <altendky> so no integration of multiple loops. just providing the asyncio loop interface which is being driven by the qt loop behind the scenes
[13:51:15] <The-Compiler> fair
[13:51:44] <altendky> but sure, i'm still curious about how much overhead that brings in. i'm too lazy at this point anyways to bother even figuring out how i'd benchmark that though :]
[13:51:54] <altendky> err, well, i guess i'd take your thing and compare :]
[13:51:59] <altendky> but not sure what
[13:54:44] <altendky> The-Compiler: looking at your stuff. they really provide a callback parameter rather than a signal? hmm...
[13:55:32] <The-Compiler> altendky: yeah, but that makes sense, as you want to associate requests with responses
[13:56:14] <altendky> The-Compiler: it could return a signal. :]
[13:56:56] <altendky> but yeah... inlineCallbacks/yield, async/await, would be... nay will be it seems, nice
[13:57:22] -!- BazookaTooth has quit [Remote host closed the connection]
[13:57:37] -!- BazookaTooth has joined #pyqt
[13:58:22] <altendky> The-Compiler: just looking at the usage, your @inline_callbacks looks more like ensure_future() and ensureDeferred()
[13:58:39] <altendky> maybe
[13:59:07] <altendky> with twisted the @inlineCallbacks is an alternative to async def, not a layer over it
[14:23:35] <The-Compiler> altendky: https://github.com ;)
[14:24:44] <altendky> The-Compiler: tahnks, looking it over now
[14:26:51] <altendky> The-Compiler: looks good, i'll give it a try in a minute
[14:31:25] <altendky> finally got ci passing (for travis and appveyor) for both the twisted and asyncio tidbits. https://github.com
[14:57:25] <Siecje> \o/ gratz
[15:04:49] -!- BazookaTooth has quit [Ping timeout: 256 seconds]
[15:05:45] -!- BazookaTooth has joined #pyqt
[15:09:21] -!- necrose99 has joined #pyqt
[15:09:33] <altendky> Siecje: thanks. i really wish getting ci running wasn't such an achievement. especially given that i'm in pretty good practice right now. :|
[15:10:10] <altendky> Siecje: isn't there qml stuff that doesn't get included in the wheels? stuff that maybe i should include in pyqt5-tools?
[15:10:18] <Siecje> We use Jenkins and Bitbucket. I still have not been able to get Jenkins build working with pull requests.
[15:10:43] <Siecje> There is the software renderer. Is that not included yet?
[15:11:01] <altendky> Siecje: i don't know, i just thought there was something you had to build for the tests or somesuch
[15:11:07] <altendky> err, demos
[15:11:43] <Siecje> Yeah I have to compile PyQt5 from source to create the QML plugin. To be able to use qmlscene and qmltestrunner with Python objects.
[15:12:36] <altendky> Siecje: where does that file end up located? somewhere in site-packages/PyQt5?
[15:12:38] <Siecje> The software renderer files are in the Window wheels.
[15:12:52] <Siecje> Nope in Qt
[15:13:28] <altendky> Siecje: where is 'qt'? you mean a subdirectory of where i said? i meant anywhere in that tree
[15:13:52] <Siecje> It is in the C:\Qt\5.10.0\msvc2015\plugins\ directory
[15:15:06] <altendky> Siecje: ok, so that's not where it would go for any actual distribution :] but it'd need to be in 'the plugins directory' or otherwise found, isn't there a plugins search path env var or such? anyways, i'll make a note for whenever i get back to pyqt5-tools.
[15:21:24] <Siecje> I don't know but even have the file would be good :)
[15:21:31] <Siecje> having*
[15:22:27] <altendky> https://github.com in case you want to either try to contribute (sorry for the mess) or watch for me to do it :]
[15:23:54] <Siecje> pyqt5-tools is just for Windows right?
[15:24:49] <altendky> Siecje: presently, i've got a branch i tried to get linux going in. forget how far i got. should be a lot easier now that i've got the build simplified. and maybe i start using the manylinux container...
[15:26:44] <Siecje> https://github.com
[15:27:55] <altendky> Siecje: there's probably a --qml-plugin-dir as well?
[15:28:00] <Siecje> I think you need to remove that and then save the file.
[15:28:08] <altendky> :]
[15:28:17] <Siecje> yes --qml-plugindir
[15:29:21] <Siecje> I'm surprised there has only been a couple on the mailing list asking about testing with QML.
[15:29:32] <Siecje> couple people*
[15:30:55] <altendky> Siecje: are you on windows?
[15:31:26] <Siecje> Yes with a Linux VM.
[15:32:33] <altendky> Siecje: what is the filename that gets built?
[15:34:37] <Siecje> I don't know if I have ever built it on Windows. On Linux it is a .so so I assume it is a .dll.
[15:34:56] <altendky> Siecje: ah... i'll just glob it
[15:35:02] <altendky> more robust anyways
[15:36:28] -!- necrose99_ has joined #pyqt
[15:37:21] -!- necrose99b has joined #pyqt
[15:37:54] -!- necrose99b has quit [Read error: Connection reset by peer]
[15:38:07] -!- necrose99b has joined #pyqt
[15:38:58] -!- Belxjander has quit [Ping timeout: 246 seconds]
[15:39:22] -!- necrose99 has quit [Read error: Connection reset by peer]
[15:40:03] -!- necrose99 has joined #pyqt
[15:40:55] -!- necrose99_ has quit [Ping timeout: 244 seconds]
[15:41:04] <altendky> we'll see https://ci.appveyor.com
[15:43:04] -!- necrose99b has quit [Ping timeout: 240 seconds]
[15:43:31] <altendky> looks like i already include the qmlscene and qmltestrunner exe's so that's good
[15:45:18] <Siecje> The glob failed.
[15:45:25] <altendky> yep :[
[15:45:56] <altendky> i guess i should have a windows vm up to check stuff like '*' working vs. needing '*.*' or something stupid
[15:47:54] <Siecje> 'll check
[15:48:06] <altendky> vm is starting up now
[15:48:51] <Siecje> * should have worked.
[15:50:11] <altendky> rdp it is...
[15:50:50] <Siecje> maybe the directory needs to exist?
[15:51:04] <altendky> Siecje: i don't create it for the designer plug, but perhaps
[15:51:12] <altendky> we'll see what the fs looks like via rdp
[15:52:16] -!- Belxjander has joined #pyqt
[15:52:16] -!- Belxjander has quit [Excess Flood]
[15:56:10] <altendky> their rdp stuff is kinda broken as far as authentication. it likes to reject connections outright then also fail credentials. cancel/rebuild/cancel/rebuild/...
[15:57:23] <Siecje> ls the dir?
[15:57:27] <Siecje> in the build
[15:57:43] <altendky> Siecje: yeah, i may go back to that. both methods are stupid slow
[15:59:14] -!- Belxjander has joined #pyqt
[15:59:20] <altendky> heh, add another user... https://help.appveyor.com
[15:59:24] <altendky> *sigh*
[15:59:47] -!- nitro25 has quit [Remote host closed the connection]
[16:03:36] -!- xp_prg has quit [Ping timeout: 252 seconds]
[16:05:05] <altendky> created the designer dir and pyqt5.dll, but not the qml dir
[16:06:08] <altendky> The qmlscene plugin will be installed in
[16:06:08] <altendky> C:\projects\pyqt5-tools\sysroot\pyqt5-install\qml.
[16:06:33] <altendky> copy/paste that path without the qml and it comes up in explorer but only shows a designer subdirectory. guess i'll try making the directory just in case it acts differently
[16:13:29] -!- necrose99_ has joined #pyqt
[16:14:51] <altendky> Siecje: since i use --enable for QtDesigner perhaps i need to enable some qml module? http://pyqt.sourceforge.net
[16:15:47] <altendky> pre-creating the directory didn't solve it
[16:16:09] <Siecje> Qt5Qml ?
[16:16:27] <Siecje> Maybe add --verbose?
[16:16:46] -!- necrose99 has quit [Ping timeout: 246 seconds]
[16:16:49] <Siecje> You would think it would warn you. "Hey you provided qml-plugindir but didn't enable QML.
[16:17:31] <altendky> maybe QtQml https://github.com
[16:23:16] <altendky> `pyqt5qmlplugin.dll` there it is
[16:24:11] <altendky> Siecje: and it made it into the whl. https://ci.appveyor.com you have something to try it with? the wheel should provide venv\scripts\qmlscene.exe
[16:24:37] <altendky> and qmltestrunner
[16:24:49] <Siecje> Awesome!
[16:26:11] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[16:29:18] <altendky> Siecje: do you have time to see if it works?
[16:30:53] <Siecje> Yeah I'll get back to you
[16:31:56] -!- Belxjander has joined #pyqt
[16:49:46] -!- mintograde has joined #pyqt
[16:51:20] <altendky> Siecje: in case you need other versions here's a build that'll hopefully run through them. https://ci.appveyor.com
[16:51:26] <altendky> very... slowly...
[16:52:46] <Siecje> Awesome!
[17:16:42] -!- anqxyr has quit [Read error: Connection reset by peer]
[17:49:26] -!- necrose99b has joined #pyqt
[17:52:47] -!- necrose99_ has quit [Ping timeout: 240 seconds]
[18:29:25] -!- necrose99_ has joined #pyqt
[18:31:53] -!- BPL has quit [Quit: Leaving]
[18:32:58] -!- necrose99b has quit [Ping timeout: 245 seconds]
[18:36:35] -!- necrose99_ has quit [Ping timeout: 244 seconds]
[18:56:33] -!- Siecje has quit [Read error: Connection reset by peer]
[19:26:50] -!- necrose99 has joined #pyqt
[19:28:09] -!- necrose99_ has joined #pyqt
[19:28:59] -!- necrose99b has joined #pyqt
[19:31:47] -!- necrose99 has quit [Ping timeout: 240 seconds]
[19:32:46] -!- necrose99_ has quit [Ping timeout: 246 seconds]
[19:34:46] -!- beeman has quit []
[19:38:08] -!- beeman has joined #pyqt
[19:39:04] -!- kallesbar has quit [Ping timeout: 246 seconds]
[19:46:54] -!- necrose99_ has joined #pyqt
[19:50:07] -!- necrose99b has quit [Ping timeout: 240 seconds]
[19:53:01] -!- BPL has joined #pyqt
[19:53:29] -!- BPL has quit [Remote host closed the connection]
[20:58:30] -!- necrose99_ has quit [Read error: Connection reset by peer]
[22:11:13] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[22:12:07] -!- Belxjander has joined #pyqt
[22:14:07] -!- mintograde has quit [Ping timeout: 246 seconds]
[22:15:58] -!- Belxjander has quit [Client Quit]
[22:16:16] -!- Belxjander has joined #pyqt
[22:29:53] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[22:30:15] -!- Belxjander has joined #pyqt
[22:36:48] -!- Belxjander has quit [Quit: AmigaOSv4.1.6+//PowerPC native]
[22:38:14] -!- Belxjander has joined #pyqt