diff --git a/src/sage/categories/pushout.py b/src/sage/categories/pushout.py index 38f6364a9f0..fb303af2a18 100644 --- a/src/sage/categories/pushout.py +++ b/src/sage/categories/pushout.py @@ -3976,14 +3976,20 @@ class BlackBoxConstructionFunctor(ConstructionFunctor): EXAMPLES:: sage: from sage.categories.pushout import BlackBoxConstructionFunctor + + sage: # needs sage.libs.gap + sage: from sage.interfaces.gap import gap sage: FG = BlackBoxConstructionFunctor(gap) - sage: FS = BlackBoxConstructionFunctor(singular) sage: FG BlackBoxConstructionFunctor - sage: FG(ZZ) # needs sage.libs.gap + sage: FG(ZZ) Integers - sage: FG(ZZ).parent() # needs sage.libs.gap + sage: FG(ZZ).parent() Gap + sage: FG == loads(dumps(FG)) + True + + sage: FS = BlackBoxConstructionFunctor(singular) sage: FS(QQ['t']) # needs sage.libs.singular polynomial ring, over a field, global ordering // coefficients: QQ @@ -3993,8 +3999,6 @@ class BlackBoxConstructionFunctor(ConstructionFunctor): // block 2 : ordering C sage: FG == FS # needs sage.libs.gap sage.libs.singular False - sage: FG == loads(dumps(FG)) # needs sage.libs.gap - True """ rank = 100 diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py index 069e03c197d..7e9eab2ff2e 100644 --- a/src/sage/doctest/forker.py +++ b/src/sage/doctest/forker.py @@ -1579,6 +1579,7 @@ def report_unexpected_exception(self, out, test, example, exc_info): EXAMPLES:: + sage: from sage.interfaces.sage0 import sage0 sage: sage0.quit() sage: _ = sage0.eval("import doctest, sys, os, multiprocessing, subprocess") sage: _ = sage0.eval("from sage.doctest.parsing import SageOutputChecker") diff --git a/src/sage/interfaces/all.py b/src/sage/interfaces/all.py index 83100b2c3de..0ef74630304 100644 --- a/src/sage/interfaces/all.py +++ b/src/sage/interfaces/all.py @@ -1,32 +1,32 @@ # interfaces to other interpreters -from sage.interfaces.sage0 import sage0, sage0_version, Sage -from sage.interfaces.gap import gap, gap_reset_workspace, Gap -from sage.interfaces.gp import gp, gp_version, Gp # import problems -# from maxima_lib import maxima_lib -from sage.interfaces.maxima import maxima, Maxima -from sage.interfaces.singular import singular, singular_version, Singular - -from sage.interfaces.magma import magma, Magma -from sage.interfaces.polymake import polymake +try: + # from maxima_lib import maxima_lib + from sage.interfaces.maxima import maxima, Maxima +except ImportError: + pass from sage.misc.lazy_import import lazy_import +lazy_import('sage.interfaces.sage0', ['sage0', 'sage0_version', 'Sage']) lazy_import('sage.interfaces.axiom', ['Axiom', 'axiom']) lazy_import('sage.interfaces.ecm', ['ECM', 'ecm']) lazy_import('sage.interfaces.four_ti_2', 'four_ti_2') lazy_import('sage.interfaces.fricas', ['FriCAS', 'fricas']) lazy_import('sage.interfaces.frobby', 'frobby') +lazy_import('sage.interfaces.gap', ['gap', 'gap_reset_workspace', 'Gap']) lazy_import('sage.interfaces.gap3', ['gap3', 'gap3_version', 'Gap3']) lazy_import('sage.interfaces.genus2reduction', ['genus2reduction', 'Genus2reduction']) lazy_import('sage.interfaces.gfan', ['gfan', 'Gfan']) lazy_import('sage.interfaces.giac', ['giac', 'Giac']) lazy_import('sage.interfaces.gnuplot', 'gnuplot') +lazy_import('sage.interfaces.gp', ['gp', 'gp_version', 'Gp']) lazy_import('sage.interfaces.kash', ['kash', 'kash_version', 'Kash']) lazy_import('sage.interfaces.lie', ['lie', 'LiE']) lazy_import('sage.interfaces.lisp', ['lisp', 'Lisp']) lazy_import('sage.interfaces.macaulay2', ['macaulay2', 'Macaulay2']) +lazy_import('sage.interfaces.magma', ['magma', 'Magma']) lazy_import('sage.interfaces.magma_free', 'magma_free') lazy_import('sage.interfaces.maple', ['maple', 'Maple']) lazy_import('sage.interfaces.mathematica', ['mathematica', 'Mathematica']) @@ -35,12 +35,14 @@ lazy_import('sage.interfaces.mupad', ['mupad', 'Mupad']) # NOT functional yet lazy_import('sage.interfaces.mwrank', ['mwrank', 'Mwrank']) lazy_import('sage.interfaces.octave', ['octave', 'Octave']) +lazy_import('sage.interfaces.polymake', 'polymake') lazy_import('sage.interfaces.povray', 'povray') lazy_import('sage.interfaces.psage', 'PSage') lazy_import('sage.interfaces.qepcad', ['qepcad', 'qepcad_version', 'qepcad_formula']) lazy_import('sage.interfaces.r', ['r', 'R', 'r_version']) lazy_import('sage.interfaces.read_data', 'read_data') lazy_import('sage.interfaces.scilab', 'scilab') +lazy_import('sage.interfaces.singular', ['singular', 'singular_version', 'Singular']) lazy_import('sage.interfaces.tachyon', 'tachyon_rt') # The following variable is used by sage-shell-mode in emacs: diff --git a/src/sage/interfaces/expect.py b/src/sage/interfaces/expect.py index 0d10d75f28b..2e16fd3b2e4 100644 --- a/src/sage/interfaces/expect.py +++ b/src/sage/interfaces/expect.py @@ -928,6 +928,7 @@ def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if TESTS:: + sage: from sage.interfaces.singular import singular sage: singular._eval_line('def a=3;') '' sage: singular('a') diff --git a/src/sage/interfaces/gap.py b/src/sage/interfaces/gap.py index fc605553dd4..f093e865d4c 100644 --- a/src/sage/interfaces/gap.py +++ b/src/sage/interfaces/gap.py @@ -644,6 +644,7 @@ def _eval_line(self, line, allow_use_file=True, wait_for_prompt=True, restart_if TESTS:: + sage: from sage.interfaces.gap import gap sage: gap._eval_line('2+2;') '4' @@ -1124,6 +1125,7 @@ def __reduce__(self): """ EXAMPLES:: + sage: from sage.interfaces.gap import gap sage: gap.__reduce__() (, ()) sage: f, args = _ diff --git a/src/sage/interfaces/gp.py b/src/sage/interfaces/gp.py index 4426a7af299..9459396d3e4 100644 --- a/src/sage/interfaces/gp.py +++ b/src/sage/interfaces/gp.py @@ -270,7 +270,7 @@ def _repr_(self): EXAMPLES:: - sage: gp # indirect doctest + sage: gp # indirect doctest PARI/GP interpreter """ return 'PARI/GP interpreter' @@ -279,6 +279,7 @@ def __reduce__(self): """ EXAMPLES:: + sage: from sage.interfaces.gp import gp sage: gp.__reduce__() (, ()) sage: f, args = _ diff --git a/src/sage/interfaces/interface.py b/src/sage/interfaces/interface.py index 517c0c6fc7a..9b398ded62f 100644 --- a/src/sage/interfaces/interface.py +++ b/src/sage/interfaces/interface.py @@ -638,6 +638,7 @@ def __getattr__(self, attrname): TESTS:: sage: from sage.structure.parent_base import ParentWithBase + sage: from sage.interfaces.singular import singular sage: ParentWithBase.__getattribute__(singular, '_coerce_map_from_') """ diff --git a/src/sage/interfaces/magma.py b/src/sage/interfaces/magma.py index 034ea2ce550..4cf4a77f8bf 100644 --- a/src/sage/interfaces/magma.py +++ b/src/sage/interfaces/magma.py @@ -397,6 +397,7 @@ def __reduce__(self): EXAMPLES:: + sage: from sage.interfaces.magma import magma sage: loads(dumps(magma)) is magma True diff --git a/src/sage/interfaces/polymake.py b/src/sage/interfaces/polymake.py index 20dfafcf491..a3418e1a773 100644 --- a/src/sage/interfaces/polymake.py +++ b/src/sage/interfaces/polymake.py @@ -155,6 +155,7 @@ def __reduce__(self): """ EXAMPLES:: + sage: from sage.interfaces.polymake import polymake sage: loads(dumps(polymake)) is polymake True diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py index f89f38dda0b..c0ab80e0a68 100644 --- a/src/sage/interfaces/singular.py +++ b/src/sage/interfaces/singular.py @@ -468,6 +468,7 @@ def __reduce__(self): """ EXAMPLES:: + sage: from sage.interfaces.singular import singular sage: singular.__reduce__() (, ()) """