labgrid-project / labgrid

Embedded systems control library for development, testing and installation
https://labgrid.readthedocs.io/
Other
327 stars 164 forks source link

Labgrid driver/resource binding does not work with new attrs behavior #106

Closed jnejedly closed 7 years ago

jnejedly commented 7 years ago

Labgrid is not compatible with the most recent version of attrs due to a change to the default hashing behavior (unhashable). See here: https://github.com/python-attrs/attrs/issues/136

The BindingMixin class defines suppliers and clients as sets, which cannot contain unhashable objects. I think the fix would be to either change all drivers/resources to use the @attr.s(cmp=False) option to disable generation of comparison methods and make the objects hashable, or change the way that the BindingMixin registers suppliers and clients.

Emantor commented 7 years ago

This should be fixed on master with 43095183abf0ff7041170a86a54679c2b241c8f1, are you using the current release or master? We are aware we currently depend on no longer supported behaviour, but have not discussed or looked into the issue yet.

jnejedly commented 7 years ago

I was using v0.1.0, but when I was looking into this issue I saw that the master branch had the older attrs version specified. I just wanted to make sure you were aware which change in attrs caused the issue, so it could be fixed in a future release.

Emantor commented 7 years ago

I posted a WIP branch #113, I would highly appreciate it if you could test labgrid with this branch applied. We are rolling the branch out for internal testing as well.

Emantor commented 7 years ago

I accidently deleted the branch on github, new PR is #116.

jnejedly commented 7 years ago

Sorry, I meant to test this out. Looks like you were already able to internally test the changes, but I did just test them myself and it seems like it fixes the issue. Thanks!