Python EggI finally got my head round Python Eggs the other day and decided to put them to use while designing the Daemon for mmEvents.

For those of you who have never heard of Python Eggs, just think Java Jars or CPAN modules. I personally like to compare them to OSX apps - self contained apps that reside in a folder disguised as an EXE - just double click to run. In fact it was the double click to run that got me interested.

It turns out there are many more reasons for packaging your Python application as an Egg, here are five I intend to use:

  1. Simplicity - just create your folder structure and drop in a setup.py file to describe your project.
  2. Dependency Management - list your dependency modules and watch them download and install before your eyes.
  3. Resource Management - want to package some images with your script? Just drop them in a folder and add them to setup.py. There is even an API to handle the location of those files in a platform indipendant manner - Sweet!.
  4. Compression - when building an egg you can choose to compress your project into a single .egg file.
  5. Eggsecutable - by adding an entry point to your project (e.g. Main()) you can make your .egg run from the command line - I know I already told you that, but it’s so cool!!.

I started work on mmEvents a few months ago while looking for a way to recieve notification for Domain Names stored on my personal Wiki. The concept is simple, you just add the expiry date into a macro and save your page. All going well you’ll get notified as soon as the date arrives.

Anyway the project is picking up speed now and the Daemon should be checked in within the next few days…. :)