passagemath-objects 10.6.41__cp314-cp314t-macosx_13_0_arm64.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.

Potentially problematic release.


This version of passagemath-objects might be problematic. Click here for more details.

Files changed (280) hide show
  1. passagemath_objects/.dylibs/libgmp.10.dylib +0 -0
  2. passagemath_objects/__init__.py +3 -0
  3. passagemath_objects-10.6.41.dist-info/METADATA +115 -0
  4. passagemath_objects-10.6.41.dist-info/RECORD +280 -0
  5. passagemath_objects-10.6.41.dist-info/WHEEL +6 -0
  6. passagemath_objects-10.6.41.dist-info/top_level.txt +3 -0
  7. sage/all__sagemath_objects.py +37 -0
  8. sage/arith/all__sagemath_objects.py +5 -0
  9. sage/arith/long.pxd +411 -0
  10. sage/arith/numerical_approx.cpython-314t-darwin.so +0 -0
  11. sage/arith/numerical_approx.pxd +35 -0
  12. sage/arith/numerical_approx.pyx +75 -0
  13. sage/arith/power.cpython-314t-darwin.so +0 -0
  14. sage/arith/power.pxd +31 -0
  15. sage/arith/power.pyx +127 -0
  16. sage/categories/action.cpython-314t-darwin.so +0 -0
  17. sage/categories/action.pxd +29 -0
  18. sage/categories/action.pyx +641 -0
  19. sage/categories/algebra_functor.py +745 -0
  20. sage/categories/all__sagemath_objects.py +33 -0
  21. sage/categories/basic.py +62 -0
  22. sage/categories/cartesian_product.py +295 -0
  23. sage/categories/category.py +3401 -0
  24. sage/categories/category_cy_helper.cpython-314t-darwin.so +0 -0
  25. sage/categories/category_cy_helper.pxd +8 -0
  26. sage/categories/category_cy_helper.pyx +322 -0
  27. sage/categories/category_singleton.cpython-314t-darwin.so +0 -0
  28. sage/categories/category_singleton.pxd +3 -0
  29. sage/categories/category_singleton.pyx +342 -0
  30. sage/categories/category_types.py +637 -0
  31. sage/categories/category_with_axiom.py +2876 -0
  32. sage/categories/covariant_functorial_construction.py +703 -0
  33. sage/categories/facade_sets.py +228 -0
  34. sage/categories/functor.cpython-314t-darwin.so +0 -0
  35. sage/categories/functor.pxd +7 -0
  36. sage/categories/functor.pyx +691 -0
  37. sage/categories/homset.py +1338 -0
  38. sage/categories/homsets.py +364 -0
  39. sage/categories/isomorphic_objects.py +73 -0
  40. sage/categories/map.cpython-314t-darwin.so +0 -0
  41. sage/categories/map.pxd +34 -0
  42. sage/categories/map.pyx +2112 -0
  43. sage/categories/morphism.cpython-314t-darwin.so +0 -0
  44. sage/categories/morphism.pxd +14 -0
  45. sage/categories/morphism.pyx +895 -0
  46. sage/categories/objects.py +167 -0
  47. sage/categories/primer.py +1696 -0
  48. sage/categories/pushout.py +4834 -0
  49. sage/categories/quotients.py +64 -0
  50. sage/categories/realizations.py +200 -0
  51. sage/categories/sets_cat.py +3228 -0
  52. sage/categories/sets_with_partial_maps.py +52 -0
  53. sage/categories/subobjects.py +64 -0
  54. sage/categories/subquotients.py +21 -0
  55. sage/categories/with_realizations.py +311 -0
  56. sage/cpython/__init__.py +19 -0
  57. sage/cpython/_py2_random.py +619 -0
  58. sage/cpython/all.py +3 -0
  59. sage/cpython/atexit.cpython-314t-darwin.so +0 -0
  60. sage/cpython/atexit.pyx +269 -0
  61. sage/cpython/builtin_types.cpython-314t-darwin.so +0 -0
  62. sage/cpython/builtin_types.pyx +7 -0
  63. sage/cpython/cython_metaclass.cpython-314t-darwin.so +0 -0
  64. sage/cpython/cython_metaclass.h +117 -0
  65. sage/cpython/cython_metaclass.pxd +3 -0
  66. sage/cpython/cython_metaclass.pyx +130 -0
  67. sage/cpython/debug.cpython-314t-darwin.so +0 -0
  68. sage/cpython/debug.pyx +302 -0
  69. sage/cpython/dict_del_by_value.cpython-314t-darwin.so +0 -0
  70. sage/cpython/dict_del_by_value.pxd +9 -0
  71. sage/cpython/dict_del_by_value.pyx +191 -0
  72. sage/cpython/dict_internal.h +245 -0
  73. sage/cpython/getattr.cpython-314t-darwin.so +0 -0
  74. sage/cpython/getattr.pxd +9 -0
  75. sage/cpython/getattr.pyx +439 -0
  76. sage/cpython/pycore_long.h +97 -0
  77. sage/cpython/pycore_long.pxd +10 -0
  78. sage/cpython/python_debug.h +44 -0
  79. sage/cpython/python_debug.pxd +47 -0
  80. sage/cpython/pyx_visit.h +13 -0
  81. sage/cpython/string.cpython-314t-darwin.so +0 -0
  82. sage/cpython/string.pxd +76 -0
  83. sage/cpython/string.pyx +34 -0
  84. sage/cpython/string_impl.h +60 -0
  85. sage/cpython/type.cpython-314t-darwin.so +0 -0
  86. sage/cpython/type.pxd +2 -0
  87. sage/cpython/type.pyx +40 -0
  88. sage/cpython/wrapperdescr.pxd +67 -0
  89. sage/ext/all__sagemath_objects.py +3 -0
  90. sage/ext/ccobject.h +64 -0
  91. sage/ext/cplusplus.pxd +17 -0
  92. sage/ext/mod_int.h +30 -0
  93. sage/ext/mod_int.pxd +24 -0
  94. sage/ext/stdsage.pxd +39 -0
  95. sage/groups/all__sagemath_objects.py +1 -0
  96. sage/groups/group.cpython-314t-darwin.so +0 -0
  97. sage/groups/group.pxd +14 -0
  98. sage/groups/group.pyx +322 -0
  99. sage/groups/old.cpython-314t-darwin.so +0 -0
  100. sage/groups/old.pxd +14 -0
  101. sage/groups/old.pyx +219 -0
  102. sage/libs/all__sagemath_objects.py +3 -0
  103. sage/libs/gmp/__init__.py +1 -0
  104. sage/libs/gmp/all.pxd +6 -0
  105. sage/libs/gmp/binop.pxd +23 -0
  106. sage/libs/gmp/misc.pxd +8 -0
  107. sage/libs/gmp/mpf.pxd +88 -0
  108. sage/libs/gmp/mpn.pxd +57 -0
  109. sage/libs/gmp/mpq.pxd +57 -0
  110. sage/libs/gmp/mpz.pxd +202 -0
  111. sage/libs/gmp/pylong.cpython-314t-darwin.so +0 -0
  112. sage/libs/gmp/pylong.pxd +12 -0
  113. sage/libs/gmp/pylong.pyx +150 -0
  114. sage/libs/gmp/random.pxd +25 -0
  115. sage/libs/gmp/randomize.pxd +59 -0
  116. sage/libs/gmp/types.pxd +53 -0
  117. sage/libs/gmpxx.pxd +19 -0
  118. sage/misc/abstract_method.py +276 -0
  119. sage/misc/all__sagemath_objects.py +43 -0
  120. sage/misc/bindable_class.py +253 -0
  121. sage/misc/c3_controlled.cpython-314t-darwin.so +0 -0
  122. sage/misc/c3_controlled.pxd +2 -0
  123. sage/misc/c3_controlled.pyx +1402 -0
  124. sage/misc/cachefunc.cpython-314t-darwin.so +0 -0
  125. sage/misc/cachefunc.pxd +43 -0
  126. sage/misc/cachefunc.pyx +3781 -0
  127. sage/misc/call.py +188 -0
  128. sage/misc/classcall_metaclass.cpython-314t-darwin.so +0 -0
  129. sage/misc/classcall_metaclass.pxd +14 -0
  130. sage/misc/classcall_metaclass.pyx +599 -0
  131. sage/misc/constant_function.cpython-314t-darwin.so +0 -0
  132. sage/misc/constant_function.pyx +130 -0
  133. sage/misc/decorators.py +747 -0
  134. sage/misc/fast_methods.cpython-314t-darwin.so +0 -0
  135. sage/misc/fast_methods.pxd +20 -0
  136. sage/misc/fast_methods.pyx +351 -0
  137. sage/misc/flatten.py +90 -0
  138. sage/misc/fpickle.cpython-314t-darwin.so +0 -0
  139. sage/misc/fpickle.pyx +177 -0
  140. sage/misc/function_mangling.cpython-314t-darwin.so +0 -0
  141. sage/misc/function_mangling.pxd +11 -0
  142. sage/misc/function_mangling.pyx +308 -0
  143. sage/misc/inherit_comparison.cpython-314t-darwin.so +0 -0
  144. sage/misc/inherit_comparison.pxd +5 -0
  145. sage/misc/inherit_comparison.pyx +105 -0
  146. sage/misc/instancedoc.cpython-314t-darwin.so +0 -0
  147. sage/misc/instancedoc.pyx +331 -0
  148. sage/misc/lazy_attribute.cpython-314t-darwin.so +0 -0
  149. sage/misc/lazy_attribute.pyx +607 -0
  150. sage/misc/lazy_format.py +135 -0
  151. sage/misc/lazy_import.cpython-314t-darwin.so +0 -0
  152. sage/misc/lazy_import.pyx +1299 -0
  153. sage/misc/lazy_import_cache.py +36 -0
  154. sage/misc/lazy_list.cpython-314t-darwin.so +0 -0
  155. sage/misc/lazy_list.pxd +19 -0
  156. sage/misc/lazy_list.pyx +1187 -0
  157. sage/misc/lazy_string.cpython-314t-darwin.so +0 -0
  158. sage/misc/lazy_string.pxd +7 -0
  159. sage/misc/lazy_string.pyx +546 -0
  160. sage/misc/misc.py +1066 -0
  161. sage/misc/misc_c.cpython-314t-darwin.so +0 -0
  162. sage/misc/misc_c.pxd +3 -0
  163. sage/misc/misc_c.pyx +766 -0
  164. sage/misc/namespace_package.py +37 -0
  165. sage/misc/nested_class.cpython-314t-darwin.so +0 -0
  166. sage/misc/nested_class.pxd +3 -0
  167. sage/misc/nested_class.pyx +394 -0
  168. sage/misc/persist.cpython-314t-darwin.so +0 -0
  169. sage/misc/persist.pyx +1251 -0
  170. sage/misc/prandom.py +418 -0
  171. sage/misc/randstate.cpython-314t-darwin.so +0 -0
  172. sage/misc/randstate.pxd +30 -0
  173. sage/misc/randstate.pyx +1059 -0
  174. sage/misc/repr.py +203 -0
  175. sage/misc/reset.cpython-314t-darwin.so +0 -0
  176. sage/misc/reset.pyx +196 -0
  177. sage/misc/sage_ostools.cpython-314t-darwin.so +0 -0
  178. sage/misc/sage_ostools.pyx +323 -0
  179. sage/misc/sage_timeit.py +276 -0
  180. sage/misc/sage_timeit_class.cpython-314t-darwin.so +0 -0
  181. sage/misc/sage_timeit_class.pyx +120 -0
  182. sage/misc/sage_unittest.py +637 -0
  183. sage/misc/sageinspect.py +2768 -0
  184. sage/misc/session.cpython-314t-darwin.so +0 -0
  185. sage/misc/session.pyx +392 -0
  186. sage/misc/superseded.py +557 -0
  187. sage/misc/test_nested_class.py +228 -0
  188. sage/misc/timing.py +264 -0
  189. sage/misc/unknown.py +222 -0
  190. sage/misc/verbose.py +253 -0
  191. sage/misc/weak_dict.cpython-314t-darwin.so +0 -0
  192. sage/misc/weak_dict.pxd +15 -0
  193. sage/misc/weak_dict.pyx +1231 -0
  194. sage/modules/all__sagemath_objects.py +1 -0
  195. sage/modules/module.cpython-314t-darwin.so +0 -0
  196. sage/modules/module.pxd +5 -0
  197. sage/modules/module.pyx +329 -0
  198. sage/rings/all__sagemath_objects.py +3 -0
  199. sage/rings/integer_fake.h +22 -0
  200. sage/rings/integer_fake.pxd +55 -0
  201. sage/sets/all__sagemath_objects.py +3 -0
  202. sage/sets/pythonclass.cpython-314t-darwin.so +0 -0
  203. sage/sets/pythonclass.pxd +9 -0
  204. sage/sets/pythonclass.pyx +247 -0
  205. sage/structure/__init__.py +4 -0
  206. sage/structure/all.py +30 -0
  207. sage/structure/category_object.cpython-314t-darwin.so +0 -0
  208. sage/structure/category_object.pxd +28 -0
  209. sage/structure/category_object.pyx +1087 -0
  210. sage/structure/coerce.cpython-314t-darwin.so +0 -0
  211. sage/structure/coerce.pxd +44 -0
  212. sage/structure/coerce.pyx +2107 -0
  213. sage/structure/coerce_actions.cpython-314t-darwin.so +0 -0
  214. sage/structure/coerce_actions.pxd +27 -0
  215. sage/structure/coerce_actions.pyx +988 -0
  216. sage/structure/coerce_dict.cpython-314t-darwin.so +0 -0
  217. sage/structure/coerce_dict.pxd +51 -0
  218. sage/structure/coerce_dict.pyx +1557 -0
  219. sage/structure/coerce_exceptions.py +23 -0
  220. sage/structure/coerce_maps.cpython-314t-darwin.so +0 -0
  221. sage/structure/coerce_maps.pxd +28 -0
  222. sage/structure/coerce_maps.pyx +718 -0
  223. sage/structure/debug_options.cpython-314t-darwin.so +0 -0
  224. sage/structure/debug_options.pxd +6 -0
  225. sage/structure/debug_options.pyx +54 -0
  226. sage/structure/dynamic_class.py +541 -0
  227. sage/structure/element.cpython-314t-darwin.so +0 -0
  228. sage/structure/element.pxd +272 -0
  229. sage/structure/element.pyx +4772 -0
  230. sage/structure/element_wrapper.cpython-314t-darwin.so +0 -0
  231. sage/structure/element_wrapper.pxd +12 -0
  232. sage/structure/element_wrapper.pyx +582 -0
  233. sage/structure/factorization.py +1422 -0
  234. sage/structure/factorization_integer.py +105 -0
  235. sage/structure/factory.cpython-314t-darwin.so +0 -0
  236. sage/structure/factory.pyx +786 -0
  237. sage/structure/formal_sum.py +489 -0
  238. sage/structure/gens_py.py +73 -0
  239. sage/structure/global_options.py +1743 -0
  240. sage/structure/indexed_generators.py +863 -0
  241. sage/structure/list_clone.cpython-314t-darwin.so +0 -0
  242. sage/structure/list_clone.pxd +65 -0
  243. sage/structure/list_clone.pyx +1867 -0
  244. sage/structure/list_clone_demo.cpython-314t-darwin.so +0 -0
  245. sage/structure/list_clone_demo.pyx +248 -0
  246. sage/structure/list_clone_timings.py +179 -0
  247. sage/structure/list_clone_timings_cy.cpython-314t-darwin.so +0 -0
  248. sage/structure/list_clone_timings_cy.pyx +86 -0
  249. sage/structure/mutability.cpython-314t-darwin.so +0 -0
  250. sage/structure/mutability.pxd +21 -0
  251. sage/structure/mutability.pyx +348 -0
  252. sage/structure/nonexact.py +69 -0
  253. sage/structure/parent.cpython-314t-darwin.so +0 -0
  254. sage/structure/parent.pxd +112 -0
  255. sage/structure/parent.pyx +3093 -0
  256. sage/structure/parent_base.cpython-314t-darwin.so +0 -0
  257. sage/structure/parent_base.pxd +13 -0
  258. sage/structure/parent_base.pyx +44 -0
  259. sage/structure/parent_gens.cpython-314t-darwin.so +0 -0
  260. sage/structure/parent_gens.pxd +22 -0
  261. sage/structure/parent_gens.pyx +377 -0
  262. sage/structure/parent_old.cpython-314t-darwin.so +0 -0
  263. sage/structure/parent_old.pxd +25 -0
  264. sage/structure/parent_old.pyx +294 -0
  265. sage/structure/proof/__init__.py +1 -0
  266. sage/structure/proof/all.py +243 -0
  267. sage/structure/proof/proof.py +300 -0
  268. sage/structure/richcmp.cpython-314t-darwin.so +0 -0
  269. sage/structure/richcmp.pxd +213 -0
  270. sage/structure/richcmp.pyx +495 -0
  271. sage/structure/sage_object.cpython-314t-darwin.so +0 -0
  272. sage/structure/sage_object.pxd +3 -0
  273. sage/structure/sage_object.pyx +988 -0
  274. sage/structure/sage_object_test.py +19 -0
  275. sage/structure/sequence.py +937 -0
  276. sage/structure/set_factories.py +1178 -0
  277. sage/structure/set_factories_example.py +527 -0
  278. sage/structure/support_view.py +179 -0
  279. sage/structure/test_factory.py +56 -0
  280. sage/structure/unique_representation.py +1359 -0
