Hi Travis,

This all looks very good. Here's a few comments and suggestions:

- Added comparison methods to Partition_class
>
If you have he stomach for it, I think that it would also be good to name 
the class Partition_class as Partition -- and make the current Partition 
function its __classcall_private__ method. 


> - Made Partitions_n inherit from Partitions
>

A more descriptive name for this class would be Partitions_size -- in which 
case self.n should be self.size.

Right now there are about 8 tests which fail in partition.py. 5 of them are 
> because I don't know how to get the old pickle information for the classes 
> I changed, so Andrew any advice? 


Apply my pickle documentation patch and read the new improved documentation!

A quicker solution is just to copy the __setstate__ method from the Tableau 
class into the partition class (that is, into Partition_class), and then 
adjust the documentation and - most importantly -- changing Tableaux() to 
Partitions(). This will almost certainly fix most, if not all, of your 
unpickling problems. The problem arises because partitions now inherits 
from Element which means that it now has a sensible __setstate__ method. 
Unfortunately, as a by-product, this also breaks the old pickles. 

If you do change Partition_class to Partition, as I suggested above, then 
you will also need to add the lines

from sage.structure.sage_object import register_unpickle_override
register_unpickle_override('sage.combinat.partition', 'Partition_class',  
Partition)

to (the bottom of) partition.py. If any other class names have changed then 
you will also need to add similar function calls for them.

Let me know if you have any problems.

Also there are a few questions I want to ask. Tableaux should also have 
> options (French vs. English in particular), but should they be linked to 
> the options for Partitions? Same question to PartitionTuples with 
> Partitions. Does anybody disagree with or have any 
> suggestions/recommendations on any of the above changes?
>

It would make sense to have the English/French convention shared between 
partitions and tableaux --- and, possibly, their tupled friends although I 
don't have strong feelings about the latter. On the other hand, you 
probably would not want to do this for all options so if they some linked 
this would confuse at least some people because they would not known which 
options were in sync and which not.

Perhaps the rule should be that "conventions" are synchronised between 
classes but "options" are not. (Please do not ask me to define these 
terms!:)
 
Andrew


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sage-combinat-devel/-/Ra2ow_EcHOQJ.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to