5761l3

Listing 3. smallhello/__init__.py

# Import the class file
import smallhello

# Define a method that creates a new instance of smallhello
def initialize(context):
  "Create a new instance of our product"

  # Register our class (product) in the current acquisition context,
  # indicating what method (or methods) should be invoked when someone
  # adds a new instance of our product.

  # We'll use the trick from the "Boring" sample product, which uses
  # exceptions to trap any problems that might occur with our product
  # registration.

  try:
    context.registerClass(

        # What object do we want to add?
        smallhello.smallhello,

        # What methods should be called when we want to create a new
        # instance of smallhello?
        constructors = (smallhello.manage_smallhello,)
        )

  except:
    # If something goes wrong, then report it on stderr (as
    # demonstrated in the Boring demonstration product)

    # Import modules that give us full debugging information
    import sys, traceback, string

    # Find out what went wrong
    type, val, tb = sys.exc_info()

    # Tell the user what went wrong
    sys.stderr.write(string.join(
      traceback.format_exception(type, val, tb), ''))

    del type, val, tb