"""
import copy, os, re, sys, time, types
-from bb import note, debug, fatal
+from bb import note, debug, fatal, utils
try:
import cPickle as pickle
self.unpickle_prep()
funcstr = self.getVar('__functions__', 0)
if funcstr:
- comp = compile(funcstr, "<pickled>", "exec")
- exec comp in __builtins__
+ comp = utils.better_compile(funcstr, "<pickled>")
+ utils.better_exec(comp, __builtins__, funcstr, self.bbfile)
def linkDataSet(self):
if not self.parent == None:
import os, re
import bb.data
+import bb.utils
class Event:
"""Base class for events"""
def defaultTmpHandler():
tmp = "def tmpHandler(e):\n\t\"\"\"heh\"\"\"\n\treturn NotHandled"
- comp = compile(tmp, "tmpHandler(e)", "exec")
+ comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event.defaultTmpHandler")
return comp
def fire(event):
the code will be within a function, so should have had
appropriate tabbing put in place."""
tmp = "def tmpHandler(e):\n%s" % handlerStr
- comp = compile(tmp, "tmpHandler(e)", "exec")
+ comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._registerCode")
# prevent duplicate registration
if not comp in handlers:
handlers.append(comp)
"""Remove a 'code' Event handler
Deprecated interface; call remove instead."""
tmp = "def tmpHandler(e):\n%s" % handlerStr
- comp = compile(tmp, "tmpHandler(e)", "exec")
+ comp = bb.utils.better_compile(tmp, "tmpHandler(e)", "bb.event._removeCode")
handlers.remove(comp)
def getName(e):