[appengine-afterburner] r10 committed - Introducing util.fq_name function and using it throughout.

0 views
Skip to first unread message

appengine-...@googlecode.com

unread,
Nov 12, 2010, 6:18:54 AM11/12/10
to appengine-after...@googlegroups.com
Revision: 10
Author: mike.a...@gmail.com
Date: Fri Nov 12 03:18:33 2010
Log: Introducing util.fq_name function and using it throughout.
http://code.google.com/p/appengine-afterburner/source/detail?r=10

Modified:
/trunk/python/src/afterburner/experimental/db/materialized_map.py
/trunk/python/src/afterburner/experimental/db/triggers.py
/trunk/python/src/afterburner/util.py

=======================================
--- /trunk/python/src/afterburner/experimental/db/materialized_map.py Mon
Nov 8 03:15:55 2010
+++ /trunk/python/src/afterburner/experimental/db/materialized_map.py Fri
Nov 12 03:18:33 2010
@@ -14,6 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

+import logging
+
from afterburner.experimental.db import triggers
from afterburner import util
from google.appengine.ext import db
@@ -28,6 +30,7 @@

def trigger(key):
for f in MAPS.get(key.kind(), []):
+ logging.error("applying %s to %s", f, key)
def tx():
si_query = SourceInfo.all().ancestor(key).filter('map_name', f)
si_list = si_query.fetch(1)
@@ -60,10 +63,9 @@
def materialized_map(kind):
def decorator(f):
# TODO: duplicate registration
- MAPS.setdefault(kind, []).append(
- f.__module__ + "." + f.__name__)
+ MAPS.setdefault(kind, []).append(util.fq_name(f))
triggers.TriggerManager.register_trigger(
- kind, trigger.__module__ + "." + trigger.__name__)
+ kind, util.fq_name(trigger))
return f

return decorator
=======================================
--- /trunk/python/src/afterburner/experimental/db/triggers.py Mon Nov 8
03:14:27 2010
+++ /trunk/python/src/afterburner/experimental/db/triggers.py Fri Nov 12
03:18:33 2010
@@ -253,7 +253,9 @@

@classmethod
def register_trigger(cls, entity_kind, function_name):
+ cls.init_if_needed()
# TODO: double registration
+ logging.error("register_trigger: %s, %s", entity_kind, function_name)
cls.triggers[entity_kind] = (
cls.triggers.get(entity_kind, []) + [function_name])

@@ -303,7 +305,7 @@
"""
TriggerManager.init_if_needed()
def decorator(f):
- trigger_name = f.__module__ + "." + f.__name__
+ trigger_name = util.fq_name(f)
TriggerManager.register_trigger(kind, trigger_name)
return f
return decorator
=======================================
--- /trunk/python/src/afterburner/util.py Mon Nov 8 03:14:27 2010
+++ /trunk/python/src/afterburner/util.py Fri Nov 12 03:18:33 2010
@@ -16,6 +16,8 @@

"""Set of generally usefull utilities."""

+import logging
+import os
import sys


@@ -89,3 +91,18 @@
raise


+def fq_name(o):
+ module_name = o.__module__
+ if module_name == "__main__":
+ file_name = sys.modules["__main__"].__file__
+ for path in sys.path:
+ if file_name.startswith(path):
+ module_name = file_name[len(path):]
+ if module_name.startswith("/"):
+ module_name = module_name[1:]
+ module_name = module_name.replace("/", ".").replace("\\", ".")
+ if module_name.endswith(".py"):
+ module_name = module_name[:-3]
+ break
+ result = module_name + "." + o.__name__
+ return result

Reply all
Reply to author
Forward
0 new messages