Hi, My name is Anthony Fischetti. I'm a huge fan of the pylast module!
I was starting an ambitious project employing your module and I caught myself writing my own classes to expand the autonomy of your methods (as in functions).
For example, if you try to use Network.get_artist( ... ) on a string like, for example, "wu tang", the object is contructed, but it doesn't refer to an actual
last.fm artist.
In this example, it's obvious that the driver program (user) meant to construct an object referring to "Wu-Tang Clan" but made an honest mistake.
Therefore, someone using your module as it is now will have to properly handle certain errors that your low-level functions doesn't bother with (and shouldn't have to deal with.) However, I'd be willing to bet that everyone using your module for all application purposes will have to write a lot of code to handle these errors.
The classes I'm writing are (ideally) designed to handle all such "driver" mistakes gracefully. For example, if someone uses my Artist class to construct an artist object, the class code will recognize if an artist's name was mispelled an return the proper artist. This is extremely useful because, as you know,
last.fm has a lot of pages of artists that are bastardized versions of what are the generally accepted artist name really is
"tokyo polic club" is clearly meant to be "tokyo police club"
"belle & sebastian" is clearly meant to refer to "belle and sebastian" the more popular version of the two
My Artist class uses bayesian probability to correct these errors.
You clearly have a love of high level functionality, as evident by your choice of using python :)
I was wondering if you want to collaborate, or simply expand, your module to include these higher level methods for the sake of helping developers (that's what open-source is all about) deploy robust
last.fm apps. This might make python a top choice in all
last.fm development projects, which is nice, because python is awesome. Also, free software and sharing is awesome
I'm going to write these classes for myself anyway, but I would really love for them to be of use to other developers as well.
Tell me what you think!
Your friend,
Anthony Fischetti