On Tue, Mar 3, 2015 at 4:33 PM, Jason Friedman <jsf80...@gmail.com> wrote: >>> This is what I was trying but LooseVersion() was not sorting version >>> numbers like I thought it would. You will notice that Chrome version >>> "40.0.2214.111" is higher than "40.0.2214.91" but in the end result it's >>> not sorting it that way. >> >> Because it's a string they're sorted lexicographically, and in that >> ordering "40.0.2214.111" is less than "40.0.2214.91". Instead of a >> string you should probably use some sort of version info tuple. A >> simple tuple of ints may suffice, although you may need to get a >> little cleverer if there are ever any version strings that aren't >> entirely dotted numeric. > > Also, Python 3.4 comes with an ipaddress module.
Heh, I think that miiiiiiiight be a bit abusive :) I'm not sure that you want to depend on the version numbers fitting inside the rules for IP addresses, especially given that the example has a component of "2214". The right way to compare version numbers is usually to split them on dots, then treat each part as a separate number. I say "usually" because there are complications like "alpha", "RC", "-git", "+deb7u1", and so on, but if the entire version number consists of digits and dots, then tuple(int(x) for x in version_number.split(".")) will give you a properly-sortable key. BTW, Jason: It's usually courteous to acknowledge who you're quoting. If you look at the top of my post here, you'll see that there's a line saying your name and email address, and the date/time that you made your post; but underneath that is just straight text, because your post didn't extend the same courtesy to the previous posters. When you trim quoted text, do please try to keep at least the first acknowledgement line - the one showing who you're actually quoting. Whether or not you keep additional headers is up to you (sometimes it's easy, but other times it's fiddly), but the first one is your responsibility. Thanks! ChrisA -- https://mail.python.org/mailman/listinfo/python-list