Re: [Twisted-Python] Twisted and Qt5
On Sun, Aug 11, 2013 at 12:24 PM, Burak Nehbit bu...@nehbit.net wrote: These changes use the new API and may possibly prevent the current reactor in the repo from correctly functioning under Qt4. I have no Qt4 / PyQt / Twisted environment ready, so if anybody has that available I would love to hear the results. — What about creating a branch? -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Twisted and Qt5
On Sat, Aug 10, 2013 at 10:14 AM, Burak Nehbit bu...@nehbit.net wrote: Qt4Reactor (my original file) is not a part of current Twisted due to licensing incompatibilities between Twisted and PyQt. The same licensing restrictions should also apply to my edited version, since I have no right to change the license on my own. I am using this as my base: https://github.com/ghtdak/qtreactor May be you could create a pull request to this repository? -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Setting socket options before connect
On Thu, Jul 18, 2013 at 1:09 PM, exar...@twistedmatrix.com wrote: On 01:09 pm, p.may...@imperial.ac.uk wrote: ... Well, exactly. It's currently easier for me to sub-class a Twisted internal/private class. But if that goes away, that option is unavailable and a replacement would be nice - even if it's a convenience API like: connectExistingSocket(...) Isn't there code to do this as part of the systemd activation? I really wanted to suggest something along those lines. The current code has the limitation that it will only accept an *already* connected socket. There isn't something that will accept a socket and then do the connection part for you. Sorry it is not exactly about the subject, but what is the current API that accepts already connected socket? Some time ago I was looking for such an API without success (probably not very hard though). -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] logging
On Mon, Jun 17, 2013 at 11:50 PM, Glyph gl...@twistedmatrix.com wrote: On Jun 17, 2013, at 5:48 PM, James Y Knight f...@fuhm.net wrote: And having a logging system which doesn't even support a basic log level is just silly. Hopefully the new system can at least have that. +1 The new system being proposed does have log levels. (And, for that matter, so does Twisted currently; we've had log levels for compatibility with stlib Python logging forever.) But it is impossible to use them in Twisted currently without Python logging or without writing your own observer AFAICS. If the system being proposed does have log levels then it is good. I still don't think that log levels are a particularly useful bit of structured information, and this is one reason I want to have our own structured format, to make sure that the *other* bits of *more* useful information hang around for longer in a useful form. I think you are mixing structured information and structured format here. Anyway, current practice proves that log level is one of the most useful pieces of whatever structured or unstructured information in the log files. IMHO applies of course. I've been convinced that it's unhelpful to be contrarian and omit information which can be useful to a whole bunch of other systems and existing practices. (Also, the effort described therein is way too ambitious to do in any reasonable time frame unless someone wanted to make logging in Twisted their full-time job for at least a year.) Plus, I've seen some utility in Calendar Server from the use of the *intersection* of level and namespace, although blanket application of log levels is still a crapshoot. That is usually true for any somewhat complex phenomena - there is no silver bullet, everything should be used in concert. Take gender for example - taken alone it doesn't tell everything about a person but still is a very important piece of information :) Frankly I do not remember a program or a system where log level was not used in one form or another if logging was used at all. (So, other than those caveats, everything I said about identifying the audience and intent of messages in http://glyph.twistedmatrix.com/2009/06/who-wants-to-know.html still applies.) I agree. It is so tempting to design something that will rule them all :) Unfortunately such a generic project usually is destined not to be completed :( (like Lore to Sphinx conversion ::() (I hope that the number of smiles is enough to indicate the level of seriousness in the above paragraphs ;} ) Seriously, the only things that could probably be general enough to provide ready made interface among gazillions of applications/domains are the time stamp and the log level. The third one - the source of the message is also general but its values are very application specific. Everything else is too application specific to hard code into generic library like Twisted. There should be a way to implement them if needed of course. Among these only log level is missing in Twisted and logPrefix should be fixed to always show correct names. From the practical POV the most welcomed first step in updating the Twisted log system would be introduction of ready made log levels (with an ability to filter on them in observers), fix of logPrefix thing and somewhat extended set of available observers (syslog, email, socket, etc.) Everything else could wait more detailed design etc. Do all the systems you mentioned have the same set of log levels, or will there be some need to harmonize them? IMHO the level of consensus in the set of log levels is not all that bad. The ones used in Python logging together with ability to add custom levels is good enough for almost anything. Regards, Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Twisted on PyPI
On Sun, May 26, 2013 at 1:45 AM, Tom Prince tom.pri...@ualberta.net wrote: Donald Stufft don...@stufft.io writes: So I'm emailing you all to warn you about this upcoming change since Twisted is one of the major projects affected and also to see if the Twisted developers would prefer a different rename than Twisted-Web. Looking at the project pages on pypi, those don't appear to be installable anyway. I think that it might make sense to just remove them, at this point. +1 -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] SURVEY: Have you submitted a patch to Twisted and it never got in?
On Fri, Jul 1, 2011 at 6:01 PM, Jason J. W. Williams jasonjwwilli...@gmail.com wrote: Because they don't always seem to track the ticket branch folders in a timely manner. Especially, when JP (he seems to usually be my reviewer :) ) pushes a modification of my patch to the ticket branch. It's at this point trying to merge in from SVN is usually a nightmare. Why it is a nightmare? Just do svn checkout of the ticket branch and continue your work and submit additional patches against it if needed. The only problem here that I could see is if you have made some changes in addition to your patch. But in this case kdiff3 makes it a snap to merge you changes to the ticket branch checkout. My Git copy being tied to an older SVN rev that my patch is based on. SVN just seems to lose it's brains when my patch isn't in the SVN commit history, because SVN repo doesn't allow me to commit in. I can't decipher this, could you elaborate? DVCS would allow me to branch, commit to my repo, and then let JP pull from my repo into his to review and push up to the Twisted repo when he's happy with it...and all of the commit history is sane from the original, to my patch to his changes, so when I go to pull back down from the Twisted repo everything merges sanely. IMHO the common practice is to accept patches for review and potential inclusion and pull only from a trusted lieutenants (like in Linux kernel case) and creating patches is not very different in svn, git etc. Regards, Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Twisted Plugins - Implementation Discussion
On Thu, Apr 21, 2011 at 9:01 PM, David da...@silveregg.co.jp wrote: On 04/22/2011 06:21 AM, anatoly techtonik wrote: On Thu, Apr 21, 2011 at 4:48 AM, Kevin Hornkevin.h...@gmail.com wrote: cluster. So he rewrote distutils with an eye on keeping things nice for everyone. Project managers, distro packagers, users installing software, etc. This is distutils2. In Python 3.3 and up it will be called packaging. Once people start using it, it will make a lot of the current packaging headaches in the Python world go away. Are you sure about that? Where is the list of stories it will solve when people start using it, so I can check that my cases are covered by distutils2 insurance plan? [OT] You can take a look at bento, which is my own response to the distutils issues we have in the scipy community (but I would expect twisted and most big python libraries to have similar issues): http://cournape.github.com/Bento/ It is designed from the ground up with the idea of reliable customization and complex build supports. It can already build numpy and scipy with a near 50 % reduction in LOC compared to our setup.py, and more reliably thanks to using a real build tool in the backend (waf, but you can add support for a different one if you want). That is nice indeed. But why to invent yet another scripting language for info files or good old python is not good enough? BTW are bento and waf sources included in that 50% reduction? -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] http://twistedmatrix.com/ trac installation updated
On Mon, Mar 15, 2010 at 6:36 PM, Tim Allen screwt...@froup.com wrote: On Mon, Mar 15, 2010 at 09:30:05AM -0500, Mikhail Terekhov wrote: On Sun, Mar 14, 2010 at 1:44 AM, Glyph Lefkowitz gl...@twistedmatrix.com wrote: On Mar 11, 2010, at 3:05 PM, exar...@twistedmatrix.com wrote: If you notice anything broken about the website now, please point it out. Also, the spacing on the revision log and repository browser seems wrong; many table rows are double height for some reason. Still, I'm not complaining - just the fact that things paginate now has made the experience of doing triage much more pleasant! In case of FF-3.6 the rows are triple height and filled in a funny ragged way. There's a span class=expandnbsp;/span in the markup at the beginning of the first cell in each row, followed by an a tag that actually links to the directory in question. For some reason, a tags in that table have display: block (/trac/chrome/common/css/browser.css, line 50) which among other things forces them to start on a new line, after the span. If the span was removed (putting the a at the beginning of the cell), or the display:block was removed (making the a follow the span on the same line), or the nbsp; was removed (collapsing the span to zero height so it wouldn't leave a gap), things should be prettier. I'm not an expert on css so I can't comment on that. The thing is that I've never seen that behavior in any other Trac site on the net, so it is something twistedmatrix specific IMHO. In addition to that the menu is overlapped in FF but this was the same way before update. BTW in IE6 menu is OK. Which menu is that? The Wiki/Timeline/... and Login/Preferences/..., see attached screen shot. attachment: cnnect2.png___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] 9.0.0 question
On Fri, Jan 22, 2010 at 8:04 PM, Tristan Seligmann mithra...@mithrandi.net wrote: On Sat, Jan 23, 2010 at 1:40 AM, Mikhail Terekhov ter...@gmail.com wrote: So why reactor never stops if it was never run? What it is doing? You call reactor.stop(); this does nothing but produce a delayed exception. You then call reactor.run(), which runs the reactor. You then never call reactor.stop() again, and thus the reactor continues running forever. Tank you! I see now, it is very simple indeed! -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] 9.0.0 question
2. Why reactor.stop() hangs if it is called before reactor.run()? It doesn't. It raises an exception. The reason the example hangs is that Care to elaborate? Who hangs then and why python exits and I see this exception only after I hit Cntl-C? I think that's what I explained in the rest of the sentence that is cut off above. You may only see the exception reported later on because the example is relying on garbage collection for that reporting. Please bear with me as I still can't get it. Here is your explanation for convenience: It doesn't. It raises an exception. The reason the example hangs is that since reactor.stop() was called before reactor.run(), it's not called *after* reactor.run(). So the reactor never stops. So why reactor never stops if it was never run? What it is doing? -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] 9.0.0 question
On Thu, Jan 21, 2010 at 3:58 AM, exar...@twistedmatrix.com wrote: On 03:43 am, gl...@twistedmatrix.com wrote: On Jan 20, 2010, at 3:20 PM, Mikhail Terekhov wrote: Hi, I've switched recently from 8.2 to 9.0 and noticed that some of my client scripts hang in reactor.stop() on exit sometimes. That never happened before. For example if I run the gethostbyname.py from the twisted-names examples directory it prints the correct result and hangs forever until I press Cntrl-C. Then it prints the following traceback: I don't see the behavior you describe, but I do see this traceback on trunk with every 3rd run or so of that example - maybe the example is buggy? doc/names/examples$ python gethostbyname.py twistedmatrix.com twisted/names/dns.py:1670: DeprecationWarning: Please only pass IPs to write(), not hostnames self.transport.write(message.toStr(), address) Traceback (most recent call last): File twisted/internet/udp.py, line 121, in doRead self.protocol.datagramReceived(data, addr) File twisted/names/dns.py, line 1700, in datagramReceived d.callback(m) File twisted/internet/defer.py, line 239, in callback self._startRunCallbacks(result) File twisted/internet/defer.py, line 308, in _startRunCallbacks self._runCallbacks() --- exception caught here --- File twisted/internet/defer.py, line 324, in _runCallbacks self.result = callback(self.result, *args, **kw) File twisted/names/common.py, line 239, in lambda ).addBoth(lambda passthrough: (r.protocol.transport.stopListening(), passthrough)[1]) exceptions.AttributeError: 'NoneType' object has no attribute 'stopListening' http://twistedmatrix.com/trac/ticket/4210 I think I found it, it is somewhat different IMHO. When you run python gethostbyname.py localhost notice the '''localhost''' there, the getHostByName('localhost') returns defer.succeed(..) so the callback gotResult and hence reactor.stop() is called even before reactor is run and for some reason it hangs there inside reactor.stop(). So there are actually two points here: 1. the gethostbyname.py example should probably be changed something like this --- gethostbyname.py.orig 2010-01-21 10:01:30.0 -0500 +++ gethostbyname.py2010-01-21 10:02:55.0 -0500 @@ -15,7 +15,9 @@ failure.printTraceback() reactor.stop() -d = client.getHostByName(sys.argv[1]) -d.addCallbacks(gotResult, gotFailure) +def main(): +d = client.getHostByName(sys.argv[1]) +d.addCallbacks(gotResult, gotFailure) +reactor.addSystemEventTrigger(after, startup, main) reactor.run() 2. Why reactor.stop() hangs if it is called before reactor.run()? Are they worth a tickets? Regards, -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
[Twisted-Python] 9.0.0 question
Hi, I've switched recently from 8.2 to 9.0 and noticed that some of my client scripts hang in reactor.stop() on exit sometimes. That never happened before. For example if I run the gethostbyname.py from the twisted-names examples directory it prints the correct result and hangs forever until I press Cntrl-C. Then it prints the following traceback: terek...@linux:/home/terekhov/python/twisted/9.0/Twisted-9.0.0/doc/names/examples python gethostbyname.py localhost 127.0.0.1 ^CUnhandled error in Deferred: Traceback (most recent call last): File gethostbyname.py, line 19, in module d.addCallbacks(gotResult, gotFailure) File /usr/lib64/python2.5/site-packages/twisted/internet/defer.py, line 181, in addCallbacks self._runCallbacks() --- exception caught here --- File /usr/lib64/python2.5/site-packages/twisted/internet/defer.py, line 323, in _runCallbacks self.result = callback(self.result, *args, **kw) File gethostbyname.py, line 12, in gotResult reactor.stop() File /usr/lib64/python2.5/site-packages/twisted/internet/base.py, line 553, in stop Can't stop reactor that isn't running.) twisted.internet.error.ReactorNotRunning: Can't stop reactor that isn't running. terek...@linux:/home/terekhov/python/twisted/9.0/Twisted-9.0.0/doc/names/examples At the same time echo client/server example from the twisted core works as expected. Any hint would be appreciated. BTW I use SuSE 11.0 on x86_64 with python 2.5.2 Regards, -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Lore to Sphinx Conversion Progress Report 2
On Fri, Dec 18, 2009 at 1:46 PM, Kevin Horn kevin.h...@gmail.com wrote: I'm also happy to send a copy of the code I have so far to anyone who's interested...just send me an email off list, and I'll send you a tarball. What about putting it into Twisted's SVN, i.e. into sandbox? Regards, -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] web vs web2 clarification
On Thu, Dec 10, 2009 at 12:25 PM, exar...@twistedmatrix.com wrote: Web2 was a sort of from scratch rewrite. I don't usual defer to Joel, but his article is the first hit for the phrase from scratch rewrite and he basically gets it right: http://www.joelonsoftware.com/articles/fog69.html Just some unrelated rant about JoelCo : Joel talks about big _commercial_ projects and _commercial_ failures. May be he is right here, may be not. But it is this rewrite from scratch that gave birth to Mozilla - number one web/email suite till now. Isn't it a success? Another successful open source examples are Apache and Subversion. And what about CVS that couldn't/refused rewrite from scratch and peacefully evolves adding features little by little? Can it catch up with svn/git/bzr/hg? I doubt so. CVS's example in fact says that if you refuse to do it then someone else will do and will replace you. May be it is open source that makes it different, may be people think more about fun and beauty than about money in this case? It is not so simple and Joel's hypothesis is far from being 100% true IMHO. In the end a lot of people know/use Borland's, Netscape's and Microsoft's software but how many know/use Joel's? ;) Regards, -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] web vs web2 clarification
On Thu, Dec 10, 2009 at 2:41 PM, Phil Christensen p...@bubblehouse.org wrote: I think that's debatable. Mozilla was terrible for a long time, there just wasn't much alternative. You could make the (arguable) point that Mozilla's rewrite happened at the cost of disengaging from the web community, leading people to jump ship to IE. I agree that the process wasn't smooth, easy and done in a best possible way. But the point was that the net result is positive. Would Mozilla Platform be possible _now_ without such a rewrite? I don't think Apache is a particularly good example of why ground-up rewrites are more reasonable in open source projects. It took **years** to get a critical mass on Apache 2, and there are still many plugins that don't support anything but prefork mode. I meant here the transition from 0.7.x to 0.8.8 (Shambhala). They designed it completely from scratch in _parallel_ with developing the 0.7.x series. And this was a foundation of the following 1.x success (modular design etc.) And what about CVS that couldn't/refused rewrite from scratch and peacefully evolves adding features little by little? Can it catch up with svn/git/bzr/hg? I doubt so. CVS's example in fact says that if you refuse to do it then someone else will do and will replace you. Well, again, debatable. OpenBSD still uses CVS, and has started a significant push to patch and upgrade the existing CVS source. With all due respect to OpenBSD developers, they are just a tiny part of the all VCS users and their significant push in their relatively small community will not magically save CVS I'm afraid. The point here is that once a dominant VCS in the world, CVS now looses its position pretty fast and all these incremental improvements (commitid etc.) can not save it. It is too late now. The part of the lesson here is that the code is/was in such a shape that the implementation of urgently needed features (like commit atomicity) took so long that others (svn/git/bzr/hg etc.) implemented everything from scratch and even more. See for example of VCS usage trends http://tinyurl.com/ykmurn7 and http://tinyurl.com/qj7c3 May be it is open source that makes it different, may be people think more about fun and beauty than about money in this case? It is not so simple and Joel's hypothesis is far from being 100% true IMHO. In the end a lot of people know/use Borland's, Netscape's and Microsoft's software but how many know/use Joel's? ;) I think it's far simpler than that. There's an old expression that sums it up: A bird in the hand is worth two in the bush. Taking limited resources from a nearly-complete and reasonably popular project to add them to a brand-new and **backwards-incompatible** project is rarely ever a wise project management decision. That is all true but it is very close to Joel's reasoning, kind of a manager's point of view. It is too business/money oriented and doesn't exhaust all the reasons why people write software in open source world in particular. And what is more important it doesn't explain why they still rewrite it from scratch sometimes and succeed? ;) But this became completely unrelated to this list, sorry for dragging discussion so far. -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] Deferred on PyPI
On Wed, Dec 9, 2009 at 3:27 AM, Jonathan Lange j...@mumak.net wrote: ... I completely screwed up with the advanced English usage then. :( IMHO it is very simple: extracting Deferreds out of Twisted would benefit (if at all) only people who do not use or develop Twisted. From the packaging point of view recent integration of the half a dozen Twisted related packages into one package was a big win for both users and maintainers. Extracting Deferreds would be a step backwards. As it was already mentioned in this thread it would bring an additional headache of maintaining versions compatibility etc. to Twisted developers. For Twisted users (especially those who uses their system's package managers) it would mean to install bunch of packages instead of only one again ... Let's try to estimate the practical benefits such separation would bring: - ability to write 'from deferreds import Deferred' instead of 'from twisted.internet.defer import Deferred' - IMHO is a very minor one. - ability to use 'python setup.py install' in ~/Deferreds-1.2.3 instead of 'python setup.py install' in ~/twisted-9.0.0 or 'apt-get deffereds' instead of 'apt-get twisted' does not count as a big one either. - ability to save couple of megabytes of disk space during installation - these days it is almost a joke :) - ability to save some when distributing your product with py2exe and such - that is something. But this can be solved without separation - just eliminate dependencies of the twisted.internet.defer from the rest of the system and write smart enough setup.py (I believe patches, examples and docs are welcome as usual) Did I miss something? IMHO from the practical point of view the only case when separation of Deferreds would benefit Twisted community as a whole would be inclusion of it into the standard library, but this is not going to happen soon ... Bottom line - I wouldn't blame Twisted developers for the lack of enthusiasm in this case. Regards, -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Re: [Twisted-Python] sleeping in inlineCallbacks
On Wed, Oct 7, 2009 at 6:04 PM, Phil Christensen p...@bubblehouse.orgwrote: Paul's example will work just fine. Also, AFAIK there's no existing twisted function to do replicate an asynchronous sleep() in this way. -phil What about Deferred.setTimeout? http://twistedmatrix.com/documents/current/api/twisted.internet.defer.Deferred.html#setTimeout IMHO it solves similar problem. -- Mikhail Terekhov ___ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python