Skip to content

Commit ad549b6

Browse files
author
Release Manager
committed
gh-36025: Use `# optional - gap_package_grape` etc. instead of `# optional - gap_packages` <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> The Sage distribution has an optional SPKG `gap_packages`, which is a collection of GAP packages used by parts of Sage. The doctests that uses these packages are currently marked `# optional - gap_packages`. Here we switch to using more specific feature tags. These more specific features are tested dynamically, which works outside of the Sage distribution. <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> - Depends on #36017 <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #36025 Reported by: Matthias Köppe Reviewer(s): David Coudert
2 parents 8402923 + babd64f commit ad549b6

23 files changed

+765
-744
lines changed

src/sage/algebras/quantum_groups/quantum_group_gap.py

Lines changed: 531 additions & 530 deletions
Large diffs are not rendered by default.

src/sage/coding/code_bounds.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,11 +255,11 @@ def codesize_upper_bound(n, d, q, algorithm=None):
255255
93
256256
sage: codes.bounds.codesize_upper_bound(24,8,2,algorithm="LP")
257257
4096
258-
sage: codes.bounds.codesize_upper_bound(10,3,2,algorithm="gap") # optional - gap_packages (Guava package)
258+
sage: codes.bounds.codesize_upper_bound(10,3,2,algorithm="gap") # optional - gap_package_guava
259259
85
260260
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm=None)
261261
123361
262-
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="gap") # optional - gap_packages (Guava package)
262+
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="gap") # optional - gap_package_guava
263263
123361
264264
sage: codes.bounds.codesize_upper_bound(11,3,4,algorithm="LP")
265265
109226
@@ -270,7 +270,7 @@ def codesize_upper_bound(n, d, q, algorithm=None):
270270
271271
sage: codes.bounds.codesize_upper_bound(19,10,2)
272272
20
273-
sage: codes.bounds.codesize_upper_bound(19,10,2,algorithm="gap") # optional - gap_packages (Guava package)
273+
sage: codes.bounds.codesize_upper_bound(19,10,2,algorithm="gap") # optional - gap_package_guava
274274
20
275275
276276
Meaningless parameters are rejected::
@@ -379,7 +379,7 @@ def plotkin_upper_bound(n,q,d, algorithm=None):
379379
380380
sage: codes.bounds.plotkin_upper_bound(10,2,3)
381381
192
382-
sage: codes.bounds.plotkin_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
382+
sage: codes.bounds.plotkin_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
383383
192
384384
"""
385385
_check_n_q_d(n, q, d, field_based=False)
@@ -430,7 +430,7 @@ def griesmer_upper_bound(n,q,d,algorithm=None):
430430
431431
sage: codes.bounds.griesmer_upper_bound(10,2,3)
432432
128
433-
sage: codes.bounds.griesmer_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
433+
sage: codes.bounds.griesmer_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
434434
128
435435
436436
TESTS::
@@ -471,7 +471,7 @@ def elias_upper_bound(n,q,d,algorithm=None):
471471
472472
sage: codes.bounds.elias_upper_bound(10,2,3)
473473
232
474-
sage: codes.bounds.elias_upper_bound(10,2,3,algorithm="gap") # optional - gap_packages (Guava package)
474+
sage: codes.bounds.elias_upper_bound(10,2,3,algorithm="gap") # optional - gap_package_guava
475475
232
476476
"""
477477
_check_n_q_d(n, q, d, field_based=False)

