summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBart van Merrienboer <bart.vanmerrienboer@gmail.com>2015-01-21 12:34:52 -0500
committerBart van Merrienboer <bart.vanmerrienboer@gmail.com>2015-01-21 12:34:52 -0500
commit0170e0da2fa711b74bcfb87dbb1faf02461b5cc2 (patch)
treefe53e40344211f1f622f7e0bbf98729a61d63dc0
parentb01d8d7141916c3e7e131d3e9d9947d0ae064fef (diff)
downloadsix-0170e0da2fa711b74bcfb87dbb1faf02461b5cc2.tar.gz
Introduces a wrapper to create unbound methods.
-rw-r--r--documentation/index.rst7
-rw-r--r--six.py6
2 files changed, 13 insertions, 0 deletions
diff --git a/documentation/index.rst b/documentation/index.rst
index a8632e7..d838e38 100644
--- a/documentation/index.rst
+++ b/documentation/index.rst
@@ -232,6 +232,13 @@ functions and methods is the stdlib :mod:`py3:inspect` module.
requires the *obj*'s class to be passed.
+.. function:: create_unbound_method(func, cls)
+
+ Return an unbound method object wrapping *func*. In Python 2, this will return
+ a :func:`py3:types.MethodType` object. In Python 3 unbound methods do not
+ exist and this wrapper will return *func*.
+
+
.. class:: Iterator
A class for making portable iterators. The intention is that it be subclassed
diff --git a/six.py b/six.py
index 16a26c8..00ce734 100644
--- a/six.py
+++ b/six.py
@@ -522,6 +522,9 @@ if PY3:
create_bound_method = types.MethodType
+ def create_unbound_method(func, cls):
+ return func
+
Iterator = object
else:
def get_unbound_function(unbound):
@@ -530,6 +533,9 @@ else:
def create_bound_method(func, obj):
return types.MethodType(func, obj, obj.__class__)
+ def create_unbound_method(func, cls):
+ return types.MethodType(func, None, cls)
+
class Iterator(object):
def next(self):