summaryrefslogtreecommitdiff
path: root/freebase-api/freebase/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'freebase-api/freebase/__init__.py')
-rwxr-xr-xfreebase-api/freebase/__init__.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/freebase-api/freebase/__init__.py b/freebase-api/freebase/__init__.py
index e69de29..3cca4ff 100755
--- a/freebase-api/freebase/__init__.py
+++ b/freebase-api/freebase/__init__.py
@@ -0,0 +1,40 @@
+import sys
+
+from freebase.api.session import HTTPMetawebSession
+import sandbox
+
+__all__ = ["HTTPMetawebSession", "sandbox"]
+
+base = HTTPMetawebSession("freebase.com")
+
+# we want to add base's functions to __init__.py
+# so that we can say freebase.func() and really
+# just call base.func()
+
+# a little trick to refer to __init__
+# self isn't defined because __init__ is in
+# a world in and of itself
+self = sys.modules[__name__]
+
+for funcname in dir(base):
+
+ # we only want the 'real' functions
+ if not funcname.startswith("_"):
+ func = getattr(base, funcname)
+
+ # let's make sure we're getting functions
+ # instead of constants or whatever
+ if callable(func):
+
+ # we're setting these functions
+ # so that they can be called like
+ # freebase.funcname -> base.func()
+ setattr(self, funcname, func)
+
+ # make sure we import the base's
+ # functions if we import freebase
+ __all__.append(funcname)
+
+# we don't want any self-referencing
+# business going. Plus, this is cleaner.
+del self