Fixed adding hooks to fields defined in parent classes#11
Open
kevinastone wants to merge 1 commit intobninja:masterfrom
Open
Fixed adding hooks to fields defined in parent classes#11kevinastone wants to merge 1 commit intobninja:masterfrom
kevinastone wants to merge 1 commit intobninja:masterfrom
Conversation
Owner
There was a problem hiding this comment.
not that its any better (still tedious) but u could do ~
class Item(pilo.Form):
price = pilo.fields.Integer()
@price.compute
def price(self):
return self.compute_price()
def compute_price(self):
return type(self).price._compute()
class Heirloom(Item):
has_sentimental_value = pilo.fields.Boolean()
def compute_price(self):
return 1000000 if self.has_sentimental_value else 0
Owner
|
seems ok (hack workaround here if need it). but maybe a better interface would be ~: class Item(pilo.Form):
price = pilo.fields.Integer()
class Heirloom(Item):
has_sentimental_value = pilo.fields.Boolean()
@pilo.hook.compute
def price(self):
return 1000000 if self.has_sentimental_value else 0don't know if it can be done (have base fields and names, so seems so). this looks like ~ extension of polymorphic stuff to field hooks. |
Author
|
From an API perspective, I think it would be better if the hook was offered late binding so I could simple register them such against the base class field. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ran into a situation where I wanted to define a generic field in the parent class, but wanted to be able to override the value using a
@computehook in child classes.It's not ideal having to clone any field you override, but it at least works correctly once you have the fields setup.