enthought / enthought/traits

Interface checker doesn't handle mixins correctly

Open
#257 0 comments 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
Python
Stars
462
Forks
90
PR merge metrics
No merged PRs in 30d

Description

In `pyface` the following pattern is common:

```
import traits.has_traits
traits.has_traits.CHECK_INTERFACES = 2

from traits.api import Interface, HasTraits, provides

class ITest(Interface):

def foo(self):
pass

class MTest(object):

def foo(self):
pass

@provides(ITest)
class Test(HasTraits, MTest):
pass

t = Test()
t.foo()
```

This fails with:

```
InterfaceError: The 'Test' class does not implement the 'foo' method of the 'ITest' interface.
```

even though there is a `foo` method provided by the `MTest` instance.

See https://github.com/enthought/pyface/issues/102

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.