patch 7.4.1843
Problem: Tests involving Python are flaky.
Solution: Set the pt_auto field. Add tests. (Nikolai Pavlov)
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index cec23db..d9ae025 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -659,19 +659,31 @@
`vim.bindeval('function(%s)'%json.dumps(name))`.
Attributes (read-only):
- Attribute Description ~
- name Function name.
- args `None` or a |python-List| object with arguments. Note that
- this is a copy of the arguments list, constructed each time
- you request this attribute. Modifications made to the list
- will be ignored (but not to the containers inside argument
- list: this is like |copy()| and not |deepcopy()|).
- self `None` or a |python-Dictionary| object with self
- dictionary. Note that explicit `self` keyword used when
- calling resulting object overrides this attribute.
+ Attribute Description ~
+ name Function name.
+ args `None` or a |python-List| object with arguments. Note
+ that this is a copy of the arguments list, constructed
+ each time you request this attribute. Modifications made
+ to the list will be ignored (but not to the containers
+ inside argument list: this is like |copy()| and not
+ |deepcopy()|).
+ self `None` or a |python-Dictionary| object with self
+ dictionary. Note that explicit `self` keyword used when
+ calling resulting object overrides this attribute.
+ auto_rebind Boolean. True if partial created from this Python object
+ and stored in the VimL dictionary should be automatically
+ rebound to the dictionary it is stored in when this
+ dictionary is indexed. Exposes Vim internal difference
+ between `dict.func` (auto_rebind=True) and
+ `function(dict.func,dict)` (auto_rebind=False). This
+ attribute makes no sense if `self` attribute is `None`.
- Constructor additionally accepts `args` and `self` keywords. If any of
- them is given then it constructs a partial, see |function()|.
+ Constructor additionally accepts `args`, `self` and `auto_rebind`
+ keywords. If `args` and/or `self` argument is given then it constructs
+ a partial, see |function()|. `auto_rebind` is only used when `self`
+ argument is given, otherwise it is assumed to be `True` regardless of
+ whether it was given or not. If `self` is given then it defaults to
+ `False`.
Examples: >
f = vim.Function('tr') # Constructor