Conversation
|
Hi! Thank you for your contribution 👍 If you could look at the comments in your changes, I'll merge it |
| for c in range(self.__channels): | ||
| self.array[rr, cc, c] = val * self.__color[c] | ||
|
|
||
| def stacklen(self): |
There was a problem hiding this comment.
This would be cleaner as a @property.
There was a problem hiding this comment.
I also prefer a more verbose name, e.g. stack_size
|
|
||
| def pop(self): | ||
| """Restore the state that was last pushed. | ||
| allow for handling of pops of empty stacks |
There was a problem hiding this comment.
I think that by default, this shouldn't be allowed. However, I like the idea of allowing this by setting a boolean keyword argument, so that the method signature becomes something like def pop(self, *, allow_empty=False), and when called with .pop(allow_empty=True), it would allow the stack to be empty. Otherwise, You could raise a RuntimeError with a message that the stack is empty and allow_empty can be used to pop anyway.
| raise ValueError('Color value out of range') | ||
|
|
||
| self.__color = np.array(c, dtype=self.__dtype) | ||
| self.__color = np.array(c, dtype=self.__dtype) No newline at end of file |
There was a problem hiding this comment.
The trailing newline has been removed here, could you place it back?
I've started using this for a small class project on evolved L-Systems, and needed a way to elegantly handle popping an empty stack. Hope this helps!