compas-dev / compas_fab

Robotic fabrication package for the COMPAS Framework.
https://compas.dev/compas_fab/
MIT License
108 stars 32 forks source link

Dictionary-like Configuration #274

Closed beverlylytle closed 3 years ago

beverlylytle commented 3 years ago

This is an attempt to make Configuration behave in some ways like a read-only dictionary, returning a joint value for a joint name key. It is also an attempt to make the attributes like joint_names and joint_values semi-immutable in the sense that their lengths cannot change but their values can. FixedLengthList subclasses list and overwrites many methods. Please look over that carefully, and suggest meaningful tests. That class is defined in configuration.py because it will only be there for a hot minute. It too will migrate to compas core. I haven't added an entry to the changelog for the same reason. But at the same time, I wonder where best to announce the breaking change of values to joint_values, and the removal of merge.

PS. I just noticed that as part of the move I should probably update the PR template.

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.

beverlylytle commented 3 years ago

I added a validator to FixedLengthList. Maybe this was a horrible idea....

beverlylytle commented 3 years ago

aww, you're just being nice... that or you are tired of looking at this ;)