This PR changes the way BackendFeature are structured.
The previous method of implementing a class with a function and use __call__ to make that class callable is no longer used.
Instead the classes are now treated as a mix-in class for the Planner to mix-in using multiple inheritance. A new BackendFeature class is added and serves as the base class for all the backend feature classes. It contains an interface to the Client which allows their code to make calls to the client.
There is no practical change to the way how users interact with the API.
The main benefit is that the generated documentation has a functional link to the code that implemented that function.
The second benefit is that the
What type of change is this?
[x] Bug fix in a backwards-compatible manner.
[ ] New feature in a backwards-compatible manner.
[ ] Breaking change: bug fix or new feature that involve incompatible API changes.
[ ] Other (e.g. doc update, configuration, etc)
Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.
[ ] I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
[ ] I ran all tests on my computer and it's all green (i.e. invoke test).
[ ] I ran lint on my computer and there are no errors (i.e. invoke lint).
[ ] I added new functions/classes and made them available on a second-level import, e.g. compas_fab.robots.CollisionMesh.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added necessary documentation (if appropriate)
This PR changes the way
BackendFeature
are structured. The previous method of implementing a class with a function and use__call__
to make that class callable is no longer used.Instead the classes are now treated as a mix-in class for the Planner to mix-in using multiple inheritance. A new
BackendFeature
class is added and serves as the base class for all the backend feature classes. It contains an interface to theClient
which allows their code to make calls to the client.There is no practical change to the way how users interact with the API.
The main benefit is that the generated documentation has a functional link to the code that implemented that function. The second benefit is that the
What type of change is this?
Checklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.CHANGELOG.md
file in theUnreleased
section under the most fitting heading (e.g.Added
,Changed
,Removed
).invoke test
).invoke lint
).compas_fab.robots.CollisionMesh
.