summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/south/utils/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/south/utils/__init__.py')
-rw-r--r--lib/python2.7/site-packages/south/utils/__init__.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/python2.7/site-packages/south/utils/__init__.py b/lib/python2.7/site-packages/south/utils/__init__.py
deleted file mode 100644
index 8d7297e..0000000
--- a/lib/python2.7/site-packages/south/utils/__init__.py
+++ /dev/null
@@ -1,73 +0,0 @@
-"""
-Generally helpful utility functions.
-"""
-
-
-def _ask_for_it_by_name(name):
- "Returns an object referenced by absolute path."
- bits = str(name).split(".")
-
- ## what if there is no absolute reference?
- if len(bits) > 1:
- modulename = ".".join(bits[:-1])
- else:
- modulename = bits[0]
-
- module = __import__(modulename, {}, {}, bits[-1])
-
- if len(bits) == 1:
- return module
- else:
- return getattr(module, bits[-1])
-
-
-def ask_for_it_by_name(name):
- "Returns an object referenced by absolute path. (Memoised outer wrapper)"
- if name not in ask_for_it_by_name.cache:
- ask_for_it_by_name.cache[name] = _ask_for_it_by_name(name)
- return ask_for_it_by_name.cache[name]
-ask_for_it_by_name.cache = {}
-
-
-def get_attribute(item, attribute):
- """
- Like getattr, but recursive (i.e. you can ask for 'foo.bar.yay'.)
- """
- value = item
- for part in attribute.split("."):
- value = getattr(value, part)
- return value
-
-def auto_through(field):
- "Returns if the M2M class passed in has an autogenerated through table or not."
- return (
- # Django 1.0/1.1
- (not field.rel.through)
- or
- # Django 1.2+
- getattr(getattr(field.rel.through, "_meta", None), "auto_created", False)
- )
-
-def auto_model(model):
- "Returns if the given model was automatically generated."
- return getattr(model._meta, "auto_created", False)
-
-def memoize(function):
- "Standard memoization decorator."
- name = function.__name__
- _name = '_' + name
-
- def method(self):
- if not hasattr(self, _name):
- value = function(self)
- setattr(self, _name, value)
- return getattr(self, _name)
-
- def invalidate():
- if hasattr(method, _name):
- delattr(method, _name)
-
- method.__name__ = function.__name__
- method.__doc__ = function.__doc__
- method._invalidate = invalidate
- return method