Opened 9 months ago

Last modified 6 weeks ago

#31176 new enhancement

Meta-ticket: Add packages from 3-manifolds / computop

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.5
Component: packages: optional Keywords:
Cc: dunfield, culler, dimpase, slelievre Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

https://github.com/3-manifolds/sagedocker/tree/master/sage/scripts

  • #31177 Add graphviz, pygraphviz packages
  • #31179 Add package ipympl - interactive features of matplotlib in the Jupyter notebook and in JupyterLab
  • #31180 Add snappy as a pip package (superseded #20739)
  • #31206 script packages for tk, python _tkinter module, update documentation
  • #31456 Add package regina (and prerequisite script packages)

Change History (13)

comment:1 Changed 9 months ago by mkoeppe

  • Description modified (diff)

comment:2 Changed 9 months ago by mkoeppe

  • Description modified (diff)

comment:3 Changed 9 months ago by dunfield

It should be noted that SnapPy, nor any of the other software at ​https://github.com/3-manifolds, actually depends on, or even uses, (py)graphviz or ipympl. A certain amount of the stuff in that Docker image is just there because I used it in some project or other ;-).

All outside dependencies of SnapPy itself are already included in sage. That is,

sage -pip install --no-deps snappy spherogram plink FXrays snappy_manifolds

would be a completely functional "optional spkg" for SnapPy.

comment:4 follow-up: Changed 9 months ago by dunfield

The --no-deps flag is just there to prevent it from pulling in cypari (!= cypari2). In fact, just sage -pip install snappy does the trick but installs the (unused even by SnapPy in this context) cypari module. Unfortunately, pip does not seem to permit you to require one of a list of modules e.g. cypari|cypari2, cf https://github.com/sagemath/cypari2/issues/19#issuecomment-699071738.

comment:5 Changed 9 months ago by mkoeppe

  • Description modified (diff)
  • Summary changed from Add packages from 3-manifolds / computop to Meta-ticket: Add packages from 3-manifolds / computop

comment:6 in reply to: ↑ 4 ; follow-up: Changed 9 months ago by mkoeppe

Replying to dunfield:

... unused even by SnapPy in this context ...

Sounds like cypari should be an extras_require?

comment:7 in reply to: ↑ 6 Changed 9 months ago by dunfield

Replying to mkoeppe:

... unused even by SnapPy in this context ...

Sounds like cypari should be an extras_require?

Unfortunately, outside of Sage, SnapPy does use cypari very heavily; it is just that inside of Sage, it uses cypari2 instead. The two modules provide identical functionality, but cypari is statically linked (and includes an embedded copy of cysignals) whereas cypari2 relies on the external dynamic library libpari.

(In case you're curious, the reason cypari is statically linked is so we can build self-contained binary wheels to post on PyPI, including for Windows (native, not cygwin), and ship stand-alone SnapPy apps for macOS and Windows.)

comment:8 Changed 8 months ago by mkoeppe

  • Description modified (diff)

comment:9 Changed 7 months ago by mkoeppe

  • Description modified (diff)

comment:10 Changed 7 months ago by slelievre

  • Cc slelievre added

comment:11 Changed 7 months ago by mkoeppe

  • Description modified (diff)

comment:12 Changed 6 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

comment:13 Changed 6 weeks ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5
Note: See TracTickets for help on using tickets.