arcrileythe plan is (still need to buy bus tix) head up friday morning and back sat night, tho the event im going to has a wishy-washy schedule
bearI'm flexible so let me know what time range is good friday - I can be in town in 20min
arcrileybtw i could use some ideas on how to represent namespaces in this api. i have a few, but its complicated by this not being a purely DOM model; a node can belong to nodes in multiple documents (tho not in the same document twice)
arcrileythe backend is libxml2 DOM but with a crazy complex linked list allowing a python object to hold multiple xml nodes while keeping the potential branches under them in sync.
bearicky DOM is icky
arcrileyyea but its hard to implement xpath or xslt without it
arcrileythis project came from a convo i had with fritzy 2 years ago about the sad state of python xml packages and how much headache it was to implement xmpp, or any stream parsing, with them
bearyea, python and stream processing are a bad mix
bearneed a middle ware solution that can be used by any script
arcrileywell python has had generators where yield can return a value (s.send() is an example) and coroutines for awhile, and has async now which uses that
bearyea, but those are bolted onto a GIL that doesn't make for *real* event processing
Lancepython xml stream processing?
arcrileyLance, yea nodetree.org - its nowhere near ready, but im about to push 0.3 release which adds this via nodetree.Stream class
bearI was waiting for you :)
Lancebear: he mentioned xpath :)
arcrileyno namespace support yet, no xpath/xslt support yet, but its going in as fast as i can. these early releases im mostly pushing to get feedback
arcrileyone of my goals is to be able to implement stanza routing via xslt
arcrileyi find a critical bug in the code for every hour or two i spend in it, too, though its becoming increasingly difficult to find the edge cases that produce them
Lancearcriley if you want any help, let me know. this stuff would be great for sleekxmpp
arcrileyLance, yea this came from a convo i had with fritzy regarding how much of a PITA it was to use lxml in sleekxmpp
Lancewe switched to elementtree
bearyea, elementtree is awesome(ish)
arcrileyplus, nodetree is already several times faster than either celementtree or lxml since we let libxml2 do the parsing, and lazy create the Python objects representing nodes on demand
arcrileybear, elementtree is an awesome idea until you start to use it, and then it becomes a nightmare really fast. treating text nodes as a property of their parent element rather than as a node in the children list was a really bad design decision
arcrileythere's several warts on the API like that
bearyea, I'm holding my nose and not "seeing" those issues because it allows me to not use libxml2 ;)
arcrileyi'm not saying libxml2's api is any better :-)
arcrileymy favorite complaint about etree is how to serialize nodes
arcrileyi've already implemented the latter, plus repr(node) will give a formatted tree.
Lancehah, yeah. we just made our own serializer, that handled namespaces a little more sanely
arcrileyso in interactive python, if you type a node name by itself, you'll get it formatted with indentation/etc as above, and with repr() you can output that to a file should you choose
arcrileyLance, would love your ideas on how to implement namespaces. obviously preserving both prefix and uri is important, and obviously namespace state needs to be carried with nodes when they're copied moved or disconnected from their parent, and obviously they should be able to be sanely managed from python programmatically
arcrileythe current code is in http://hg.nodetree.org/nodetree
arcrileyignore the debug prints, they're kinda annoying, was tracking down memory management
Lancearcriley: what are you trying to do better than elementtree with namespaces?
arcrileyi don't have a solid plan for namespaces yet, but etree's namespace handling is atrocious so not hard to improve on
arcrileystill brainstorming. until parsing was done it was kinda moot, and that just went in very recently
beargoes to find dinner
Lancearcriley you'll be at the summit?
arcrileyno can't afford to travel to europe right now. ill be at pycon tho
Lanceok. i'll check out what you have so far and start playing with it
arcriley0.3 should be going out tomorrow. doing cleanup and getting the docs in order now
arcrileylance, you going to pycon btw?
arcrileyi submitted a proposal for a XMPP poster session, if you're going you should do it with me to talk about sleekxmpp
Lancei hadn't planned on it, but I certainly can
Lancewhen is it?
arcrileythe poster session is usually on sunday, so march 17
arcrileysanta clara, ca
Lanceok. i'll see if work will pay for travel and i'll let you know
arcrileycool. if you can, then draft up a quick speaker profile on the site (just login and go to account, you don't have to register first) and i can add you as a speaker for the session
arcrileymy experience with pycon poster sessions is you get a lot of people who're looking for a hammer for their pet screw, but its good to spread more general knowledge into the community. at the very least, have people know there's more to XMPP on Python than pyxmpp
Lancearcriley: I'm approved so I'll write up a profile today
arcrileyLance, awesome ill invite you as a co-speaker for the poster
arcrileyalso if you stay for the sprints we'll likely do xmpp stuff
arcrileyLance Stout right?
arcrileycool invite sent
Lancepoor jabber.org server :(
arcrileybtw you in julython?
KevYes. I wonder if the extra load is related to a bunch of really cool 'flooders', who seem to be kids who want to be hackers but lack the inclination to do anything more complicated than sending lots of messages.
arcrileyKev, but havent you heard, flooding internet services with traffic is the modern equivalent to a protest! and so any anti-flooding strategy you put in place, including filtering source addresses, is the same as having riot police break up a protest and squash their first amendment rights
KevNo, I hadn't heard that. Thankfully I don't speak 'stupid'.