passagemath-combinat 10.6.1__cp312-cp312-musllinux_1_2_aarch64.whl → 10.8.1a1__cp312-cp312-musllinux_1_2_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/METADATA +17 -20
  3. {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/RECORD +220 -218
  4. {passagemath_combinat-10.6.1.dist-info → passagemath_combinat-10.8.1a1.dist-info}/WHEEL +1 -1
  5. passagemath_combinat-10.8.1a1.dist-info/top_level.txt +3 -0
  6. sage/algebras/affine_nil_temperley_lieb.py +3 -3
  7. sage/algebras/all.py +0 -1
  8. sage/algebras/askey_wilson.py +1 -1
  9. sage/algebras/associated_graded.py +2 -2
  10. sage/algebras/cellular_basis.py +3 -6
  11. sage/algebras/cluster_algebra.py +2 -3
  12. sage/algebras/down_up_algebra.py +6 -6
  13. sage/algebras/free_algebra.py +3 -32
  14. sage/algebras/free_algebra_element.py +21 -25
  15. sage/algebras/free_algebra_quotient_element.py +9 -38
  16. sage/algebras/free_zinbiel_algebra.py +4 -3
  17. sage/algebras/hall_algebra.py +2 -2
  18. sage/algebras/hecke_algebras/ariki_koike_algebra.py +8 -8
  19. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +2 -2
  20. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +11 -14
  21. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1 -1
  22. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +5 -5
  23. sage/algebras/iwahori_hecke_algebra.py +59 -57
  24. sage/algebras/jordan_algebra.py +97 -89
  25. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +6 -6
  26. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +14 -12
  27. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +6 -6
  28. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +4 -4
  29. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +13 -13
  30. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +8 -6
  31. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +7 -5
  32. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +7 -7
  33. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +6 -5
  34. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +12 -11
  35. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +3 -3
  36. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +3 -3
  37. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +11 -11
  38. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +3 -3
  39. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +8 -7
  40. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +9 -8
  41. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +6 -5
  42. sage/algebras/nil_coxeter_algebra.py +4 -4
  43. sage/algebras/q_commuting_polynomials.py +6 -6
  44. sage/algebras/q_system.py +3 -3
  45. sage/algebras/quantum_clifford.py +8 -8
  46. sage/algebras/quantum_groups/fock_space.py +48 -8
  47. sage/algebras/quantum_groups/quantum_group_gap.py +5 -7
  48. sage/algebras/quantum_matrix_coordinate_algebra.py +7 -7
  49. sage/algebras/quantum_oscillator.py +3 -3
  50. sage/algebras/quaternion_algebra_element.py +5 -3
  51. sage/algebras/schur_algebra.py +3 -3
  52. sage/algebras/shuffle_algebra.py +5 -8
  53. sage/algebras/splitting_algebra.py +129 -85
  54. sage/algebras/tensor_algebra.py +7 -7
  55. sage/algebras/yangian.py +16 -15
  56. sage/algebras/yokonuma_hecke_algebra.py +13 -11
  57. sage/combinat/all.py +9 -0
  58. sage/combinat/all__sagemath_combinat.py +1 -0
  59. sage/combinat/alternating_sign_matrix.py +36 -29
  60. sage/combinat/baxter_permutations.py +32 -12
  61. sage/combinat/bijectionist.py +13 -17
  62. sage/combinat/chas/fsym.py +6 -6
  63. sage/combinat/chas/wqsym.py +23 -29
  64. sage/combinat/colored_permutations.py +9 -11
  65. sage/combinat/colored_permutations_representations.py +13 -12
  66. sage/combinat/composition_tableau.py +2 -2
  67. sage/combinat/constellation.py +57 -30
  68. sage/combinat/crystals/affine_factorization.py +5 -4
  69. sage/combinat/crystals/alcove_path.py +2 -2
  70. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +3 -2
  71. sage/combinat/crystals/infinity_crystals.py +18 -18
  72. sage/combinat/crystals/kac_modules.py +1 -1
  73. sage/combinat/crystals/kirillov_reshetikhin.py +2 -2
  74. sage/combinat/crystals/letters.cpython-312-aarch64-linux-musl.so +0 -0
  75. sage/combinat/crystals/littelmann_path.py +1 -1
  76. sage/combinat/crystals/pbw_datum.cpython-312-aarch64-linux-musl.so +0 -0
  77. sage/combinat/crystals/pbw_datum.pyx +3 -2
  78. sage/combinat/crystals/spins.cpython-312-aarch64-linux-musl.so +0 -0
  79. sage/combinat/crystals/tensor_product.py +7 -5
  80. sage/combinat/crystals/tensor_product_element.cpython-312-aarch64-linux-musl.so +0 -0
  81. sage/combinat/debruijn_sequence.cpython-312-aarch64-linux-musl.so +0 -0
  82. sage/combinat/debruijn_sequence.pyx +1 -2
  83. sage/combinat/degree_sequences.cpython-312-aarch64-linux-musl.so +0 -0
  84. sage/combinat/degree_sequences.pyx +241 -188
  85. sage/combinat/derangements.py +28 -22
  86. sage/combinat/diagram_algebras.py +12 -14
  87. sage/combinat/dyck_word.py +15 -14
  88. sage/combinat/e_one_star.py +1 -1
  89. sage/combinat/expnums.cpython-312-aarch64-linux-musl.so +0 -0
  90. sage/combinat/fast_vector_partitions.cpython-312-aarch64-linux-musl.so +0 -0
  91. sage/combinat/fqsym.py +13 -19
  92. sage/combinat/free_dendriform_algebra.py +2 -2
  93. sage/combinat/free_prelie_algebra.py +2 -2
  94. sage/combinat/fully_commutative_elements.py +8 -8
  95. sage/combinat/fully_packed_loop.py +9 -9
  96. sage/combinat/gelfand_tsetlin_patterns.py +4 -5
  97. sage/combinat/gray_codes.py +3 -4
  98. sage/combinat/grossman_larson_algebras.py +2 -2
  99. sage/combinat/growth.py +13 -13
  100. sage/combinat/hall_polynomial.py +1 -1
  101. sage/combinat/hillman_grassl.py +1 -1
  102. sage/combinat/integer_matrices.py +5 -7
  103. sage/combinat/k_tableau.py +8 -7
  104. sage/combinat/kazhdan_lusztig.py +3 -3
  105. sage/combinat/key_polynomial.py +845 -298
  106. sage/combinat/knutson_tao_puzzles.py +11 -13
  107. sage/combinat/matrices/hadamard_matrix.py +1 -1
  108. sage/combinat/matrices/latin.py +75 -92
  109. sage/combinat/misc.py +3 -3
  110. sage/combinat/multiset_partition_into_sets_ordered.py +27 -10
  111. sage/combinat/ncsf_qsym/generic_basis_code.py +5 -5
  112. sage/combinat/ncsf_qsym/ncsf.py +6 -5
  113. sage/combinat/ncsf_qsym/qsym.py +9 -17
  114. sage/combinat/ncsym/ncsym.py +8 -12
  115. sage/combinat/nu_dyck_word.py +1 -1
  116. sage/combinat/parallelogram_polyomino.py +3 -5
  117. sage/combinat/parking_functions.py +6 -5
  118. sage/combinat/partition_algebra.py +22 -57
  119. sage/combinat/partition_kleshchev.py +4 -4
  120. sage/combinat/partition_tuple.py +12 -10
  121. sage/combinat/plane_partition.py +10 -13
  122. sage/combinat/positive_integer_semigroup_test.py +17 -0
  123. sage/combinat/q_bernoulli.cpython-312-aarch64-linux-musl.so +0 -0
  124. sage/combinat/quickref.py +2 -2
  125. sage/combinat/recognizable_series.py +2 -2
  126. sage/combinat/regular_sequence.py +7 -7
  127. sage/combinat/regular_sequence_bounded.py +15 -21
  128. sage/combinat/restricted_growth.py +3 -3
  129. sage/combinat/ribbon.py +3 -3
  130. sage/combinat/rigged_configurations/bijection.py +3 -3
  131. sage/combinat/rigged_configurations/rigged_partition.cpython-312-aarch64-linux-musl.so +0 -0
  132. sage/combinat/rsk.py +2 -0
  133. sage/combinat/schubert_polynomial.py +11 -2
  134. sage/combinat/set_partition.py +3 -7
  135. sage/combinat/set_partition_iterator.cpython-312-aarch64-linux-musl.so +0 -0
  136. sage/combinat/set_partition_iterator.pyx +0 -1
  137. sage/combinat/set_partition_ordered.py +2 -2
  138. sage/combinat/sf/classical.py +1 -1
  139. sage/combinat/sf/dual.py +4 -8
  140. sage/combinat/sf/elementary.py +13 -7
  141. sage/combinat/sf/hall_littlewood.py +10 -8
  142. sage/combinat/sf/homogeneous.py +6 -3
  143. sage/combinat/sf/jack.py +11 -9
  144. sage/combinat/sf/llt.py +4 -5
  145. sage/combinat/sf/macdonald.py +10 -11
  146. sage/combinat/sf/monomial.py +6 -0
  147. sage/combinat/sf/ns_macdonald.py +92 -51
  148. sage/combinat/sf/powersum.py +9 -14
  149. sage/combinat/sf/schur.py +6 -0
  150. sage/combinat/sf/sf.py +21 -19
  151. sage/combinat/sf/sfa.py +13 -64
  152. sage/combinat/shifted_primed_tableau.py +5 -7
  153. sage/combinat/shuffle.py +1 -1
  154. sage/combinat/sine_gordon.py +18 -38
  155. sage/combinat/skew_partition.py +9 -12
  156. sage/combinat/skew_tableau.py +2 -7
  157. sage/combinat/sloane_functions.py +1 -1
  158. sage/combinat/species/all.py +67 -2
  159. sage/combinat/species/characteristic_species.py +3 -0
  160. sage/combinat/species/composition_species.py +3 -0
  161. sage/combinat/species/cycle_species.py +4 -0
  162. sage/combinat/species/empty_species.py +3 -0
  163. sage/combinat/species/functorial_composition_species.py +3 -0
  164. sage/combinat/species/generating_series.py +3 -0
  165. sage/combinat/species/library.py +3 -0
  166. sage/combinat/species/linear_order_species.py +3 -0
  167. sage/combinat/species/partition_species.py +3 -0
  168. sage/combinat/species/permutation_species.py +4 -0
  169. sage/combinat/species/product_species.py +3 -0
  170. sage/combinat/species/recursive_species.py +3 -0
  171. sage/combinat/species/set_species.py +3 -0
  172. sage/combinat/species/species.py +13 -7
  173. sage/combinat/species/structure.py +8 -9
  174. sage/combinat/species/subset_species.py +3 -0
  175. sage/combinat/species/sum_species.py +3 -0
  176. sage/combinat/subword.py +4 -1
  177. sage/combinat/subword_complex.py +7 -7
  178. sage/combinat/subword_complex_c.cpython-312-aarch64-linux-musl.so +0 -0
  179. sage/combinat/superpartition.py +1 -1
  180. sage/combinat/symmetric_group_algebra.py +9 -9
  181. sage/combinat/symmetric_group_representations.py +5 -5
  182. sage/combinat/t_sequences.py +4 -4
  183. sage/combinat/tableau.py +3 -4
  184. sage/combinat/tableau_tuple.py +2 -2
  185. sage/combinat/tiling.py +39 -42
  186. sage/combinat/triangles_FHM.py +38 -15
  187. sage/combinat/tutorial.py +2 -2
  188. sage/combinat/vector_partition.py +43 -31
  189. sage/combinat/words/abstract_word.py +4 -4
  190. sage/combinat/words/alphabet.py +12 -12
  191. sage/combinat/words/finite_word.py +25 -229
  192. sage/combinat/words/infinite_word.py +1 -1
  193. sage/combinat/words/morphic.py +13 -13
  194. sage/combinat/words/morphism.py +3 -12
  195. sage/combinat/words/paths.py +16 -17
  196. sage/combinat/words/word.py +60 -35
  197. sage/combinat/words/word_char.cpython-312-aarch64-linux-musl.so +0 -0
  198. sage/combinat/words/word_char.pyx +46 -7
  199. sage/combinat/words/word_datatypes.cpython-312-aarch64-linux-musl.so +0 -0
  200. sage/combinat/words/word_generators.py +39 -38
  201. sage/databases/findstat.py +72 -31
  202. sage/databases/oeis.py +125 -25
  203. sage/databases/sloane.py +14 -8
  204. sage/games/sudoku_backtrack.cpython-312-aarch64-linux-musl.so +0 -0
  205. sage/groups/indexed_free_group.py +3 -4
  206. sage/libs/symmetrica/symmetrica.cpython-312-aarch64-linux-musl.so +0 -0
  207. sage/libs/symmetrica/symmetrica.pxi +1 -0
  208. sage/monoids/automatic_semigroup.py +1 -3
  209. sage/monoids/free_abelian_monoid.py +7 -33
  210. sage/monoids/free_abelian_monoid_element.cpython-312-aarch64-linux-musl.so +0 -0
  211. sage/monoids/free_monoid.py +8 -40
  212. sage/monoids/free_monoid_element.py +1 -9
  213. sage/monoids/string_monoid.py +5 -2
  214. sage/monoids/string_monoid_element.py +12 -66
  215. sage/rings/all__sagemath_combinat.py +7 -0
  216. sage/sat/solvers/__init__.py +3 -4
  217. sage/sat/solvers/cryptominisat.py +2 -3
  218. sage/sat/solvers/picosat.py +2 -3
  219. sage/sat/solvers/sat_lp.py +2 -2
  220. sage/sat/solvers/satsolver.cpython-312-aarch64-linux-musl.so +0 -0
  221. passagemath_combinat-10.6.1.dist-info/top_level.txt +0 -2
@@ -1043,7 +1043,7 @@ class OrderedMultisetPartitionIntoSets(ClonableArray,
1043
1043
  w = []
1044
1044
  v = [0]
1045
1045
  for eblock in ew:
1046
- for (i,wj) in sorted(eblock, reverse=True):
1046
+ for i, wj in sorted(eblock, reverse=True):
1047
1047
  vj = v[-1]
1048
1048
  if i == 0:
1049
1049
  vj += 1
@@ -1561,7 +1561,7 @@ class OrderedMultisetPartitionsIntoSets(UniqueRepresentation, Parent):
1561
1561
 
1562
1562
  # pop keys with empty values, with the exception of 'size' or 'order'
1563
1563
  self.constraints = {}
1564
- for (key,val) in constraints.items():
1564
+ for key, val in constraints.items():
1565
1565
  if val:
1566
1566
  self.constraints[key] = val
1567
1567
  elif key in ("size", "order", "length") and val is not None:
@@ -1954,7 +1954,8 @@ class OrderedMultisetPartitionsIntoSets(UniqueRepresentation, Parent):
1954
1954
 
1955
1955
  # slice by 'order'
1956
1956
  if "alphabet" in fc:
1957
- no_alpha = {k: v for (k, v) in self.constraints.items() if k != "alphabet"}
1957
+ no_alpha = {k: v for k, v in self.constraints.items()
1958
+ if k != "alphabet"}
1958
1959
  return OrderedMultisetPartitionsIntoSets(fc["alphabet"], size, **no_alpha)
1959
1960
 
1960
1961
  # slice by 'size'
@@ -2028,7 +2029,12 @@ class OrderedMultisetPartitionsIntoSets_n(OrderedMultisetPartitionsIntoSets):
2028
2029
  TESTS::
2029
2030
 
2030
2031
  sage: C = OrderedMultisetPartitionsIntoSets(Integer(4))
2031
- sage: TestSuite(C).run()
2032
+
2033
+ We have to skip checking that elements are produced uniformly
2034
+ at random by :meth:`random_element`, because this is not the
2035
+ case.::
2036
+
2037
+ sage: TestSuite(C).run(skip="_test_random")
2032
2038
  sage: C2 = OrderedMultisetPartitionsIntoSets(int(4))
2033
2039
  sage: C is C2
2034
2040
  True
@@ -2202,18 +2208,24 @@ class OrderedMultisetPartitionsIntoSets_X(OrderedMultisetPartitionsIntoSets):
2202
2208
  TESTS::
2203
2209
 
2204
2210
  sage: C = OrderedMultisetPartitionsIntoSets([1,1,4])
2205
- sage: TestSuite(C).run()
2211
+
2212
+ We have to skip checking that elements are produced uniformly
2213
+ at random by :meth:`random_element`, because this is not the
2214
+ case.::
2215
+
2216
+ sage: TestSuite(C).run(skip="_test_random")
2206
2217
 
2207
2218
  sage: C2 = OrderedMultisetPartitionsIntoSets({1:2, 4:1})
2208
2219
  sage: C is C2
2209
2220
  True
2221
+
2210
2222
  """
2211
2223
  self._X = X
2212
2224
  # sort the multiset
2213
- if all((k in ZZ and k > 0) for (k,v) in X):
2214
- self._Xtup = tuple([k for (k,v) in sorted(X) for _ in range(v)])
2225
+ if all((k in ZZ and k > 0) for k, v in X):
2226
+ self._Xtup = tuple([k for k, v in sorted(X) for _ in range(v)])
2215
2227
  else:
2216
- self._Xtup = tuple([k for (k,v) in sorted(X, key=str) for _ in range(v)])
2228
+ self._Xtup = tuple([k for k, v in sorted(X, key=str) for _ in range(v)])
2217
2229
  OrderedMultisetPartitionsIntoSets.__init__(self, True)
2218
2230
 
2219
2231
  def _repr_(self):
@@ -2379,7 +2391,7 @@ class OrderedMultisetPartitionsIntoSets_X_constraints(OrderedMultisetPartitionsI
2379
2391
  sage: TestSuite(C).run()
2380
2392
  """
2381
2393
  self._X = X
2382
- self._Xtup = tuple(k for (k,v) in sorted(X) for _ in range(v))
2394
+ self._Xtup = tuple(k for k, v in sorted(X) for _ in range(v))
2383
2395
  OrderedMultisetPartitionsIntoSets.__init__(self, True, weight=X, **constraints)
2384
2396
 
2385
2397
  def _repr_(self):
@@ -2415,7 +2427,12 @@ class OrderedMultisetPartitionsIntoSets_alph_d(OrderedMultisetPartitionsIntoSets
2415
2427
  TESTS::
2416
2428
 
2417
2429
  sage: C = OrderedMultisetPartitionsIntoSets(3, 2)
2418
- sage: TestSuite(C).run()
2430
+
2431
+ We have to skip checking that elements are produced uniformly
2432
+ at random by :meth:`random_element`, because this is not the
2433
+ case.::
2434
+
2435
+ sage: TestSuite(C).run(skip="_test_random")
2419
2436
 
2420
2437
  sage: C2 = OrderedMultisetPartitionsIntoSets([1,2,3], 2)
2421
2438
  sage: C is C2
@@ -12,7 +12,7 @@ AUTHORS:
12
12
  - Franco Saliola
13
13
  - Chris Berg
14
14
  """
15
- #*****************************************************************************
15
+ # ***************************************************************************
16
16
  # Copyright (C) 2010 Jason Bandlow <jbandlow@gmail.com>,
17
17
  # 2012 Franco Saliola <saliola@gmail.com>,
18
18
  #
@@ -25,8 +25,8 @@ AUTHORS:
25
25
  #
26
26
  # The full text of the GPL is available at:
27
27
  #
28
- # http://www.gnu.org/licenses/
29
- #*****************************************************************************
28
+ # https://www.gnu.org/licenses/
29
+ # ***************************************************************************
30
30
 
31
31
  from sage.misc.cachefunc import cached_method
32
32
  from sage.categories.realizations import Category_realization_of_parent
@@ -950,7 +950,7 @@ class BasesOfQSymOrNCSF(Category_realization_of_parent):
950
950
  EXAMPLES::
951
951
 
952
952
  sage: S = NonCommutativeSymmetricFunctions(QQ).S()
953
- sage: (x, y) = (S[2], S[3])
953
+ sage: x, y = S[2], S[3]
954
954
  sage: x.degree()
955
955
  2
956
956
  sage: (x^3 + 4*y^2).degree()
@@ -961,7 +961,7 @@ class BasesOfQSymOrNCSF(Category_realization_of_parent):
961
961
  ::
962
962
 
963
963
  sage: F = QuasiSymmetricFunctions(QQ).F()
964
- sage: (x, y) = (F[2], F[3])
964
+ sage: x, y = F[2], F[3]
965
965
  sage: x.degree()
966
966
  2
967
967
  sage: (x^3 + 4*y^2).degree()
@@ -4,7 +4,7 @@
4
4
  Noncommutative symmetric functions
5
5
  """
6
6
  # ****************************************************************************
7
- # Copyright (C) 2009 Nicolas M. Thiery <nthiery at users.sf.net>,
7
+ # Copyright (C) 2009 Nicolas M. Thiéry <nthiery at users.sf.net>,
8
8
  # 2012 Franco Saliola <saliola@gmail.com>,
9
9
  # 2012 Chris Berg <chrisjamesberg@gmail.com>
10
10
  #
@@ -17,7 +17,7 @@ Noncommutative symmetric functions
17
17
  #
18
18
  # The full text of the GPL is available at:
19
19
  #
20
- # http://www.gnu.org/licenses/
20
+ # https://www.gnu.org/licenses/
21
21
  # ****************************************************************************
22
22
 
23
23
  # TODO: Make Coercion run faster between multiple bases
@@ -401,7 +401,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
401
401
  sage: TestSuite(complete).run()
402
402
  """
403
403
 
404
- def __init__(self, R):
404
+ def __init__(self, R) -> None:
405
405
  r"""
406
406
  TESTS::
407
407
 
@@ -443,7 +443,7 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
443
443
  Phi.algebra_morphism(Phi._to_complete_on_generators,
444
444
  codomain=complete).register_as_coercion()
445
445
 
446
- def _repr_(self): # could be taken care of by the category
446
+ def _repr_(self) -> str: # could be taken care of by the category
447
447
  r"""
448
448
  EXAMPLES::
449
449
 
@@ -470,7 +470,8 @@ class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
470
470
  """
471
471
  return self.complete()
472
472
 
473
- _shorthands = tuple(['S', 'R', 'L', 'Phi', 'Psi', 'nM', 'I', 'dQS', 'dYQS', 'ZL', 'ZR'])
473
+ _shorthands = ('S', 'R', 'L', 'Phi', 'Psi', 'nM', 'I',
474
+ 'dQS', 'dYQS', 'ZL', 'ZR')
474
475
 
475
476
  def dual(self):
476
477
  r"""
@@ -92,15 +92,15 @@ from sage.combinat.partition import Partitions, _Partitions
92
92
  from sage.combinat.free_module import CombinatorialFreeModule
93
93
  from sage.combinat.sf.sf import SymmetricFunctions
94
94
  from sage.combinat.ncsf_qsym.generic_basis_code import BasesOfQSymOrNCSF
95
- from sage.combinat.ncsf_qsym.combinatorics import (number_of_fCT, number_of_SSRCT,
96
- compositions_order, coeff_pi, coeff_lp, coeff_sp, coeff_ell)
95
+ from sage.combinat.ncsf_qsym.combinatorics import (
96
+ number_of_fCT, number_of_SSRCT,
97
+ compositions_order, coeff_pi, coeff_lp, coeff_sp, coeff_ell)
97
98
  from sage.combinat.ncsf_qsym.ncsf import NonCommutativeSymmetricFunctions
98
99
  from sage.combinat.words.word import Word
99
100
  from sage.combinat.tableau import StandardTableaux
100
101
  from sage.misc.bindable_class import BindableClass
101
102
  from sage.misc.cachefunc import cached_method
102
103
  from sage.misc.lazy_import import lazy_import
103
- from sage.misc.superseded import deprecated_function_alias
104
104
  from sage.structure.parent import Parent
105
105
  from sage.structure.unique_representation import UniqueRepresentation
106
106
 
@@ -547,7 +547,7 @@ class QuasiSymmetricFunctions(UniqueRepresentation, Parent):
547
547
  True
548
548
  """
549
549
 
550
- def __init__(self, R):
550
+ def __init__(self, R) -> None:
551
551
  """
552
552
  The Hopf algebra of quasi-symmetric functions.
553
553
  See ``QuasiSymmetricFunctions`` for full documentation.
@@ -610,7 +610,7 @@ class QuasiSymmetricFunctions(UniqueRepresentation, Parent):
610
610
  codomain=Fundamental, category=category)
611
611
  Sym_s_to_F.register_as_coercion()
612
612
 
613
- def _repr_(self):
613
+ def _repr_(self) -> str:
614
614
  r"""
615
615
  EXAMPLES::
616
616
 
@@ -633,7 +633,7 @@ class QuasiSymmetricFunctions(UniqueRepresentation, Parent):
633
633
  """
634
634
  return self.Monomial()
635
635
 
636
- _shorthands = tuple(['M', 'F', 'E', 'dI', 'QS', 'YQS', 'phi', 'psi'])
636
+ _shorthands = ('M', 'F', 'E', 'dI', 'QS', 'YQS', 'phi', 'psi')
637
637
 
638
638
  def dual(self):
639
639
  r"""
@@ -1156,8 +1156,6 @@ class QuasiSymmetricFunctions(UniqueRepresentation, Parent):
1156
1156
  result_in_M_basis = M._from_dict(dct)
1157
1157
  return parent(result_in_M_basis)
1158
1158
 
1159
- frobenius = deprecated_function_alias(36396, adams_operator)
1160
-
1161
1159
  def star_involution(self):
1162
1160
  r"""
1163
1161
  Return the image of the quasisymmetric function ``self`` under
@@ -3538,26 +3536,20 @@ class QuasiSymmetricFunctions(UniqueRepresentation, Parent):
3538
3536
 
3539
3537
  # For every composition I of size n, expand self[I] in terms
3540
3538
  # of the monomial basis M.
3541
- i = 0
3542
- for I in compositions_n:
3539
+ for i, I in enumerate(compositions_n):
3543
3540
  # M_coeffs will be M(self[I])._monomial_coefficients
3544
3541
  M_coeffs = {}
3545
3542
 
3546
3543
  self_I_in_M_basis = M.prod([from_self_gen_function(self._indices(list(J)))
3547
3544
  for J in Word(I).lyndon_factorization()])
3548
3545
 
3549
- j = 0
3550
-
3551
- for J in compositions_n:
3546
+ for j, J in enumerate(compositions_n):
3552
3547
  if J in self_I_in_M_basis._monomial_coefficients:
3553
3548
  sp = self_I_in_M_basis._monomial_coefficients[J]
3554
3549
  M_coeffs[J] = sp
3555
- transition_matrix_n[i,j] = sp
3556
-
3557
- j += 1
3550
+ transition_matrix_n[i, j] = sp
3558
3551
 
3559
3552
  from_self_cache[I] = M_coeffs
3560
- i += 1
3561
3553
 
3562
3554
  # Save the transition matrix
3563
3555
  inverse_transition_matrices[n] = transition_matrix_n
@@ -1,7 +1,7 @@
1
1
  # sage_setup: distribution = sagemath-combinat
2
2
  # sage.doctest: needs sage.combinat sage.modules
3
3
  """
4
- Symmetric functions in noncommuting variables
4
+ Symmetric functions in non-commuting variables
5
5
 
6
6
  AUTHORS:
7
7
 
@@ -294,7 +294,7 @@ class SymmetricFunctionsNonCommutingVariables(UniqueRepresentation, Parent):
294
294
  -4*p[] + 2*p[1] + p[2, 2]
295
295
  """
296
296
 
297
- def __init__(self, R):
297
+ def __init__(self, R) -> None:
298
298
  """
299
299
  Initialize ``self``.
300
300
 
@@ -310,7 +310,7 @@ class SymmetricFunctionsNonCommutingVariables(UniqueRepresentation, Parent):
310
310
  category = GradedHopfAlgebras(R).Cocommutative()
311
311
  Parent.__init__(self, category=category.WithRealizations())
312
312
 
313
- def _repr_(self):
313
+ def _repr_(self) -> str:
314
314
  r"""
315
315
  EXAMPLES::
316
316
 
@@ -332,7 +332,7 @@ class SymmetricFunctionsNonCommutingVariables(UniqueRepresentation, Parent):
332
332
  """
333
333
  return self.powersum()
334
334
 
335
- _shorthands = tuple(['chi', 'cp', 'm', 'e', 'h', 'p', 'rho', 'x'])
335
+ _shorthands = ('chi', 'cp', 'm', 'e', 'h', 'p', 'rho', 'x')
336
336
 
337
337
  def dual(self):
338
338
  r"""
@@ -400,10 +400,8 @@ class SymmetricFunctionsNonCommutingVariables(UniqueRepresentation, Parent):
400
400
  def lt(s, t):
401
401
  if s == t:
402
402
  return False
403
- for p in s:
404
- if len([z for z in t if z.intersection(p)]) != 1:
405
- return False
406
- return True
403
+ return all(len([1 for z in t if z.intersection(p)]) == 1
404
+ for p in s)
407
405
 
408
406
  p = self.realization_of().p()
409
407
  P = Poset((A.coarsenings(), lt))
@@ -1734,10 +1732,8 @@ class SymmetricFunctionsNonCommutingVariables(UniqueRepresentation, Parent):
1734
1732
  def lt(s, t):
1735
1733
  if s == t:
1736
1734
  return False
1737
- for p in s:
1738
- if len([z for z in t if z.intersection(p)]) != 1:
1739
- return False
1740
- return True
1735
+ return all(len([1 for z in t if z.intersection(p)]) == 1
1736
+ for p in s)
1741
1737
 
1742
1738
  p = self.realization_of().p()
1743
1739
  P_refine = Poset((A.refinements(), lt))
@@ -1080,7 +1080,7 @@ class NuDyckWord(CombinatorialElement):
1080
1080
  return j
1081
1081
  return False
1082
1082
 
1083
- def mutate(self, i) -> None | NuDyckWord:
1083
+ def mutate(self, i) -> NuDyckWord | None:
1084
1084
  r"""
1085
1085
  Return a new `\nu`-Dyck Word if possible.
1086
1086
 
@@ -1463,7 +1463,7 @@ class ParallelogramPolyomino(ClonableList,
1463
1463
  ....: [1, 1, 0, 1, 1, 0, 0, 0, 1, 0]
1464
1464
  ....: ]
1465
1465
  ....: )
1466
- sage: pp._to_binary_tree_Aval_Boussicault()
1466
+ sage: pp._to_binary_tree_Aval_Boussicault() # needs sage.graphs
1467
1467
  [[., [[., .], [[., [., .]], .]]], [[., .], .]]
1468
1468
 
1469
1469
  sage: pp = ParallelogramPolyomino([[0, 1], [1, 0]])
@@ -1522,7 +1522,7 @@ class ParallelogramPolyomino(ClonableList,
1522
1522
  ....: [1, 1, 0, 1, 1, 0, 0, 0, 1, 0]
1523
1523
  ....: ]
1524
1524
  ....: )
1525
- sage: pp.to_binary_tree()
1525
+ sage: pp.to_binary_tree() # needs sage.graphs
1526
1526
  [[., [[., .], [[., [., .]], .]]], [[., .], .]]
1527
1527
 
1528
1528
  sage: pp = ParallelogramPolyomino([[0, 1], [1, 0]])
@@ -3149,9 +3149,7 @@ class ParallelogramPolyomino(ClonableList,
3149
3149
  return False
3150
3150
  if self[pos[0] - 1][pos[1]] == 0:
3151
3151
  return True
3152
- if self[pos[0]][pos[1] - 1] == 0:
3153
- return True
3154
- return False
3152
+ return self[pos[0]][pos[1] - 1] == 0
3155
3153
 
3156
3154
  def box_is_root(self, box) -> bool:
3157
3155
  r"""
@@ -64,7 +64,6 @@ AUTHORS:
64
64
  # https://www.gnu.org/licenses/
65
65
  # ****************************************************************************
66
66
  from __future__ import annotations
67
- from collections.abc import Iterator
68
67
 
69
68
  from sage.rings.integer import Integer
70
69
  from sage.rings.rational_field import QQ
@@ -81,6 +80,10 @@ from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
81
80
  from sage.categories.sets_with_grading import SetsWithGrading
82
81
  from sage.structure.parent import Parent
83
82
  from sage.structure.unique_representation import UniqueRepresentation
83
+ from typing import TYPE_CHECKING
84
+
85
+ if TYPE_CHECKING:
86
+ from collections.abc import Iterator
84
87
 
85
88
 
86
89
  def is_a(x, n=None) -> bool:
@@ -1002,7 +1005,7 @@ class ParkingFunction(ClonableArray, metaclass=InheritComparisonClasscallMetacla
1002
1005
 
1003
1006
  sage: # needs sage.modules
1004
1007
  sage: R = QQ['q','t'].fraction_field()
1005
- sage: (q,t) = R.gens()
1008
+ sage: q, t = R.gens()
1006
1009
  sage: cqf = sum(t**PF.area() * PF.characteristic_quasisymmetric_function()
1007
1010
  ....: for PF in ParkingFunctions(3)); cqf
1008
1011
  (q^3+q^2*t+q*t^2+t^3+q*t)*F[1, 1, 1] + (q^2+q*t+t^2+q+t)*F[1, 2]
@@ -1399,9 +1402,7 @@ class ParkingFunctions_all(ParkingFunctions):
1399
1402
  sage: x == y
1400
1403
  True
1401
1404
  """
1402
- if isinstance(S, ParkingFunctions_n):
1403
- return True
1404
- return False
1405
+ return isinstance(S, ParkingFunctions_n)
1405
1406
 
1406
1407
 
1407
1408
  class ParkingFunctions_n(ParkingFunctions):
@@ -118,7 +118,7 @@ def SetPartitionsAk(k):
118
118
  sage: A3.random_element() #random # needs sage.symbolic
119
119
  {{1, 3, -3, -1}, {2, -2}}
120
120
 
121
- sage: A3.cardinality()
121
+ sage: A3.cardinality() # needs sage.libs.flint
122
122
  203
123
123
 
124
124
  sage: A2p5 = SetPartitionsAk(2.5); A2p5
@@ -192,7 +192,7 @@ class SetPartitionsAkhalf_k(SetPartitions_set):
192
192
  s = self.k + 1
193
193
  return "Set partitions of {1, ..., %s, -1, ..., -%s} with %s and -%s in the same block" % (s, s, s, s)
194
194
 
195
- def __contains__(self, x):
195
+ def __contains__(self, x) -> bool:
196
196
  """
197
197
  TESTS::
198
198
 
@@ -208,11 +208,8 @@ class SetPartitionsAkhalf_k(SetPartitions_set):
208
208
  if x not in SetPartitionsAk_k(self.k + 1):
209
209
  return False
210
210
 
211
- for part in x:
212
- if self.k + 1 in part and -self.k - 1 not in part:
213
- return False
214
-
215
- return True
211
+ return all(self.k + 1 not in part or -self.k - 1 in part
212
+ for part in x)
216
213
 
217
214
  def __iter__(self):
218
215
  """
@@ -326,10 +323,7 @@ class SetPartitionsSk_k(SetPartitionsAk_k):
326
323
  if not SetPartitionsAk_k.__contains__(self, x):
327
324
  return False
328
325
 
329
- if propagating_number(x) != self.k:
330
- return False
331
-
332
- return True
326
+ return propagating_number(x) == self.k
333
327
 
334
328
  def cardinality(self):
335
329
  """
@@ -385,9 +379,7 @@ class SetPartitionsSkhalf_k(SetPartitionsAkhalf_k):
385
379
  """
386
380
  if not SetPartitionsAkhalf_k.__contains__(self, x):
387
381
  return False
388
- if propagating_number(x) != self.k + 1:
389
- return False
390
- return True
382
+ return propagating_number(x) == self.k + 1
391
383
 
392
384
  def _repr_(self):
393
385
  """
@@ -506,9 +498,7 @@ class SetPartitionsIk_k(SetPartitionsAk_k):
506
498
  """
507
499
  if not SetPartitionsAk_k.__contains__(self, x):
508
500
  return False
509
- if propagating_number(x) >= self.k:
510
- return False
511
- return True
501
+ return propagating_number(x) < self.k
512
502
 
513
503
  def cardinality(self):
514
504
  """
@@ -559,9 +549,7 @@ class SetPartitionsIkhalf_k(SetPartitionsAkhalf_k):
559
549
  """
560
550
  if not SetPartitionsAkhalf_k.__contains__(self, x):
561
551
  return False
562
- if propagating_number(x) >= self.k + 1:
563
- return False
564
- return True
552
+ return propagating_number(x) < self.k + 1
565
553
 
566
554
  def _repr_(self):
567
555
  """
@@ -616,6 +604,7 @@ def SetPartitionsBk(k):
616
604
  sage: B3 = SetPartitionsBk(3); B3
617
605
  Set partitions of {1, ..., 3, -1, ..., -3} with block size 2
618
606
 
607
+ sage: # needs sage.graphs
619
608
  sage: B3.first() #random
620
609
  {{2, -2}, {1, -3}, {3, -1}}
621
610
  sage: B3.last() #random
@@ -629,6 +618,7 @@ def SetPartitionsBk(k):
629
618
  sage: B2p5 = SetPartitionsBk(2.5); B2p5
630
619
  Set partitions of {1, ..., 3, -1, ..., -3} with 3 and -3 in the same block and with block size 2
631
620
 
621
+ sage: # needs sage.graphs
632
622
  sage: B2p5.first() #random
633
623
  {{2, -1}, {3, -3}, {1, -2}}
634
624
  sage: B2p5.last() #random
@@ -669,11 +659,7 @@ class SetPartitionsBk_k(SetPartitionsAk_k):
669
659
  if not SetPartitionsAk_k.__contains__(self, x):
670
660
  return False
671
661
 
672
- for part in x:
673
- if len(part) != 2:
674
- return False
675
-
676
- return True
662
+ return all(len(part) == 2 for part in x)
677
663
 
678
664
  def cardinality(self):
679
665
  r"""
@@ -703,14 +689,14 @@ class SetPartitionsBk_k(SetPartitionsAk_k):
703
689
  """
704
690
  TESTS::
705
691
 
706
- sage: SetPartitionsBk(1).list()
692
+ sage: SetPartitionsBk(1).list() # needs sage.graphs
707
693
  [{{-1, 1}}]
708
694
 
709
695
  ::
710
696
 
711
- sage: SetPartitionsBk(2).list() #random
697
+ sage: SetPartitionsBk(2).list() #random # needs sage.graphs
712
698
  [{{2, -1}, {1, -2}}, {{2, -2}, {1, -1}}, {{1, 2}, {-1, -2}}]
713
- sage: SetPartitionsBk(3).list() #random
699
+ sage: SetPartitionsBk(3).list() #random # needs sage.graphs
714
700
  [{{2, -2}, {1, -3}, {3, -1}},
715
701
  {{2, -1}, {1, -3}, {3, -2}},
716
702
  {{1, -3}, {2, 3}, {-1, -2}},
@@ -733,7 +719,7 @@ class SetPartitionsBk_k(SetPartitionsAk_k):
733
719
  ::
734
720
 
735
721
  sage: bks = [SetPartitionsBk(i) for i in range(1, 6)]
736
- sage: all(bk.cardinality() == len(bk.list()) for bk in bks)
722
+ sage: all(bk.cardinality() == len(bk.list()) for bk in bks) # needs sage.graphs
737
723
  True
738
724
  """
739
725
  for sp in SetPartitions(self._set, [2] * (len(self._set) // 2)):
@@ -765,10 +751,7 @@ class SetPartitionsBkhalf_k(SetPartitionsAkhalf_k):
765
751
  """
766
752
  if not SetPartitionsAkhalf_k.__contains__(self, x):
767
753
  return False
768
- for part in x:
769
- if len(part) != 2:
770
- return False
771
- return True
754
+ return all(len(part) == 2 for part in x)
772
755
 
773
756
  def cardinality(self):
774
757
  """
@@ -880,10 +863,7 @@ class SetPartitionsPk_k(SetPartitionsAk_k):
880
863
  if not SetPartitionsAk_k.__contains__(self, x):
881
864
  return False
882
865
 
883
- if not is_planar(x):
884
- return False
885
-
886
- return True
866
+ return is_planar(x)
887
867
 
888
868
  def cardinality(self):
889
869
  """
@@ -939,10 +919,7 @@ class SetPartitionsPkhalf_k(SetPartitionsAkhalf_k):
939
919
  """
940
920
  if not SetPartitionsAkhalf_k.__contains__(self, x):
941
921
  return False
942
- if not is_planar(x):
943
- return False
944
-
945
- return True
922
+ return is_planar(x)
946
923
 
947
924
  def _repr_(self):
948
925
  """
@@ -1049,10 +1026,7 @@ class SetPartitionsTk_k(SetPartitionsBk_k):
1049
1026
  if not SetPartitionsBk_k.__contains__(self, x):
1050
1027
  return False
1051
1028
 
1052
- if not is_planar(x):
1053
- return False
1054
-
1055
- return True
1029
+ return is_planar(x)
1056
1030
 
1057
1031
  def cardinality(self):
1058
1032
  """
@@ -1102,10 +1076,7 @@ class SetPartitionsTkhalf_k(SetPartitionsBkhalf_k):
1102
1076
  """
1103
1077
  if not SetPartitionsBkhalf_k.__contains__(self, x):
1104
1078
  return False
1105
- if not is_planar(x):
1106
- return False
1107
-
1108
- return True
1079
+ return is_planar(x)
1109
1080
 
1110
1081
  def _repr_(self):
1111
1082
  """
@@ -1395,10 +1366,7 @@ class SetPartitionsPRk_k(SetPartitionsRk_k):
1395
1366
  if not SetPartitionsRk_k.__contains__(self, x):
1396
1367
  return False
1397
1368
 
1398
- if not is_planar(x):
1399
- return False
1400
-
1401
- return True
1369
+ return is_planar(x)
1402
1370
 
1403
1371
  def cardinality(self):
1404
1372
  """
@@ -1454,10 +1422,7 @@ class SetPartitionsPRkhalf_k(SetPartitionsRkhalf_k):
1454
1422
  if not SetPartitionsRkhalf_k.__contains__(self, x):
1455
1423
  return False
1456
1424
 
1457
- if not is_planar(x):
1458
- return False
1459
-
1460
- return True
1425
+ return is_planar(x)
1461
1426
 
1462
1427
  def _repr_(self):
1463
1428
  """
@@ -429,7 +429,7 @@ class KleshchevPartition(Partition):
429
429
  KP = mu.parent()
430
430
  return KP.element_class(KP, mu.add_cell(*mu.cogood_cells( r-c-self.parent()._multicharge[0]) ))
431
431
 
432
- def is_regular(self):
432
+ def is_regular(self) -> bool:
433
433
  r"""
434
434
  Return ``True`` if ``self`` is a `e`-regular partition tuple.
435
435
 
@@ -455,7 +455,7 @@ class KleshchevPartition(Partition):
455
455
  KP = self.parent()
456
456
  return super().is_regular(KP._e, KP._multicharge)
457
457
 
458
- def is_restricted(self):
458
+ def is_restricted(self) -> bool:
459
459
  r"""
460
460
  Return ``True`` if ``self`` is an `e`-restricted partition tuple.
461
461
 
@@ -812,7 +812,7 @@ class KleshchevPartitionTuple(PartitionTuple):
812
812
  KP = mu.parent()
813
813
  return KP.element_class(KP, mu.add_cell(*mu.cogood_cells( r-c-self.parent()._multicharge[k])))
814
814
 
815
- def is_regular(self):
815
+ def is_regular(self) -> bool:
816
816
  r"""
817
817
  Return ``True`` if ``self`` is a `e`-regular partition tuple.
818
818
 
@@ -836,7 +836,7 @@ class KleshchevPartitionTuple(PartitionTuple):
836
836
  KP = self.parent()
837
837
  return _is_regular(self.to_list(), KP._multicharge, KP._convention)
838
838
 
839
- def is_restricted(self):
839
+ def is_restricted(self) -> bool:
840
840
  r"""
841
841
  Return ``True`` if ``self`` is an `e`-restricted partition tuple.
842
842