@@ -0,0 +1,64 @@
1
+ # sage_setup: distribution = sagemath-objects
2
+ """
3
+ Quotients Functorial Construction
4
+
5
+ AUTHORS:
6
+
7
+ - Nicolas M. Thiery (2010): initial revision
8
+ """
9
+ #*****************************************************************************
10
+ # Copyright (C) 2009 Nicolas M. Thiery <nthiery at users.sf.net>
11
+ #
12
+ # Distributed under the terms of the GNU General Public License (GPL)
13
+ # http://www.gnu.org/licenses/
14
+ #*****************************************************************************
15
+
16
+ from sage.categories.category import Category
17
+ from sage.categories.covariant_functorial_construction import RegressiveCovariantConstructionCategory
18
+
19
+
20
+ class QuotientsCategory(RegressiveCovariantConstructionCategory):
21
+
22
+ _functor_category = "Quotients"
23
+
24
+ @classmethod
25
+ def default_super_categories(cls, category):
26
+ """
27
+ Return the default super categories of ``category.Quotients()``.
28
+
29
+ Mathematical meaning: if `A` is a quotient of `B` in the
30
+ category `C`, then `A` is also a subquotient of `B` in the
31
+ category `C`.
32
+
33
+ INPUT:
34
+
35
+ - ``cls`` -- the class ``QuotientsCategory``
36
+ - ``category`` -- a category `Cat`
37
+
38
+ OUTPUT: a (join) category
39
+
40
+ In practice, this returns ``category.Subquotients()``, joined
41
+ together with the result of the method
42
+ :meth:`RegressiveCovariantConstructionCategory.default_super_categories() <sage.categories.covariant_functorial_construction.RegressiveCovariantConstructionCategory.default_super_categories>`
43
+ (that is the join of ``category`` and ``cat.Quotients()`` for
44
+ each ``cat`` in the super categories of ``category``).
45
+
46
+ EXAMPLES:
47
+
48
+ Consider ``category=Groups()``, which has ``cat=Monoids()`` as
49
+ super category. Then, a subgroup of a group `G` is
50
+ simultaneously a subquotient of `G`, a group by itself, and a
51
+ quotient monoid of ``G``::
52
+
53
+ sage: Groups().Quotients().super_categories()
54
+ [Category of groups, Category of subquotients of monoids, Category of quotients of semigroups]
55
+
56
+ Mind the last item above: there is indeed currently nothing
57
+ implemented about quotient monoids.
58
+
59
+ This resulted from the following call::
60
+
61
+ sage: sage.categories.quotients.QuotientsCategory.default_super_categories(Groups())
62
+ Join of Category of groups and Category of subquotients of monoids and Category of quotients of semigroups
63
+ """
64
+ return Category.join([category.Subquotients(), super().default_super_categories(category)])
@@ -0,0 +1,200 @@
1
+ # sage_setup: distribution = sagemath-objects
2
+ """
3
+ Realizations Covariant Functorial Construction
4
+
5
+ .. SEEALSO::
6
+
7
+ - :func:`Sets().WithRealizations <sage.categories.with_realizations.WithRealizations>`
8
+ for an introduction to *realizations* and *with realizations*.
9
+ - :mod:`sage.categories.covariant_functorial_construction`
10
+ for an introduction to covariant functorial constructions.
11
+ - :mod:`sage.categories.examples.with_realizations` for an example.
12
+ """
13
+ #*****************************************************************************
14
+ # Copyright (C) 2010-2012 Nicolas M. Thiery <nthiery at users.sf.net>
15
+ #
16
+ # Distributed under the terms of the GNU General Public License (GPL)
17
+ # http://www.gnu.org/licenses/
18
+ #*****************************************************************************
19
+
20
+ from sage.misc.bindable_class import BindableClass
21
+ from sage.categories.category import Category
22
+ from sage.categories.category_types import Category_over_base
23
+ from sage.categories.covariant_functorial_construction import RegressiveCovariantConstructionCategory
24
+
25
+
26
+ class RealizationsCategory(RegressiveCovariantConstructionCategory):
27
+ """
28
+ An abstract base class for all categories of realizations category.
29
+
30
+ Realization are implemented as
31
+ :class:`~sage.categories.covariant_functorial_construction.RegressiveCovariantConstructionCategory`.
32
+ See there for the documentation of how the various bindings such
33
+ as ``Sets().Realizations()`` and ``P.Realizations()``, where ``P``
34
+ is a parent, work.
35
+
36
+ .. SEEALSO:: :func:`Sets().WithRealizations <sage.categories.with_realizations.WithRealizations>`
37
+
38
+ TESTS::
39
+
40
+ sage: Sets().Realizations
41
+ <bound method Realizations of Category of sets>
42
+ sage: Sets().Realizations()
43
+ Category of realizations of sets
44
+ sage: Sets().Realizations().super_categories()
45
+ [Category of sets]
46
+ sage: Groups().Realizations().super_categories()
47
+ [Category of groups, Category of realizations of unital magmas]
48
+ """
49
+
50
+ _functor_category = "Realizations"
51
+
52
+
53
+ def Realizations(self):
54
+ """
55
+ Return the category of realizations of the parent ``self`` or of objects
56
+ of the category ``self``
57
+
58
+ INPUT:
59
+
60
+ - ``self`` -- a parent or a concrete category
61
+
62
+ .. NOTE:: this *function* is actually inserted as a *method* in the class
63
+ :class:`~sage.categories.category.Category` (see
64
+ :meth:`~sage.categories.category.Category.Realizations`). It is defined
65
+ here for code locality reasons.
66
+
67
+ EXAMPLES:
68
+
69
+ The category of realizations of some algebra::
70
+
71
+ sage: Algebras(QQ).Realizations()
72
+ Join of Category of algebras over Rational Field
73
+ and Category of realizations of unital magmas
74
+
75
+ The category of realizations of a given algebra::
76
+
77
+ sage: A = Sets().WithRealizations().example(); A # needs sage.modules
78
+ The subset algebra of {1, 2, 3} over Rational Field
79
+ sage: A.Realizations() # needs sage.modules
80
+ Category of realizations of
81
+ The subset algebra of {1, 2, 3} over Rational Field
82
+
83
+ sage: C = GradedHopfAlgebrasWithBasis(QQ).Realizations(); C
84
+ Join of Category of graded Hopf algebras with basis over Rational Field
85
+ and Category of realizations of Hopf algebras over Rational Field
86
+ sage: C.super_categories()
87
+ [Category of graded Hopf algebras with basis over Rational Field,
88
+ Category of realizations of Hopf algebras over Rational Field]
89
+
90
+ sage: TestSuite(C).run()
91
+
92
+ .. SEEALSO::
93
+
94
+ - :func:`Sets().WithRealizations <sage.categories.with_realizations.WithRealizations>`
95
+ - :class:`ClasscallMetaclass`
96
+
97
+ .. TODO::
98
+
99
+ Add an optional argument to allow for::
100
+
101
+ sage: Realizations(A, category=Blahs()) # todo: not implemented
102
+ """
103
+ if isinstance(self, Category):
104
+ return RealizationsCategory.category_of(self)
105
+ else:
106
+ return getattr(self.__class__, "Realizations")(self)
107
+
108
+
109
+ Category.Realizations = Realizations
110
+
111
+
112
+ class Category_realization_of_parent(Category_over_base, BindableClass):
113
+ """
114
+ An abstract base class for categories of all realizations of a given parent.
115
+
116
+ INPUT:
117
+
118
+ - ``parent_with_realization`` -- a parent
119
+
120
+ .. SEEALSO:: :func:`Sets().WithRealizations <sage.categories.with_realizations.WithRealizations>`
121
+
122
+ EXAMPLES::
123
+
124
+ sage: A = Sets().WithRealizations().example(); A # needs sage.modules
125
+ The subset algebra of {1, 2, 3} over Rational Field
126
+
127
+ The role of this base class is to implement some technical goodies, like
128
+ the binding ``A.Realizations()`` when a subclass ``Realizations`` is
129
+ implemented as a nested class in ``A``
130
+ (see the :mod:`code of the example <sage.categories.examples.with_realizations.SubsetAlgebra>`)::
131
+
132
+ sage: C = A.Realizations(); C # needs sage.modules
133
+ Category of realizations of
134
+ The subset algebra of {1, 2, 3} over Rational Field
135
+
136
+ as well as the name for that category.
137
+ """
138
+ def __init__(self, parent_with_realization):
139
+ """
140
+ TESTS::
141
+
142
+ sage: # needs sage.combinat sage.modules
143
+ sage: from sage.categories.realizations import Category_realization_of_parent
144
+ sage: A = Sets().WithRealizations().example(); A
145
+ The subset algebra of {1, 2, 3} over Rational Field
146
+ sage: C = A.Realizations(); C
147
+ Category of realizations of
148
+ The subset algebra of {1, 2, 3} over Rational Field
149
+ sage: isinstance(C, Category_realization_of_parent)
150
+ True
151
+ sage: C.parent_with_realization
152
+ The subset algebra of {1, 2, 3} over Rational Field
153
+ sage: TestSuite(C).run(skip=["_test_category_over_bases"])
154
+
155
+ .. TODO::
156
+
157
+ Fix the failing test by making ``C`` a singleton
158
+ category. This will require some fiddling with the
159
+ assertion in :meth:`Category_singleton.__classcall__`
160
+ """
161
+ Category_over_base.__init__(self, parent_with_realization)
162
+ self.parent_with_realization = parent_with_realization
163
+
164
+ def _get_name(self):
165
+ """
166
+ Return a human readable string specifying which kind of bases this category is for.
167
+
168
+ It is obtained by splitting and lower casing the last part of
169
+ the class name.
170
+
171
+ EXAMPLES::
172
+
173
+ sage: from sage.categories.realizations import Category_realization_of_parent
174
+ sage: class MultiplicativeBasesOnPrimitiveElements(Category_realization_of_parent):
175
+ ....: def super_categories(self): return [Objects()]
176
+ sage: Sym = SymmetricFunctions(QQ); Sym.rename('Sym') # needs sage.combinat sage.modules
177
+ sage: MultiplicativeBasesOnPrimitiveElements(Sym)._get_name() # needs sage.combinat sage.modules
178
+ 'multiplicative bases on primitive elements'
179
+ """
180
+ import re
181
+ return re.sub(".[A-Z]", lambda s: s.group()[0]+" "+s.group()[1], self.__class__.__base__.__name__.split(".")[-1]).lower()
182
+
183
+ def _repr_object_names(self):
184
+ """
185
+ Return the name of the objects of this category.
186
+
187
+ .. SEEALSO:: :meth:`Category._repr_object_names`
188
+
189
+ EXAMPLES::
190
+
191
+ sage: from sage.categories.realizations import Category_realization_of_parent
192
+ sage: class MultiplicativeBasesOnPrimitiveElements(Category_realization_of_parent):
193
+ ....: def super_categories(self): return [Objects()]
194
+ sage: Sym = SymmetricFunctions(QQ); Sym.rename('Sym') # needs sage.combinat sage.modules
195
+ sage: C = MultiplicativeBasesOnPrimitiveElements(Sym); C # needs sage.combinat sage.modules
196
+ Category of multiplicative bases on primitive elements of Sym
197
+ sage: C._repr_object_names() # needs sage.combinat sage.modules
198
+ 'multiplicative bases on primitive elements of Sym'
199
+ """
200
+ return "{} of {}".format(self._get_name(), self.base())