Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#18174 closed enhancement (fixed)

Generalize base class construction for functorial construction categories

Reported by: tscrim Owned by: tscrim
Priority: major Milestone: sage-6.6
Component: categories Keywords: sd67
Cc: nthiery Merged in:
Authors: Travis Scrimshaw Reviewers: Nicolas M. Thiéry
Report Upstream: N/A Work issues:
Branch: c35a270 (Commits) Commit:
Dependencies: Stopgaps:

Description (last modified by nthiery)

This ticket implements the following syntactic sugar for functorial construction categories::

    GradedModules(K)  ->  Modules(K).Graded()
    Modules.Graded(K) ->  Modules(K).Graded()

This makes them behave consistently with CategoryWithAxiom.

As is noted in the code, the internal logic is very similar, but there seemed at this point to be no good way to avoid the duplication.

The first syntactic sugar was actually already partially implemented for GradedModulesCategory, so half of the work is just generalizing existing code.

The syntactic sugar is not valid for construction categories that take extra arguments like Algebras, since there is no generic way to decide what the argument should be used for:

    Sets.Algebras(K)  ->   Sets(K).Algebras() or Sets().Algebras(K) ?

Change History (8)

comment:1 Changed 4 years ago by tscrim

  • Branch set to public/categories/functorial_magic-18174
  • Commit set to 0e78e25fbd6bee9af1bf5606411f8146075b739f
  • Status changed from new to needs_review

New commits:

0e78e25Implement generic functorial construction base class magic.

comment:2 Changed 4 years ago by git

  • Commit changed from 0e78e25fbd6bee9af1bf5606411f8146075b739f to c35a27022e3199f3b2f05d3550e747b4cdd574b5

Branch pushed to git repo; I updated commit sha1. New commits:

160416218174: small doc improvements
c35a27018174: more doc improvements + uniformization with CategoryWithAxiom

comment:3 Changed 4 years ago by tscrim

  • Status changed from needs_review to positive_review

LGTM

comment:4 Changed 4 years ago by nthiery

For the record: all long tests pass up to some failures/timeouts I often get on my test machine:

sage -t --long src/sage/misc/cachefunc.pyx  # 1 doctest failed
sage -t --long src/sage/tests/cmdline.py  # 1 doctest failed
sage -t --long src/sage/dev/sagedev.py  # Timed out
sage -t --long src/sage/schemes/elliptic_curves/lseries_ell.py  # Timed out
sage -t --long src/sage/modular/arithgroup/arithgroup_perm.py  # Timed out
sage -t --long src/doc/en/tutorial/interfaces.rst  # 10 doctests failed
Last edited 4 years ago by nthiery (previous) (diff)

comment:5 Changed 4 years ago by nthiery

  • Description modified (diff)

comment:6 Changed 4 years ago by nthiery

  • Keywords sd67 added

comment:7 Changed 4 years ago by vbraun

  • Branch changed from public/categories/functorial_magic-18174 to c35a27022e3199f3b2f05d3550e747b4cdd574b5
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:8 Changed 4 years ago by kcrisman

  • Commit c35a27022e3199f3b2f05d3550e747b4cdd574b5 deleted
  • Reviewers changed from Nicolas Thiéry to Nicolas M. Thiéry
Note: See TracTickets for help on using tickets.