]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mgr/orchestrator: functools.partial doesn't work for methods
authorSebastian Wagner <sebastian.wagner@suse.com>
Thu, 20 Feb 2020 13:09:24 +0000 (14:09 +0100)
committerSebastian Wagner <sebastian.wagner@suse.com>
Fri, 21 Feb 2020 09:00:22 +0000 (10:00 +0100)
commitfd0fae0b473d8dd5248172ab148c4090ddd6ec2b
tree81b29517e750b620465f8ccbeb52508d3dff36b0
parente79e42467970c1be210d674e90dab21ce73e2872
mgr/orchestrator: functools.partial doesn't work for methods

Use `partialmethod` instead:

```
def decorator_partial(f):
     return partial(f)

def decorator_lambda(f):
     return lambda *args, **kwargs: f(*args, **kwargs)

class C:
     @decorator_partial
     def f(self, arg): pass

     decorator_lambda
     def g(self, arg): pass

C().f(1)
TypeError: f() missing 1 required positional argument: 'arg'

C().g(1)
None
```

Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
src/pybind/mgr/orchestrator/_interface.py