summaryrefslogtreecommitdiff
path: root/freebase/sandbox.py
diff options
context:
space:
mode:
Diffstat (limited to 'freebase/sandbox.py')
-rw-r--r--freebase/sandbox.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/freebase/sandbox.py b/freebase/sandbox.py
new file mode 100644
index 0000000..2d11be2
--- /dev/null
+++ b/freebase/sandbox.py
@@ -0,0 +1,65 @@
+#!/usr/bin/python
+# ========================================================================
+# Copyright (c) 2007, Metaweb Technologies, Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY METAWEB TECHNOLOGIES AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METAWEB
+# TECHNOLOGIES OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+# ========================================================================
+
+import sys
+from freebase.api.session import HTTPMetawebSession
+
+base = HTTPMetawebSession("sandbox.freebase.com")
+
+__all__ = ["HTTPMetawebSession"]
+
+# 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 ourselves
+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