on adding an update checker to my Python programs

As I've been writing a few Python applications to share, I've been wondering the last day or so about how to have the application check, upon startup, for updates. This is a pretty common feature in a lot of programs, so I've been wondering how to do it.

Here's what I came up for now. It should work.

Say I have an application called FooPython and its project folder is http://blog.humaneguitarist.org/uploads/FooPython/.

I can just maintain a small XML file in that directory called update.xml that would look like this:

    <message>Version 0.9.1 is now available!</message>

Now all I'd have to do is add code similar to that below in my application to alert the user of an update:

import urllib
from lxml import etree #see: http://codespeak.net/lxml/

url = "http://blog.humaneguitarist.org/uploads/FooPython/update.xml" #not a real URL
update = urllib.urlopen(url).read()
root = etree.XML(update)
currentVersion = root.find(".//currentVersion")
currentVersionValue = currentVersion.text
message = root.find(".//message")
messageValue = message.text

if currentVersionValue != "0.9.0": #assuming this code is for version 0.9.0
   print messageValue

All this does is go to the update.xml file and read the element values. If the <currentVersion> doesn't match the version specified within the source code itself then it will print the value of the <message> element.


Related Content:

Leave a Comment

Your email address will not be published. Required fields are marked *