libgap.* and gap.* are different interfaces.

We are in transition away from gap.* interface, please don't use it in new
code.

And don't mix them up in your code.




On Wed, 5 Apr 2023, 11:07 Hongyi Zhao, <[email protected]> wrote:

>
>
> On Wednesday, April 5, 2023 at 5:49:20 PM UTC+8 Hongyi Zhao wrote:
>
> On Wednesday, April 5, 2023 at 5:45:13 PM UTC+8 Hongyi Zhao wrote:
>
> On Wednesday, April 5, 2023 at 5:15:05 PM UTC+8 Jan Groenewald wrote:
>
> Hi
>
>
> On Wed, 5 Apr 2023 at 10:03, Hongyi Zhao <[email protected]> wrote:
>
> But other alternatives didn't work either:
>
> sage: import sage.interfaces.gap as ggap
> sage: ggap.gap_cmd="~/.local/bin/gap"
> sage: ggap.console()
> ---------------------------------------------------------------------------
> AttributeError                            Traceback (most recent call last)
> Cell In [3], line 1
> ----> 1 ggap.console()
>
> AttributeError: module 'sage.interfaces.gap' has no attribute 'console'
>
>
> Try gap_console instead of console?
>
> 0 jan@dinna-latitude:~$sage
> ┌────────────────────────────────────────────────────────────────────┐
> │ SageMath version 9.2, Release Date: 2020-10-24                     │
> │ Using Python 3.9.2. Type "help()" for help.                        │
> └────────────────────────────────────────────────────────────────────┘
>
> sage: import sage.interfaces.gap as ggap
> sage: *ggap.console()*
> ---------------------------------------------------------------------------
> AttributeError                            Traceback (most recent call last)
> <ipython-input-2-c7b46a1a6ef6> in <module>
>
> ----> 1 ggap.console()
>
> AttributeError: module 'sage.interfaces.gap' has no attribute 'console'
> sage: *ggap.gap_console()*
>  ┌───────┐   GAP 4.11.0 of 29-Feb-2020
>  │  GAP  │   https://www.gap-system.org
>  └───────┘   Architecture: x86_64-pc-linux-gnu-default64-kv7
>  Configuration:  gmp 6.2.1, GASMAN, readline
>  Loading the library and packages ...
>  Packages:   Alnuth 3.1.2, AtlasRep 2.1.0, AutPGrp 1.10.2, CTblLib 1.3.1,
>              FactInt 1.6.3, GAPDoc 1.6.3, IO 4.7.0, Polycyclic 2.15.1,
>              PrimGrp 3.4.0, SmallGrp 1.4.1, TomLib 1.2.9, TransGrp 2.0.6
>  Try '??help' for help. See also '?copyright', '?cite' and '?authors'
> gap>
>
>
>
> Yep. This way, even the following still works, which is inconsistent with
> the comments given by Dima previously in this discussion:
>
>
> Dima is correct, as checked below:
>
> sage: n = gap(20062006); n
> 20062006
>
> sage: import sage.interfaces.gap as gap
> sage: n = gap(20062006); n
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call last)
>
> Cell In [3], line 1
> ----> 1 n = gap(Integer(20062006)); n
>
> TypeError: 'module' object is not callable
>
>
> Then, I try to do some further testing as follows, but failed:
>
> sage: SmallGroup = libgap.SmallGroup
> sage: g1 = SmallGroup(8,1)
> sage: g2 = gap.SmallGroup(8,1)
> ....:
> sage: g1==g2
> ---------------------------------------------------------------------------
> GAPError                                  Traceback (most recent call last)
> Cell In [18], line 1
> ----> 1 g1==g2
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/element.pyx:1111, in
> sage.structure.element.Element.__richcmp__()
>    1109         return (<Element>self)._richcmp_(other, op)
>    1110     else:
> -> 1111         return coercion_model.richcmp(self, other, op)
>    1112
>    1113 cpdef _richcmp_(left, right, int op):
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/coerce.pyx:1973, in
> sage.structure.coerce.CoercionModel.richcmp()
>    1971 # Coerce to a common parent
>    1972 try:
> -> 1973     x, y = self.canonical_coercion(x, y)
>    1974 except (TypeError, NotImplementedError):
>    1975     pass
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/coerce.pyx:1315, in
> sage.structure.coerce.CoercionModel.canonical_coercion()
>    1313     x_elt = x
>    1314 if y_map is not None:
> -> 1315     y_elt = (<Map>y_map)._call_(y)
>    1316 else:
>    1317     y_elt = y
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/coerce_maps.pyx:161, in
> sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
>     159             print(type(C), C)
>     160             print(type(C._element_constructor),
> C._element_constructor)
> --> 161         raise
>     162
>     163 cpdef Element _call_with_args(self, x, args=(), kwds={}):
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/coerce_maps.pyx:156, in
> sage.structure.coerce_maps.DefaultConvertMap_unique._call_()
>     154 cdef Parent C = self._codomain
>     155 try:
> --> 156     return C._element_constructor(x)
>     157 except Exception:
>     158     if print_warnings:
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/libs/gap/libgap.pyx:318, in
> sage.libs.gap.libgap.Gap._element_constructor_()
>     316 else:
>     317     try:
> --> 318         return x._libgap_()
>     319     except AttributeError:
>     320         pass
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/structure/sage_object.pyx:731, in
> sage.structure.sage_object.SageObject._libgap_()
>     729 def _libgap_(self):
>     730     from sage.libs.gap.libgap import libgap
> --> 731     return libgap.eval(self._libgap_init_())
>     732
>     733 def _libgap_init_(self):
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/libs/gap/libgap.pyx:404, in
> sage.libs.gap.libgap.Gap.eval()
>     402
>     403         initialize()
> --> 404         elem = make_any_gap_element(self, gap_eval(gap_command))
>     405
>     406         # If the element is NULL just return None instead
>
> File ~/Public/repo/
> github.com/sagemath/sage.git/src/sage/libs/gap/util.pyx:367, in
> sage.libs.gap.util.gap_eval()
>     365 try:
>     366     GAP_Enter()
> --> 367     result = GAP_EvalString(cmd)
>     368     # We can assume that the result object is a GAP PList (plain
> list)
>     369     # and we should use functions for PLists directly for now; see
>
> GAPError: Error, Variable: 'f1' must have a value
>
>
> OTOH, it seems that either of the following method works:
>
> libgap.SmallGroup(8,1)
> gap.SmallGroup(8,1)
>
> So, which is the more recommended usage?
>
> Best,
> Zhao
>
>
>
>
>
> sage: import sage.interfaces.gap as gap
> sage: gap.gap_cmd="~/.local/bin/gap"
> sage: gap.gap_console()
> ....:
>  ┌───────┐   GAP 4.13dev-346-g577dcec built on 2023-03-15 07:28:54+0800
>  │  GAP  │   https://www.gap-system.org
>  └───────┘   Architecture: x86_64-pc-linux-gnu-default64-kv8
>
>  Configuration:  gmp 6.2.1, GASMAN, readline
>  Loading the library and packages ...
>  Packages:   AClib 1.3.2, Alnuth 3.2.1, AtlasRep 2.1.6, AutPGrp 1.11,
> Browse 1.8.18, CaratInterface 2.3.4,
>              CRISP 1.4.5, Cryst 4.1.25, CrystCat 1.1.10, CrystKit 0.1,
> CTblLib 1.3.4, curlInterface 2.3.1,
>              FactInt 1.6.3, FGA 1.4.0, Forms 1.2.9, GAPDoc 1.6.6, genss
> 1.6.8, IO 4.8.0, IRREDSOL 1.4.4,
>              LAGUNA 3.9.5, orb 4.9.0, Polenta 1.3.10, Polycyclic 2.16,
> PrimGrp 3.4.2, RadiRoot 2.9,
>              recog 1.4.2, ResClasses 4.7.3, SmallGrp 1.5.1, Sophus 1.27,
> SpinSym 1.5.2, TomLib 1.2.9,
>              TransGrp 3.6.3, utils 0.81
>
>  Try '??help' for help. See also '?copyright', '?cite' and '?authors'
> gap>
>
>
>
> Regards,
> Jan
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-support/0dfb01d1-db72-4b4c-8007-6ae81c5a4aa1n%40googlegroups.com
> <https://groups.google.com/d/msgid/sage-support/0dfb01d1-db72-4b4c-8007-6ae81c5a4aa1n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CAAWYfq2JeMT_N6uQyNWtZDiCzYzw6NK1r%3D7L%2BxN%2BuG5BVLVw%2BQ%40mail.gmail.com.

Reply via email to