Chapter 1. Introduction to Sulfur

As I have worked on Pyrite, I have discovered that I have been building an application structure which may be useful outside of the contect of Palm-oriented applications. In fact, more and more of my other Python projects are importing pieces of Pyrite, even though they have nothing at all to do with Palm synchronization or data. Therefore, I decided to separate all of the generally-useful functionality into a package of its own, and Sulfur is the result.

Sulfur exists because of the assumption that many applications need services which are useful when building multifaceted, extensible programs, yet which are too complex or uninteresting to implement over and over again. For example, plug-in management is such a service: it is often advantageous for an application to be able to demand-load a variety of interchangeable modules, with at least some control given to the user, and discovery capabilities which go beyond the capabilities of the normal Python package system.