{"id":228,"date":"2008-01-25T23:57:47","date_gmt":"2008-01-26T06:57:47","guid":{"rendered":"https:\/\/dubinko.info\/blog\/2008\/01\/25\/webpath-python-xpath-2-engine-now-up-on-sourceforge\/"},"modified":"2008-01-25T23:57:47","modified_gmt":"2008-01-26T06:57:47","slug":"webpath-python-xpath-2-engine-now-up-on-sourceforge","status":"publish","type":"post","link":"https:\/\/dubinko.info\/blog\/2008\/01\/webpath-python-xpath-2-engine-now-up-on-sourceforge\/","title":{"rendered":"WebPath: Python XPath 2 engine now up on Sourceforge"},"content":{"rendered":"<p>I&#8217;ve taken this opportunity to ditch CVS on all my existing Sourceforge projects (<a href=\"http:\/\/sourceforge.net\/projects\/pyxmlwiki\" title=\"Flexible structured text parser\">pyxmlwiki<\/a>, <a href=\"http:\/\/sourceforge.net\/projects\/xfv\" title=\"XForms Validator\">xfv<\/a>) while setting up my <a href=\"http:\/\/sourceforge.net\/projects\/webpath\" title=\"WebPath\">newest project<\/a>. Here&#8217;s the <a href=\"http:\/\/webpath.svn.sourceforge.net\/\">browable subversion source<\/a>. Have at it.<\/p>\n<p>Where should you start with this code? Step zero, if you haven&#8217;t already, is to look through my <a href=\"https:\/\/dubinko.info\/events\/XML2007\/\">XML 2007 slides<\/a> on my site. First thing is to grab a copy of <a href=\"http:\/\/www.dabeaz.com\/ply\/\">PLY<\/a>, which is a dependency. Then with all these files in your current directory, run python with no parameters. At the interpreter prompt type <code>import demo<\/code> then <code>demo.demo1()<\/code>, <code>demo.demo2()<\/code>, and so on. This will give you a feel for how the system works. Look at the source of demo.py to see how it works at the high level.<\/p>\n<p>To actually get into the code, I suggest opening webpath.py and scrolling down to the end, where a large series of unit tests begins. Tracing through these will be (I hope!) instructive on how the various details of the engine are put together.<\/p>\n<p>There are many missing pieces (a few intentionally so). So have a look around the code and start thinking about what you could do with it. One thing I would love to have happen soon is getting rid of minidom, replacing it with something more robust.<\/p>\n<p>If you want developer access on Sourceforge, drop me a note with your sf username. -m<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve taken this opportunity to ditch CVS on all my existing Sourceforge projects (pyxmlwiki, xfv) while setting up my newest project. Here&#8217;s the browable subversion source. Have at it. Where should you start with this code? Step zero, if you haven&#8217;t already, is to look through my XML 2007 slides on my site. First thing&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[23,4,32],"tags":[],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-announcement","category-xml","category-xpath"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8eo8l-3G","_links":{"self":[{"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"wp:attachment":[{"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dubinko.info\/blog\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}