#12913: Deprecate CombinatorialClass in favor of the EnumeratedSet's categories
-----------------------------+----------------------------------------------
   Reporter:  nthiery        |             Owner:  sage-combinat
       Type:  enhancement    |            Status:  new          
   Priority:  major          |         Milestone:  sage-5.1     
  Component:  combinatorics  |          Keywords:               
Work issues:                 |   Report Upstream:  N/A          
  Reviewers:                 |           Authors:               
  Merged in:                 |      Dependencies:               
   Stopgaps:                 |  
-----------------------------+----------------------------------------------
 All classes that currently inherit from {{{CombinatorialClass}}} should
 instead inherit from Parent and register themselves in one of the
 categories ({{{*EnumeratedSets}}}, {{{*FiniteEnumeratedSets}}}, or
 {{{*InfiniteEnumeratedSets}}}). For examples, see e.g.
 {{{FiniteEnumeratedSets().example()}}}.


 * Expected benefits:
   * Uniform interface
   * Support for TestSuite
   * Support for conversions, coercions, and morphisms, in particular for
 bijections (as morphisms in the category of Sets with bijection, with
 properly defined domain and co-domain rather than python functions).
 * Steps:
   1. Let {{{CombinatorialClass}}} inherits from {{{Parent}}} (mostly done
 #8910)
   1. For each {{{CombinatorialClass}}} C:
     * Have C inherit directly from {{{Parent}}}
     * Ensure that {{{C.__init__}}} sets up the proper category
 (Finite|Infinite)...
     * Add {{{TestSuite(C).run()}}} to the doctests and make all the tests
 pass
     * Have a properly setup attribute {{{C.Element}}} and use
 {{{C.element_class}}} (as defined by the categories) when constructing
 elements
     * Ensure proper unique representation behavior by having C inherit
 both from {{{UniqueRepresentation}}} and {{{Parent}}}
   1. Deprecate and remove {{{CombinatorialClass}}}
   1. Turn all the factory functions into factory classes by mean of
 {{{ClasscallMetaClass}}}; see {{{PerfectMatching}}} and {{{Trees}}} for an
 advanced example.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12913>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to