Although it almost sounds like you should be doing the NewFoo preparsing 
inside NewFoo.__classcall__ (or NewFoo.__classcall_private__), which then 
should get passed up and handled by OldFoo.__classcall__. You might need 
some extra *args or **kwds to the __init__ and/or __classcall__ to handle 
this. The other option would be to separate out the preparsing portion into 
a separate @classmethod or @staticmethod.

Best,
Travis


On Thursday, September 26, 2019 at 9:55:56 AM UTC+10, Travis Scrimshaw 
wrote:
>
> Make OldFoo.__classcall_private__, then it is not inherited.
>
> Best,
> Travis
>
>
> On Thursday, September 26, 2019 at 8:22:23 AM UTC+10, Salvatore Stella 
> wrote:
>>
>> Dear All, 
>> I would like to make a new class inheriting from a class based on 
>> UniqueRepresentation. My goal, among other things, is to preparse the 
>> arguments a little before calling the class I am inheriting from.     
>> Unfortunately this class also does some preparsing via __classcall__ to 
>> make 
>> the input hashable. Could you point me to the correct way of setting this 
>> up? 
>>
>> Sketch of the situation: 
>>
>> class OldFoo(UniqueRepresentation): 
>>     
>>     @staticmethod 
>>     def __classcall__(self, data): 
>>        # make data hashable 
>>        return super(oldFoo, self).__classcall__(self, hashable_data) 
>>
>>     def __init__(self, hashable_data): 
>>         # do something 
>>
>> class NewFoo(OldFoo): 
>>     
>>     # First neutralize OldFoo __classcall__ 
>>     __classcall__ = None 
>>
>>     def __init__(self, data): 
>>         # preparse data then initialize OldFoo 
>>
>>
>> If __classcall__ were not there I would call OldFoo.__init__ but this 
>> does 
>> not seem to work with OldFoo.__classcall__ 
>>
>>
>> Thanks 
>> S. 
>>
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/5475d883-8c54-4a8b-8fb5-f33859e464a3%40googlegroups.com.

Reply via email to