Seamed Line in Blender 2.6

bl_info = {
    "name": "Simple Liner",
    "category": "Add Curve",
}

import bmesh

##########################################
# number of edges (vertices = edges + 1)
n = 3
##########################################

def genVert(n):
    for i in range(n+1):
        f = float(i)
        yield(0.0, 0.0, f)

def genEdge(n):
    for i in range(n):
        yield(i, i+1)
    
def toggleFramed(self, context):
    if self.isFramed:
        print("framed")
    else:
        print("not framed")

def toggleLooped(self, context):
    if self.isLooped:
        print("looped")
    else:
        print("not looped")

class AddCurveSimpleLiner(bpy.types.Operator):
    """Add Curve Simple Liner"""
    bl_idname = "add_curve.simple_liner"
    bl_label = "Simple Liner"
    bl_options = {'REGISTER', 'UNDO'}
    isFramed = bpy.props.BoolProperty(name="is Framed", default=False, update=toggleFramed)
    isLooped = bpy.props.BoolProperty(name="is Looped", default=False, update=toggleLooped)
#
    def execute(self, context):                
        self.verts = list(genVert(n))
        self.edges = list(genEdge(n))        
        m = bpy.data.meshes.new('seamedLineMesh')
        o = bpy.data.objects.new('seamedLine', m)
        bpy.context.scene.objects.link(o)#        m = context.scene.objects.active.data
#        bpy.ops.object.select_pattern(pattern="seamedLine")
        bpy.context.scene.objects.active = o
        bpy.context.scene.objects.active.select = True
        m.from_pydata(self.verts, self.edges, [])
        m.update()
#        bm = bmesh.from_edit_mesh(m)
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(AddCurveSimpleLiner.bl_idname)

addon_keymaps = []

def register():
    bpy.utils.register_class(AddCurveSimpleLiner)
    bpy.types.VIEW3D_MT_object.append(menu_func)
    # handle the keymap
    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    kmi = km.keymap_items.new(AddCurveSimpleLiner.bl_idname, 'SPACE', 'PRESS', ctrl=True, shift=True)
    kmi.properties.isFramed = False
    kmi.properties.isLooped = False
    addon_keymaps.append(km)

def unregister():
    bpy.utils.unregister_class(AddCurveSimpleLiner)
    bpy.types.VIEW3D_MT_object.remove(menu_func)
    # handle the keymap
    wm = bpy.context.window_manager
    for km in addon_keymaps:
        wm.keyconfigs.addon.keymaps.remove(km)
    # clear the list
    del addon_keymaps[:]
    
if __name__ == "__main__":
    register()