src/sage/coding/code_constructions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ def ToricCode(P,F):
731731
[36, 5] linear code over GF(7)
732732
sage: C.minimum_distance()
733733
24
734-
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
734+
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
735735
...
736736
24
737737
sage: C = codes.ToricCode([[-2,-2],[-1,-2],[-1,-1],[-1,0],
@@ -740,7 +740,7 @@ def ToricCode(P,F):
740740
[16, 9] linear code over GF(5)
741741
sage: C.minimum_distance()
742742
6
743-
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
743+
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
744744
6
745745
sage: C = codes.ToricCode([[0,0],[1,1],[1,2],[1,3],[1,4],[2,1],
746746
....: [2,2],[2,3],[3,1],[3,2],[4,1]], GF(8,"a"))

src/sage/coding/databases.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ def best_linear_code_in_guava(n, k, F):
3535
3636
EXAMPLES::
3737
38-
sage: codes.databases.best_linear_code_in_guava(10,5,GF(2)) # long time; optional - gap_packages (Guava package)
38+
sage: codes.databases.best_linear_code_in_guava(10,5,GF(2)) # long time; optional - gap_package_guava
3939
[10, 5] linear code over GF(2)
40-
sage: libgap.LoadPackage('guava') # long time; optional - gap_packages (Guava package)
40+
sage: libgap.LoadPackage('guava') # long time; optional - gap_package_guava
4141
...
42-
sage: libgap.BestKnownLinearCode(10,5,libgap.GF(2)) # long time; optional - gap_packages (Guava package)
42+
sage: libgap.BestKnownLinearCode(10,5,libgap.GF(2)) # long time; optional - gap_package_guava
4343
a linear [10,5,4]2..4 shortened code
4444
4545
This means that the best possible binary linear code of length 10 and
@@ -86,8 +86,8 @@ def bounds_on_minimum_distance_in_guava(n, k, F):
8686
8787
EXAMPLES::
8888
89-
sage: gap_rec = codes.databases.bounds_on_minimum_distance_in_guava(10,5,GF(2)) # optional - gap_packages (Guava package)
90-
sage: gap_rec.Display() # optional - gap_packages (Guava package)
89+
sage: gap_rec = codes.databases.bounds_on_minimum_distance_in_guava(10,5,GF(2)) # optional - gap_package_guava
90+
sage: gap_rec.Display() # optional - gap_package_guava
9191
rec(
9292
construction := [ <Operation "ShortenedCode">,
9393
[ [ <Operation "UUVCode">,

src/sage/coding/guava.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def QuasiQuadraticResidueCode(p):
6060
6161
EXAMPLES::
6262
63-
sage: C = codes.QuasiQuadraticResidueCode(11); C # optional - gap_packages (Guava package)
63+
sage: C = codes.QuasiQuadraticResidueCode(11); C # optional - gap_package_guava
6464
[22, 11] linear code over GF(2)
6565
6666
These are self-orthogonal in general and self-dual when `p \equiv 3 \pmod 4`.
@@ -93,9 +93,9 @@ def RandomLinearCodeGuava(n, k, F):
9393
9494
EXAMPLES::
9595
96-
sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C # optional - gap_packages (Guava package)
96+
sage: C = codes.RandomLinearCodeGuava(30,15,GF(2)); C # optional - gap_package_guava
9797
[30, 15] linear code over GF(2)
98-
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C # optional - gap_packages (Guava package)
98+
sage: C = codes.RandomLinearCodeGuava(10,5,GF(4,'a')); C # optional - gap_package_guava
9999
[10, 5] linear code over GF(4)
100100
101101
AUTHOR: David Joyner (11-2005)

src/sage/coding/linear_code.py

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ def __init__(self, base_field, length, default_encoder_name, default_decoder_nam
410410
1
411411
sage: C.is_self_orthogonal()
412412
False
413-
sage: print(C.divisor()) #long time
413+
sage: print(C.divisor()) #long time
414414
1
415415
"""
416416
from sage.coding.information_set_decoder import LinearCodeInformationSetDecoder
@@ -910,12 +910,12 @@ def covering_radius(self):
910910
EXAMPLES::
911911
912912
sage: C = codes.HammingCode(GF(2), 5)
913-
sage: C.covering_radius() # optional - gap_packages (Guava package)
913+
sage: C.covering_radius() # optional - gap_package_guava
914914
...
915915
1
916916
917917
sage: C = codes.random_linear_code(GF(263), 5, 1)
918-
sage: C.covering_radius() # optional - gap_packages (Guava package)
918+
sage: C.covering_radius() # optional - gap_package_guava
919919
Traceback (most recent call last):
920920
...
921921
NotImplementedError: the GAP algorithm that Sage is using
@@ -1374,7 +1374,7 @@ def minimum_distance(self, algorithm=None):
13741374
sage: C.minimum_distance(algorithm="gap") # optional - sage.libs.gap
13751375
3
13761376
sage: libgap.SetAllInfoLevels(0) # to suppress extra info messages # optional - sage.libs.gap
1377-
sage: C.minimum_distance(algorithm="guava") # optional - gap_packages (Guava package)
1377+
sage: C.minimum_distance(algorithm="guava") # optional - gap_package_guava
13781378
...
13791379
3
13801380
@@ -1612,13 +1612,13 @@ def permutation_automorphism_group(self, algorithm="partition"):
16121612
[5, 3] Hamming Code over GF(4)
16131613
sage: G = C.permutation_automorphism_group(algorithm="partition"); G # optional - sage.groups
16141614
Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
1615-
sage: GG = C.permutation_automorphism_group(algorithm="codecan") # long time, optional - sage.groups
1616-
sage: GG == G # long time, optional - sage.groups
1615+
sage: GG = C.permutation_automorphism_group(algorithm="codecan") # long time, optional - sage.groups
1616+
sage: GG == G # long time, optional - sage.groups
16171617
True
1618-
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_packages (Guava package) sage.groups
1618+
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_package_guava sage.groups
16191619
Permutation Group with generators [(1,3)(4,5), (1,4)(3,5)]
16201620
sage: C = codes.GolayCode(GF(3), True)
1621-
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_packages (Guava package) sage.groups
1621+
sage: C.permutation_automorphism_group(algorithm="gap") # optional - gap_package_guava sage.groups
16221622
Permutation Group with generators
16231623
[(5,7)(6,11)(8,9)(10,12), (4,6,11)(5,8,12)(7,10,9), (3,4)(6,8)(9,11)(10,12),
16241624
(2,3)(6,11)(8,12)(9,10), (1,2)(5,10)(7,12)(8,9)]
@@ -1839,23 +1839,25 @@ def weight_distribution(self, algorithm=None):
18391839
[1, 0, 0, 30, 15, 18]
18401840
sage: C = codes.HammingCode(GF(2), 3); C
18411841
[7, 4] Hamming Code over GF(2)
1842-
sage: C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
1842+
sage: C.weight_distribution(algorithm="leon") # optional - gap_package_guava
18431843
[1, 0, 0, 7, 7, 0, 0, 1]
18441844
sage: C.weight_distribution(algorithm="gap") # optional - sage.libs.gap
18451845
[1, 0, 0, 7, 7, 0, 0, 1]
18461846
sage: C.weight_distribution(algorithm="binary")
18471847
[1, 0, 0, 7, 7, 0, 0, 1]
1848+
1849+
sage: # optional - gap_package_guava
18481850
sage: C = codes.HammingCode(GF(3), 3); C
18491851
[13, 10] Hamming Code over GF(3)
1850-
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
1852+
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
18511853
True
18521854
sage: C = codes.HammingCode(GF(5), 2); C
18531855
[6, 4] Hamming Code over GF(5)
1854-
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
1856+
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
18551857
True
18561858
sage: C = codes.HammingCode(GF(7), 2); C
18571859
[8, 6] Hamming Code over GF(7)
1858-
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon") # optional - gap_packages (Guava package)
1860+
sage: C.weight_distribution() == C.weight_distribution(algorithm="leon")
18591861
True
18601862
18611863
"""
@@ -2001,14 +2003,17 @@ def zeta_polynomial(self, name="T"):
20012003
sage: C = codes.HammingCode(GF(2), 3)
20022004
sage: C.zeta_polynomial()
20032005
2/5*T^2 + 2/5*T + 1/5
2004-
sage: C = codes.databases.best_linear_code_in_guava(6,3,GF(2)) # optional - gap_packages (Guava package)
2005-
sage: C.minimum_distance() # optional - gap_packages (Guava package)
2006+
2007+
sage: C = codes.databases.best_linear_code_in_guava(6, 3, GF(2)) # optional - gap_package_guava
2008+
sage: C.minimum_distance() # optional - gap_package_guava
20062009
3
2007-
sage: C.zeta_polynomial() # optional - gap_packages (Guava package)
2010+
sage: C.zeta_polynomial() # optional - gap_package_guava
20082011
2/5*T^2 + 2/5*T + 1/5
2012+
20092013
sage: C = codes.HammingCode(GF(2), 4)
20102014
sage: C.zeta_polynomial()
20112015
16/429*T^6 + 16/143*T^5 + 80/429*T^4 + 32/143*T^3 + 30/143*T^2 + 2/13*T + 1/13
2016+
20122017
sage: F.<z> = GF(4,"z")
20132018
sage: MS = MatrixSpace(F, 3, 6)
20142019
sage: G = MS([[1,0,0,1,z,z],[0,1,0,z,1,z],[0,0,1,z,z,1]])
@@ -2601,7 +2606,7 @@ class LinearCodeSyndromeDecoder(Decoder):
26012606
We build a first syndrome decoder, and pick a ``maximum_error_weight``
26022607
smaller than both the covering radius and half the minimum distance::
26032608
2604-
sage: D = C.decoder("Syndrome", maximum_error_weight = 1)
2609+
sage: D = C.decoder("Syndrome", maximum_error_weight=1)
26052610
sage: D.decoder_type()
26062611
{'always-succeed', 'bounded_distance', 'hard-decision'}
26072612
sage: D.decoding_radius()
@@ -2614,7 +2619,7 @@ class LinearCodeSyndromeDecoder(Decoder):
26142619
``maximum_error_weight`` is chosen to be bigger than half the minimum distance,
26152620
but lower than the covering radius::
26162621
2617-
sage: D = C.decoder("Syndrome", maximum_error_weight = 3)
2622+
sage: D = C.decoder("Syndrome", maximum_error_weight=3)
26182623
sage: D.decoder_type()
26192624
{'bounded_distance', 'hard-decision', 'might-error'}
26202625
sage: D.decoding_radius()
@@ -2628,10 +2633,10 @@ class LinearCodeSyndromeDecoder(Decoder):
26282633
And now, we build a third syndrome decoder, whose ``maximum_error_weight``
26292634
is bigger than both the covering radius and half the minimum distance::
26302635
2631-
sage: D = C.decoder("Syndrome", maximum_error_weight = 5) # long time
2632-
sage: D.decoder_type() # long time
2636+
sage: D = C.decoder("Syndrome", maximum_error_weight=5) # long time
2637+
sage: D.decoder_type() # long time
26332638
{'complete', 'hard-decision', 'might-error'}
2634-
sage: D.decoding_radius() # long time
2639+
sage: D.decoding_radius() # long time
26352640
4
26362641
26372642
In that case, the decoder might still return an unexpected codeword, but

src/sage/coding/linear_code_no_metric.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,8 +1004,8 @@ def is_self_orthogonal(self):
10041004
sage: C = codes.HammingCode(GF(2), 3)
10051005
sage: C.is_self_orthogonal()
10061006
False
1007-
sage: C = codes.QuasiQuadraticResidueCode(11) # optional - gap_packages (Guava package)
1008-
sage: C.is_self_orthogonal() # optional - gap_packages (Guava package)
1007+
sage: C = codes.QuasiQuadraticResidueCode(11) # optional - gap_package_guava
1008+
sage: C.is_self_orthogonal() # optional - gap_package_guava
10091009
True
10101010
"""
10111011
return self.is_subcode(self.dual_code())

src/sage/combinat/designs/block_design.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,8 @@ def ProjectiveGeometryDesign(n, d, F, algorithm=None, point_coordinates=True, ch
245245
246246
Check that the constructor using gap also works::
247247
248-
sage: BD = designs.ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # optional - gap_packages (design package)
249-
sage: BD.is_t_design(return_parameters=True) # optional - gap_packages (design package)
248+
sage: BD = designs.ProjectiveGeometryDesign(2, 1, GF(2), algorithm="gap") # optional - gap_package_design
249+
sage: BD.is_t_design(return_parameters=True) # optional - gap_package_design
250250
(True, (2, 7, 3, 1))
251251
"""
252252
try:
@@ -934,12 +934,12 @@ def WittDesign(n):
934934
935935
EXAMPLES::
936936
937-
sage: BD = designs.WittDesign(9) # optional - gap_packages (design package)
938-
sage: BD.is_t_design(return_parameters=True) # optional - gap_packages (design package)
937+
sage: BD = designs.WittDesign(9) # optional - gap_package_design
938+
sage: BD.is_t_design(return_parameters=True) # optional - gap_package_design
939939
(True, (2, 9, 3, 1))
940-
sage: BD # optional - gap_packages (design package)
940+
sage: BD # optional - gap_package_design
941941
Incidence structure with 9 points and 12 blocks
942-
sage: print(BD) # optional - gap_packages (design package)
942+
sage: print(BD) # optional - gap_package_design
943943
Incidence structure with 9 points and 12 blocks
944944
"""
945945
libgap.load_package("design")

src/sage/combinat/designs/database.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4464,9 +4464,9 @@ def HigmanSimsDesign():
44644464
44654465
EXAMPLES::
44664466
4467-
sage: H = designs.HigmanSimsDesign(); H # optional - gap_packages
4467+
sage: H = designs.HigmanSimsDesign(); H # optional - gap_package_design
44684468
Incidence structure with 176 points and 176 blocks
4469-
sage: H.is_t_design(return_parameters=1) # optional - gap_packages
4469+
sage: H.is_t_design(return_parameters=1) # optional - gap_package_design
44704470
(True, (2, 176, 50, 14))
44714471
44724472
Make sure that the automorphism group of this designs is isomorphic to the
@@ -4475,9 +4475,9 @@ def HigmanSimsDesign():
44754475
first of those permutation groups acts on 176 points, while the second acts
44764476
on 100::
44774477
4478-
sage: gH = H.automorphism_group() # optional - gap_packages
4479-
sage: gG = graphs.HigmanSimsGraph().automorphism_group() # optional - gap_packages
4480-
sage: gG.is_isomorphic(gG) # long time # optional - gap_packages
4478+
sage: gH = H.automorphism_group() # optional - gap_package_design
4479+
sage: gG = graphs.HigmanSimsGraph().automorphism_group() # optional - gap_package_design
4480+
sage: gG.is_isomorphic(gG) # long time, optional - gap_package_design
44814481
True
44824482
44834483
REFERENCE:

src/sage/combinat/designs/design_catalog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
This module gathers all designs that can be reached through
55
``designs.<tab>``. Example with the Witt design on 24 points::
66
7-
sage: designs.WittDesign(24) # optional - gap_packages
7+
sage: designs.WittDesign(24) # optional - gap_package_design
88
Incidence structure with 24 points and 759 blocks
99
1010
Or a Steiner Triple System on 19 points::

0 commit comments

Comments
 (0)