passagemath-objects 10.6.31__cp312-cp312-macosx_13_0_arm64.whl → 10.6.31rc2__cp312-cp312-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 (75) hide show
  1. {passagemath_objects-10.6.31.dist-info → passagemath_objects-10.6.31rc2.dist-info}/METADATA +2 -2
  2. {passagemath_objects-10.6.31.dist-info → passagemath_objects-10.6.31rc2.dist-info}/RECORD +75 -75
  3. {passagemath_objects-10.6.31.dist-info → passagemath_objects-10.6.31rc2.dist-info}/WHEEL +1 -1
  4. sage/arith/numerical_approx.cpython-312-darwin.so +0 -0
  5. sage/arith/power.cpython-312-darwin.so +0 -0
  6. sage/categories/action.cpython-312-darwin.so +0 -0
  7. sage/categories/category_cy_helper.cpython-312-darwin.so +0 -0
  8. sage/categories/category_singleton.cpython-312-darwin.so +0 -0
  9. sage/categories/functor.cpython-312-darwin.so +0 -0
  10. sage/categories/map.cpython-312-darwin.so +0 -0
  11. sage/categories/morphism.cpython-312-darwin.so +0 -0
  12. sage/cpython/atexit.cpython-312-darwin.so +0 -0
  13. sage/cpython/atexit.pyx +24 -73
  14. sage/cpython/builtin_types.cpython-312-darwin.so +0 -0
  15. sage/cpython/cython_metaclass.cpython-312-darwin.so +0 -0
  16. sage/cpython/debug.cpython-312-darwin.so +0 -0
  17. sage/cpython/dict_del_by_value.cpython-312-darwin.so +0 -0
  18. sage/cpython/getattr.cpython-312-darwin.so +0 -0
  19. sage/cpython/string.cpython-312-darwin.so +0 -0
  20. sage/cpython/type.cpython-312-darwin.so +0 -0
  21. sage/groups/group.cpython-312-darwin.so +0 -0
  22. sage/groups/old.cpython-312-darwin.so +0 -0
  23. sage/libs/gmp/pylong.cpython-312-darwin.so +0 -0
  24. sage/misc/c3_controlled.cpython-312-darwin.so +0 -0
  25. sage/misc/cachefunc.cpython-312-darwin.so +0 -0
  26. sage/misc/cachefunc.pyx +1 -1
  27. sage/misc/classcall_metaclass.cpython-312-darwin.so +0 -0
  28. sage/misc/constant_function.cpython-312-darwin.so +0 -0
  29. sage/misc/fast_methods.cpython-312-darwin.so +0 -0
  30. sage/misc/fpickle.cpython-312-darwin.so +0 -0
  31. sage/misc/function_mangling.cpython-312-darwin.so +0 -0
  32. sage/misc/inherit_comparison.cpython-312-darwin.so +0 -0
  33. sage/misc/instancedoc.cpython-312-darwin.so +0 -0
  34. sage/misc/lazy_attribute.cpython-312-darwin.so +0 -0
  35. sage/misc/lazy_import.cpython-312-darwin.so +0 -0
  36. sage/misc/lazy_list.cpython-312-darwin.so +0 -0
  37. sage/misc/lazy_list.pyx +10 -9
  38. sage/misc/lazy_string.cpython-312-darwin.so +0 -0
  39. sage/misc/misc_c.cpython-312-darwin.so +0 -0
  40. sage/misc/nested_class.cpython-312-darwin.so +0 -0
  41. sage/misc/persist.cpython-312-darwin.so +0 -0
  42. sage/misc/randstate.cpython-312-darwin.so +0 -0
  43. sage/misc/reset.cpython-312-darwin.so +0 -0
  44. sage/misc/sage_ostools.cpython-312-darwin.so +0 -0
  45. sage/misc/sage_timeit_class.cpython-312-darwin.so +0 -0
  46. sage/misc/sage_unittest.py +14 -11
  47. sage/misc/sageinspect.py +72 -25
  48. sage/misc/session.cpython-312-darwin.so +0 -0
  49. sage/misc/weak_dict.cpython-312-darwin.so +0 -0
  50. sage/misc/weak_dict.pyx +6 -6
  51. sage/modules/module.cpython-312-darwin.so +0 -0
  52. sage/sets/pythonclass.cpython-312-darwin.so +0 -0
  53. sage/structure/category_object.cpython-312-darwin.so +0 -0
  54. sage/structure/coerce.cpython-312-darwin.so +0 -0
  55. sage/structure/coerce_actions.cpython-312-darwin.so +0 -0
  56. sage/structure/coerce_dict.cpython-312-darwin.so +0 -0
  57. sage/structure/coerce_maps.cpython-312-darwin.so +0 -0
  58. sage/structure/debug_options.cpython-312-darwin.so +0 -0
  59. sage/structure/element.cpython-312-darwin.so +0 -0
  60. sage/structure/element_wrapper.cpython-312-darwin.so +0 -0
  61. sage/structure/factory.cpython-312-darwin.so +0 -0
  62. sage/structure/list_clone.cpython-312-darwin.so +0 -0
  63. sage/structure/list_clone.pyx +1 -1
  64. sage/structure/list_clone_demo.cpython-312-darwin.so +0 -0
  65. sage/structure/list_clone_timings_cy.cpython-312-darwin.so +0 -0
  66. sage/structure/mutability.cpython-312-darwin.so +0 -0
  67. sage/structure/parent.cpython-312-darwin.so +0 -0
  68. sage/structure/parent_base.cpython-312-darwin.so +0 -0
  69. sage/structure/parent_gens.cpython-312-darwin.so +0 -0
  70. sage/structure/parent_old.cpython-312-darwin.so +0 -0
  71. sage/structure/richcmp.cpython-312-darwin.so +0 -0
  72. sage/structure/sage_object.cpython-312-darwin.so +0 -0
  73. sage/structure/sage_object.pyx +6 -7
  74. sage/structure/unique_representation.py +2 -2
  75. {passagemath_objects-10.6.31.dist-info → passagemath_objects-10.6.31rc2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: passagemath-objects
3
- Version: 10.6.31
3
+ Version: 10.6.31rc2
4
4
  Summary: passagemath: Sage objects, elements, parents, categories, coercion, metaclasses
5
5
  Author-email: The Sage Developers <sage-support@googlegroups.com>
6
6
  Maintainer: Matthias Köppe, passagemath contributors
@@ -27,7 +27,7 @@ Classifier: Programming Language :: Python :: 3.12
27
27
  Classifier: Programming Language :: Python :: 3.13
28
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
29
29
  Classifier: Topic :: Scientific/Engineering :: Mathematics
30
- Requires-Python: <3.15,>=3.10
30
+ Requires-Python: <3.14,>=3.10
31
31
  Description-Content-Type: text/x-rst
32
32
  Requires-Dist: gmpy2~=2.1.b999
33
33
  Requires-Dist: cysignals<1.12.4; sys_platform == "win32"
@@ -1,8 +1,8 @@
1
+ passagemath_objects-10.6.31rc2.dist-info/RECORD,,
2
+ passagemath_objects-10.6.31rc2.dist-info/WHEEL,sha256=vcdc6UmFab_KM7UetvEB8rKprmUEGtAS3RDfB6JUCiY,136
3
+ passagemath_objects-10.6.31rc2.dist-info/top_level.txt,sha256=Kmzulf9WsphADFQuqgvdy5mvTLDj_V2zkFHU2s3UXos,6
4
+ passagemath_objects-10.6.31rc2.dist-info/METADATA,sha256=svZj_SXhRm2amGyprthWXNe7Fw1sxwdfpB3g76VlyPo,5271
1
5
  passagemath_objects.dylibs/libgmp.10.dylib,sha256=T4tRS4q5c3n5n2fvrh5ZdWU1PNzftAfcw5cgGi7qVXA,464688
2
- passagemath_objects-10.6.31.dist-info/RECORD,,
3
- passagemath_objects-10.6.31.dist-info/WHEEL,sha256=7EOcOvdhLhhs3RHT6YfTNQbC-9vfuvogBMSdyCSEuSE,153
4
- passagemath_objects-10.6.31.dist-info/top_level.txt,sha256=Kmzulf9WsphADFQuqgvdy5mvTLDj_V2zkFHU2s3UXos,6
5
- passagemath_objects-10.6.31.dist-info/METADATA,sha256=2qIkE0M-2EeH6Pd69kRKnva1QgOKo3pqtPkvvJ0O2Jk,5268
6
6
  sage/all__sagemath_objects.py,sha256=NVxVF3fEVtmNUxMKNHjkVqgXO4-AsnV6iuMsgVh3l_4,804
7
7
  sage/misc/superseded.py,sha256=3K8MzLbmNupi8gMwYaYK68F7YNaYWTVsI9YO1z0TxBE,19934
8
8
  sage/misc/prandom.py,sha256=vnbY62JYLu5_5L1nGbq1SoHkt0ScGBrx-LisbzhM2YY,12432
@@ -10,29 +10,29 @@ sage/misc/verbose.py,sha256=KGMJeArKTqIPTgTxRq4YsSyY7KwZov0m1VmzfImmbUc,6636
10
10
  sage/misc/classcall_metaclass.pyx,sha256=QkgYomel8fNufKtvWx8Iz9fBrSoubKqGIm6sfU-sLYU,21263
11
11
  sage/misc/misc.py,sha256=3M5ekIsxGhmZOR2c1AzChqurp7rQl-ErMOe-R1lO_BA,30450
12
12
  sage/misc/sage_timeit.py,sha256=2l3OuSjfwQFqF3CkzVDR8LOR2AiPGskiOMleWD03NKU,9064
13
- sage/misc/classcall_metaclass.cpython-312-darwin.so,sha256=rA2tUmASZ3w6ZBtqPFFEACLa9ReXSgTpgA0FNF-Wim8,127480
14
- sage/misc/sage_timeit_class.cpython-312-darwin.so,sha256=wjk2xoBoKOW2lPN2A6xcFefg2Wylsa3zJLRSyuKH4l4,85176
15
- sage/misc/weak_dict.pyx,sha256=0gbKGb_Fovx_pIblCYMwsVwxLfTGpU9CgI9n65N8OF0,41601
13
+ sage/misc/classcall_metaclass.cpython-312-darwin.so,sha256=p8jOeFx9YIYBuf0L2neVqq_zwADOufI2YWteyRqFvPo,127480
14
+ sage/misc/sage_timeit_class.cpython-312-darwin.so,sha256=9c1TLDyBC4oy_7bUVRW20dcTjrh5mnRnWOq97uLh2vM,85176
15
+ sage/misc/weak_dict.pyx,sha256=CXWvbATI26YASIJ-vVvq9YcNHpnRp6tnoDnJ92iT-8Q,41565
16
16
  sage/misc/flatten.py,sha256=BMribQzTuNq4JqjNkTtla9mEUb7QVCBhskj9rLWAiuQ,2739
17
- sage/misc/instancedoc.cpython-312-darwin.so,sha256=45ThJl51BuG_h2eBaW_LseAWIeZPRU3iN37NSOwMZE4,98736
17
+ sage/misc/instancedoc.cpython-312-darwin.so,sha256=JmX8hVxMuUNI8wha4wD-LgHpCD9pnBYCFPQcIXDMAeM,98736
18
18
  sage/misc/sage_timeit_class.pyx,sha256=3IIxeFsvD7gxemBNgP_tnhuwMWjPiVdUTKQshSHWSxk,3908
19
19
  sage/misc/lazy_string.pyx,sha256=kjC5HtApqcYKUv4VGXK0_zjUqJ_HdLzXAUW5Ws9FdJA,16280
20
20
  sage/misc/c3_controlled.pyx,sha256=a3z5yOBzNLzcMS085cQH6S1heXHCU4zT32SvU0ng6F4,56078
21
21
  sage/misc/lazy_import_cache.py,sha256=7UUPsvP7XLFIcXZee9tg8jB_0luUr-z3lxTPd8dsU2Y,1005
22
- sage/misc/randstate.cpython-312-darwin.so,sha256=FJ-SWW2xYrHatXnHBRSFO-vwToZSA2LQPnw_Tt2H7Iw,181472
22
+ sage/misc/randstate.cpython-312-darwin.so,sha256=gdAqM4i8drlRPkrRY34Ov3khEau4yW5JSYu79qNcb7w,181472
23
23
  sage/misc/instancedoc.pyx,sha256=ml1-c_SKHAnww2zwkJTXbuf2TSHJXtNYQstTSCRipFo,11125
24
- sage/misc/c3_controlled.cpython-312-darwin.so,sha256=4DAKZD-tAbQ740lP6fNhQKiWktYeco2HpE7A9-TbM5A,274112
24
+ sage/misc/c3_controlled.cpython-312-darwin.so,sha256=0SlREqrqz5VZaIkE3ajn1XgQV8eHMkr_HninPEn4cBY,274112
25
25
  sage/misc/reset.pyx,sha256=9xnGnC8yOv-3MKXXEAWcnuc7WLrw6lZQDLqsC91rQ5Y,5675
26
- sage/misc/fpickle.cpython-312-darwin.so,sha256=di-T6ind9zJoi4KO9jEToMcmLMlWSCKG6Sy6FOT7sz8,127920
26
+ sage/misc/fpickle.cpython-312-darwin.so,sha256=C_xl9LmZLMS-UJ9FVviBwYUKu_EdxAFZ1uagtVrIncI,127920
27
27
  sage/misc/sage_ostools.pyx,sha256=CaDOaTvu2JXfOwJk8wsgTF_OT_ivjugrqVvBa2FvvqA,9287
28
28
  sage/misc/function_mangling.pyx,sha256=bVzo7-pJq0kNLBvR4W3AVuCCr7JrVVnj-9oqEq0bQLI,10873
29
- sage/misc/lazy_import.cpython-312-darwin.so,sha256=3erXdawFfS87Anjff6IXK5KXGMLhLNPeUSyVZTUZPJA,237104
30
- sage/misc/lazy_list.pyx,sha256=ib3TZpxutctPqQ2bAwTGVJgo4YIJv8wmKfiBvoBtIsM,38313
29
+ sage/misc/lazy_import.cpython-312-darwin.so,sha256=xRfueFff3Y0IgyFw8qKrCfp8Ev1wjD719NLGGeoze6c,237104
30
+ sage/misc/lazy_list.pyx,sha256=8uPSFQUEqpi098JLpAgHqd_43uWsXfd12DMxZn_pQyU,38284
31
31
  sage/misc/nested_class.pxd,sha256=8jncbDWcavg4ZjbrbtXscGagkcMVU-ZDYH4k15jZyc4,94
32
- sage/misc/sage_ostools.cpython-312-darwin.so,sha256=DJSozZOilJizOIfJgQ9barUgRxzapGPOh52zL70BUac,127440
32
+ sage/misc/sage_ostools.cpython-312-darwin.so,sha256=miZTo1bo_aVhO_U_sYJV3LJasiv21HQbYuSbZyGDZ0o,127440
33
33
  sage/misc/fast_methods.pyx,sha256=RrRNp3UNliUhKPdIXz_mxu1BL_7iHze4vx7Ulpyaw84,11976
34
34
  sage/misc/misc_c.pxd,sha256=6ijmZ05ZScqQVt6NfUEaSbHijl_JK2U4JQlV_E8SxR0,96
35
- sage/misc/cachefunc.pyx,sha256=H2S0-A5IQEOvKZ4XDwq1_3kuCkc5dzVvwL_6FbRKW-Q,127246
35
+ sage/misc/cachefunc.pyx,sha256=PxXg3mtgFy3d2j1QlrvAHRkihnRBwmRjRjy2luSHRbI,127240
36
36
  sage/misc/session.pyx,sha256=vxqDy-kT1QEplhoyuDlRM6WiWmFfYLDZiOmy-gwl3gE,11770
37
37
  sage/misc/inherit_comparison.pxd,sha256=vV-3Ek7tnZ-05_uFZwTAYTjsFM5OR5qFknyDu9jJTwU,139
38
38
  sage/misc/randstate.pxd,sha256=LERpWdd_7yS8mD_MYIES5yxA-Zh060remnG4jROIApc,746
@@ -47,38 +47,38 @@ sage/misc/misc_c.pyx,sha256=NXV3k96bXvVKqt_jmbtlrpBOE_l8tYy6IgLHwl2vZLs,23685
47
47
  sage/misc/timing.py,sha256=sbUPFLljrbKKA0wPBU-wTI-xO1E7DcqUcfxlo4jTU8g,8329
48
48
  sage/misc/lazy_attribute.pyx,sha256=rpc8WnIiCbrZdwi06AxMWKBcN_uuvHlXJ0UI3xpXg2w,19121
49
49
  sage/misc/lazy_list.pxd,sha256=ugiVT7-AGL6qSOBVn6YSELu_TJctsEL-Dzpv65ep3XQ,672
50
- sage/misc/fast_methods.cpython-312-darwin.so,sha256=DDRTAtg87xg3-TZ02E5JAdgDKjSRrix4_HlctvS8LHk,109104
51
- sage/misc/lazy_string.cpython-312-darwin.so,sha256=Oo3elp8TelC5rQbEEnPVXENZkLEYB4sLNEUj3phb-QI,108352
50
+ sage/misc/fast_methods.cpython-312-darwin.so,sha256=WBiFGV0lvugNNixnZbB0IVGunAvN8kBk6uJVI9N-e0k,109104
51
+ sage/misc/lazy_string.cpython-312-darwin.so,sha256=8Yr4YqHW-ntz0LeX_Y6ZauWBrvto0POeCW5PsdckZwU,108352
52
52
  sage/misc/function_mangling.pxd,sha256=n_zmWpk40S2JNrwTiBxFRkZaI9Fj7ZD_E9s_qm7PKu0,330
53
- sage/misc/cachefunc.cpython-312-darwin.so,sha256=6SdaEItidZKX4VCEdO0OdZB8C8yRFckd-W7FK-UeeBg,456288
54
- sage/misc/session.cpython-312-darwin.so,sha256=Sd_5PezyZNhunjXl2Az7wz8dTVx8rBIWkfzlWiJV6-E,99632
53
+ sage/misc/cachefunc.cpython-312-darwin.so,sha256=o6tKjCqRrLqxfwCnOcwCn6hxMmTm92g0lhQd82MHyZM,456288
54
+ sage/misc/session.cpython-312-darwin.so,sha256=j-Xg4T39yESWl3XxryIHJepFDn84ImA6IQLgQEq_PXU,99632
55
55
  sage/misc/lazy_import.pyx,sha256=ku_tlp1o5BwAfRlJSQtUiGg9c23FjLAQDdOqyw2xhoI,41770
56
56
  sage/misc/abstract_method.py,sha256=57iobT5AwJzRPkutZNFoHyHqc4BgAn_NYzvG2PjlP-E,8409
57
57
  sage/misc/test_nested_class.py,sha256=E_r0pvZKHIWw-1V3djlwdSKjY5BbaPmp-UFewrRhTLA,5914
58
- sage/misc/function_mangling.cpython-312-darwin.so,sha256=t0p6QiMY7WQndIxWAQ7fYG4tWEoeazrPRpv782voGyQ,103512
59
- sage/misc/inherit_comparison.cpython-312-darwin.so,sha256=wqkPfIzvOMQ-_87gaENPxmJFYQjqDnOMGCei1aJ8oPU,77736
60
- sage/misc/sageinspect.py,sha256=QPEhtfOAmjM8dXPl1v89np73eO2qJYdRCdrrSZFSCGI,107670
58
+ sage/misc/function_mangling.cpython-312-darwin.so,sha256=Q8HNFyU9xygUTStdpIUZPinZVyaxKL6Ab9C13acpapw,103512
59
+ sage/misc/inherit_comparison.cpython-312-darwin.so,sha256=3mF6mYauPexCqD8ta-y6qc_7G19abKm2dvKZB1jTfWA,77736
60
+ sage/misc/sageinspect.py,sha256=jjtNFSH6QniO3OjJEKv44Fj7gRmA9JBm94mQRCwLcXQ,108872
61
61
  sage/misc/c3_controlled.pxd,sha256=EWT5P-X5Y6-dAslfrcE14QFMLsGHWcLSxCoAEkcN7NY,93
62
62
  sage/misc/fpickle.pyx,sha256=Vh5kja4ylA8ln6_ICX5OUvhOXjZDdnazCkB4SC8tGPc,4900
63
- sage/misc/constant_function.cpython-312-darwin.so,sha256=iZUm2soxxG93_poczWd4oxe98OihUtSBifTBmjDwB8w,106584
64
- sage/misc/lazy_list.cpython-312-darwin.so,sha256=HQotAN9vSgKwShexAtP11Dr8cK31ihm3let_5G7xCPA,195008
65
- sage/misc/weak_dict.cpython-312-darwin.so,sha256=rodnB21dqw5_hptxbzLoayCcS6CH_MhnE3zJYbOiQlM,174944
63
+ sage/misc/constant_function.cpython-312-darwin.so,sha256=xRrpDygBfMWrAmOsy_MvPI7al_f7BWkdNByDWR493Cg,106584
64
+ sage/misc/lazy_list.cpython-312-darwin.so,sha256=j3BdtA85FsmITAULhsH9a-sIQasCI8SaK_LS7h7M_oU,195008
65
+ sage/misc/weak_dict.cpython-312-darwin.so,sha256=-bdq1GUSSW_UDfIMPGyQHNJpL_xM4J4XJMFS462w6KM,174944
66
66
  sage/misc/namespace_package.py,sha256=1Zm09A9QjmQ6i4zp3I2G_x1XEm8wJVFxxZ353LN-EZE,938
67
67
  sage/misc/lazy_string.pxd,sha256=svK96-FOIZqWLd-uY9F-s_tF9buYOvl8goNGVbc_Uv8,182
68
- sage/misc/misc_c.cpython-312-darwin.so,sha256=82nMYAlCZnsstlH9TyvrMWNZj-ifgZ9HiuNp_SrXR80,150272
69
- sage/misc/reset.cpython-312-darwin.so,sha256=_J6EVwDv4n9eSWf2cCO7573dl3TaIwfYtYrvwu4jQ5E,100712
68
+ sage/misc/misc_c.cpython-312-darwin.so,sha256=0-4LPrJU5OJK-jp1EaabUp8JQqXol8FW1Y9wVAFWtNk,150272
69
+ sage/misc/reset.cpython-312-darwin.so,sha256=rehf0upPGdA7BLBf7LMtr_oL57Hib4OZKkMwfVXxoIM,100712
70
70
  sage/misc/persist.pyx,sha256=dy8qDVBTtQrG79tvgeaOLom6QNM8hZTxD7KVGnnuxT0,46217
71
71
  sage/misc/weak_dict.pxd,sha256=7mDU5vWwLDunO53fgGyEhVvSGZKxvHRx-EprQtgBmOA,428
72
72
  sage/misc/call.py,sha256=WerCuE2OSAGLgok9s-2JqTwEIZkvgqfarMUyQsYZlCc,5757
73
- sage/misc/lazy_attribute.cpython-312-darwin.so,sha256=esfdPmNUfMU-wtFWps6p2FZo_k8WmvNwhfnwIB3HWA8,125144
73
+ sage/misc/lazy_attribute.cpython-312-darwin.so,sha256=XvI3JGOi7zfkGSEPF8IsepfBIyuNd1l12n1YNubxy7U,125144
74
74
  sage/misc/all__sagemath_objects.py,sha256=PA6ug9z-uYIb61IYDsyIxyOmch9QQY8KfYqAJin-lco,1544
75
75
  sage/misc/lazy_format.py,sha256=MpN8wJXCvdiyJyOp5x0cfSGNjvUA58bFY7LVjwX5_4c,4379
76
- sage/misc/sage_unittest.py,sha256=gIvNuRKZZZKZzlO_TL5ifEUGc2j0MCxkqF-9Bp5dkRc,24002
76
+ sage/misc/sage_unittest.py,sha256=sTp3rvIV43FgnsznD08LVMF6miRuvTa81VN7a2D9qBg,24177
77
77
  sage/misc/unknown.py,sha256=fVh3T3B3vgSKqYqLjyWu2LhIErNlGQVkcJgqIMAJHtc,6481
78
78
  sage/misc/constant_function.pyx,sha256=gmEpTMwOfsS1xJZBFUJSuDTqfleKvJzuhsWIfBsGN54,3578
79
- sage/misc/nested_class.cpython-312-darwin.so,sha256=HUSqnK9unnesYNhYoG6s5BrdvmlR-8ZSrmwOqO28S9c,127312
79
+ sage/misc/nested_class.cpython-312-darwin.so,sha256=KNMLd8Re8NKVe3mXccMdLlIQao01FKDNqM9sHajjXqE,127312
80
80
  sage/misc/classcall_metaclass.pxd,sha256=_VnrhJRQAclaFng-7vwzhDrQW-mwExvPLgP5bk1YmhM,583
81
- sage/misc/persist.cpython-312-darwin.so,sha256=XBNeJ-YTCfHAG5MmDzLZ_i_O4294Uj9FxiLsJvfL_Nw,263136
81
+ sage/misc/persist.cpython-312-darwin.so,sha256=l0i7ZhEgQ5Z2Dyh3aIdptLrR6OYuDzE8x2QXbPWMJk4,263136
82
82
  sage/misc/decorators.py,sha256=VOubDgl-3KemmGs2kkyUSLd-WYS8XQ2HGTDBeuRSXAM,26572
83
83
  sage/ext/ccobject.h,sha256=eLtqVFdLUrmjR1gkAzuzwRVL55bj31H9-p2n2NKJW3U,1186
84
84
  sage/ext/mod_int.h,sha256=YZd376zB1marQ0lgoSfLlrusWkapb_ueFd8xvhNU0MU,1275
@@ -86,21 +86,21 @@ sage/ext/cplusplus.pxd,sha256=ve_HD4J2IbCyDacdg8O58s6vQBkiCuSeFpQc9HTS-UQ,766
86
86
  sage/ext/mod_int.pxd,sha256=KbuB1xE_rbe3812HzeAnljlBfeASVe8ea2CIK-t-OIM,878
87
87
  sage/ext/stdsage.pxd,sha256=LtnBsa8UN7H5cMbb2AFpj_Bnb9nyl-hQFm2bATj-g_w,1427
88
88
  sage/ext/all__sagemath_objects.py,sha256=YDdaT0ZDVNDu-ssAUrDGDpEkHpGC0KRBZ15j5Xk8O80,169
89
- sage/groups/old.cpython-312-darwin.so,sha256=3n5N7r3BpblTvlBSMGN3EVAeibiQPW4mIGGXdhoXNw0,103416
89
+ sage/groups/old.cpython-312-darwin.so,sha256=0RXE_0EfX-xYxDBmv5CvBQ7_IydbvaAdPpIMSkjjcZk,103416
90
90
  sage/groups/group.pyx,sha256=CGAhNiFVdAT2Kjv8Hh-AFq423cfiCyt-SfvMMR0rDU0,9827
91
91
  sage/groups/old.pyx,sha256=gxDN9ZQSNq3VnccG9So3tLGk2JgSjTrAwKlpkE26aig,6154
92
- sage/groups/group.cpython-312-darwin.so,sha256=T5kKF048H9TvHJbrY0Zwqcnsze2ummTFB5gwmgOOeqc,131592
92
+ sage/groups/group.cpython-312-darwin.so,sha256=v3Hfifqr_cpLTeS9fmZlHSEyB-S4goGfAUc_JQTUC8M,131592
93
93
  sage/groups/old.pxd,sha256=2CXrLHHAFFGvFhOcHEBR4jo65SGynhNEcMF0f9rMsQs,266
94
94
  sage/groups/all__sagemath_objects.py,sha256=U0s3i-j8VG_G3hwosaLXkFtIexExCHE66vo6Xk5_V08,46
95
95
  sage/groups/group.pxd,sha256=l5XDUVBLZZghkEMm3p72KdVJDLxD85Je9otL5yDkXQM,251
96
- sage/arith/power.cpython-312-darwin.so,sha256=ifkBkkz4RNGYKPwvTNujoMMx11pmYprmug7R9_LjOQk,99392
96
+ sage/arith/power.cpython-312-darwin.so,sha256=9DLfSzFpVqOES5VEFOHzihJ_wo56h3hCOY8tcFzTuSQ,99392
97
97
  sage/arith/long.pxd,sha256=wc2jBHq3rpg7oSfahGg7LqU495AgGG-IrU5R6RVXlKA,13944
98
98
  sage/arith/numerical_approx.pxd,sha256=gFWmxAnUn8xt1cMwCW0pxfywfy_ZJ3vrRuNjAjlo1dU,950
99
99
  sage/arith/power.pyx,sha256=SJamErC6EQinYao_I5JMTWNnYRRxUT-t-jRErZq-T5A,3257
100
100
  sage/arith/power.pxd,sha256=CS0qcAvGCF4VdHFFOxfKtF5cmviM0UyOzGfAYghjTCA,630
101
101
  sage/arith/numerical_approx.pyx,sha256=IkdhP04vlBfHcSR4YREYBisONaa9uBWMlQmM8wrF-3Q,2538
102
102
  sage/arith/all__sagemath_objects.py,sha256=Xsmp9IOAIWpXfNhDnlC1rPzaAWwkOnDGBX7TSDM7HKc,222
103
- sage/arith/numerical_approx.cpython-312-darwin.so,sha256=7ntTFCkx25boPD1uxn1-cX4oNfOBuDUGduzYerTIiDY,80344
103
+ sage/arith/numerical_approx.cpython-312-darwin.so,sha256=YuiWCxgwiNI8ws7-7Juh4kN7jIAOxL9bS3hDsm-vO-Y,80344
104
104
  sage/libs/all__sagemath_objects.py,sha256=YDdaT0ZDVNDu-ssAUrDGDpEkHpGC0KRBZ15j5Xk8O80,169
105
105
  sage/libs/gmpxx.pxd,sha256=UZMJb9R2wLkI8IE0cdcheUEZYKVsK9pX6_QGQNIY82E,503
106
106
  sage/libs/gmp/types.pxd,sha256=wR4xaLY3oPMQbId8-bD8VkhyUqQBy8weclDvc5r9AcY,1487
@@ -109,7 +109,7 @@ sage/libs/gmp/mpf.pxd,sha256=pPdAUid-su3Jr_SCBfrNsKyUZpBzAed1enzj6l5KuS0,3670
109
109
  sage/libs/gmp/mpq.pxd,sha256=4E1Ldx99k4EuYKCdgn7iTMqNRy2E8MpzUMErKdxvbZc,2271
110
110
  sage/libs/gmp/misc.pxd,sha256=wibMsVyG72PRhtrGo7w223ivijK0pxmAzsYlaB9ML-g,243
111
111
  sage/libs/gmp/random.pxd,sha256=IVs3XSfaq39Vr7S0IAVoNvU-mvPhmrjyPWJ4OKAl7ns,1020
112
- sage/libs/gmp/pylong.cpython-312-darwin.so,sha256=dfn0Tgz79YjFX5RyV_RhhrCL4HUXPSB3wZgfYmTiX5E,75616
112
+ sage/libs/gmp/pylong.cpython-312-darwin.so,sha256=JBpykyhQpIzTGQsVbYBVHK9Kz9-MgEb8gEjllBwUHC8,75616
113
113
  sage/libs/gmp/__init__.py,sha256=U0s3i-j8VG_G3hwosaLXkFtIexExCHE66vo6Xk5_V08,46
114
114
  sage/libs/gmp/pylong.pxd,sha256=ZAmPJKtIZJW7S7rDdsjiB7WphHyADSwgR8hH8HLWSaE,378
115
115
  sage/libs/gmp/all.pxd,sha256=6w1y2YcnMOazAA-xA2ObVuD6uQ6PvlFGDNa2c6b91dI,219
@@ -117,13 +117,13 @@ sage/libs/gmp/pylong.pyx,sha256=OrXIWymqVFgESFvZ5amY3l4ynBjIel5XnxHQvES5In0,4867
117
117
  sage/libs/gmp/mpz.pxd,sha256=76TOHtrqWB9h9LBY2sQok-8dL3coqIXc6y0pLUANHQU,9628
118
118
  sage/libs/gmp/mpn.pxd,sha256=xqtMwtfyNMXCuUfrM27MYjTJswuynYvqkNW4RNJMBzk,4151
119
119
  sage/libs/gmp/randomize.pxd,sha256=TazhW2I0CQS8oQTa2jA1SKHSgrBha14tNy-6ddnkhFo,2309
120
- sage/cpython/debug.cpython-312-darwin.so,sha256=fcbvqaOacwvNiZ7U_RQrVUZjbrNwa_gY5dqcMXzxFoE,99624
120
+ sage/cpython/debug.cpython-312-darwin.so,sha256=VJgtN53l-FH2mc4XhGD2YbLOg2pFQnzaeANb9_WksP0,99624
121
121
  sage/cpython/dict_del_by_value.pyx,sha256=QXJYSJ1VJzyksOhZVWay0Uvt92Yyuk61YLyuILmY0is,6416
122
122
  sage/cpython/type.pyx,sha256=Xso6fkWMzcPl3lxJAAdy11BQ57gmuDkbIDbi_DmCH0w,1076
123
123
  sage/cpython/getattr.pxd,sha256=8Cb3X41HUmaro-m-uD-Hoto63wxoVvNYYd80wbOYNbU,288
124
124
  sage/cpython/pyx_visit.h,sha256=MFhGSCe_RsFn-D03QfNixKbe-cD2nzwC7JsNFmUd-rY,651
125
125
  sage/cpython/wrapperdescr.pxd,sha256=01d05_VmUeAhJ9tWINAL4MnghxJzJVb7s-bafCejIi0,2263
126
- sage/cpython/cython_metaclass.cpython-312-darwin.so,sha256=wVFjGSLYNRU5s4WnKHp3MDp1edp1Oe8HUUSh9Jupeq8,54456
126
+ sage/cpython/cython_metaclass.cpython-312-darwin.so,sha256=V1GNG9ouKOQz65GA6uziB2gg1rnDlsF9-tXimcwXnas,54456
127
127
  sage/cpython/pycore_long.pxd,sha256=R5pyHcmmdtWn_DyNdvY60pcwgn0sTH38WecVWKclwXA,394
128
128
  sage/cpython/debug.pyx,sha256=dbWOnaY3Gmrs-WrTpfhIhYnLIX9TIHUmzpToiqSHOkY,11765
129
129
  sage/cpython/string_impl.h,sha256=IFEnaYxWnD9-Nn__f3KtGjsMQhUpw1RjHEwSYbDCEyM,1781
@@ -133,31 +133,31 @@ sage/cpython/__init__.py,sha256=N7Hhh8oGxMh3_UVoAlh2hphJAaQVKOHytva7fe2yNa0,786
133
133
  sage/cpython/cython_metaclass.pxd,sha256=lYUJgERJZix2MwpLWrhZm-a6iq7-rT01DAvph4S0T9Y,124
134
134
  sage/cpython/string.pxd,sha256=TvD_ZgtYp36TW8mkjwFZaCyh5RS0ekjiokNAa-qskIE,2588
135
135
  sage/cpython/builtin_types.pyx,sha256=d0O-Ydnf8SKZ-TtMnpK7E5gLGPpTLJjnrSkdyIqI2Lw,196
136
- sage/cpython/builtin_types.cpython-312-darwin.so,sha256=Dfgx46dfyPt3EoCJQIBlmrsJzEFQJwzcfqegsuo7tbk,54944
136
+ sage/cpython/builtin_types.cpython-312-darwin.so,sha256=I2MkOV8-EtVeKyU-4qL2v4fk4CtX282UupUMaGPlZLs,54944
137
137
  sage/cpython/all.py,sha256=Tux0o-rbgpJYFx4d5KeaoqJqhZb7KyqTdCrRD81Gq7A,148
138
- sage/cpython/string.cpython-312-darwin.so,sha256=K2MoTl0YajuHGVxph8x8665zIt2pD6qACFOl8IoL-00,76864
138
+ sage/cpython/string.cpython-312-darwin.so,sha256=t5C3gjRBFW1I1yZYsGaa4ndE70SRaTIuchXLvwgSRlU,76864
139
139
  sage/cpython/string.pyx,sha256=WVruGwr0FdR7ZRxk0sWTVQA5kau9Ar3ZTH6XUyHpBDg,1196
140
140
  sage/cpython/cython_metaclass.pyx,sha256=FOME93m8ak8IfERSVZf28JufCeWGz0R_jL1xPIVfNwI,4833
141
141
  sage/cpython/_py2_random.py,sha256=U4iBlbHd_4HhW6fU2MBPI2ERQZtZFmJIu9j1bPrxlwM,22928
142
- sage/cpython/dict_del_by_value.cpython-312-darwin.so,sha256=SELn6we5Z0pScFLr4l9fzzH_FAzX92x-h_wF_0mfERA,75720
142
+ sage/cpython/dict_del_by_value.cpython-312-darwin.so,sha256=2eRxdnFOwYBVJ1ZHZb1AJKguA7wqclP6XJ7Iv1PMT9U,75720
143
143
  sage/cpython/python_debug.pxd,sha256=EpFaKv-z7KzZ6f7g3o-NYUovfp9Yg-nsWbgFODjxI_w,2032
144
144
  sage/cpython/dict_internal.h,sha256=McGCYoRGYalDPKk-tRx0wtfImuIV9BJ5Xg5PQdzJTR8,7110
145
- sage/cpython/atexit.cpython-312-darwin.so,sha256=XnW6qAVH7ULtb3M6TS_nfycwevRsydmlRI47AtXLQlg,82640
145
+ sage/cpython/atexit.cpython-312-darwin.so,sha256=f7Sp6EXGpai07iB3PYSi4RxaEpE7Mz5GgcdiHz42gYs,81472
146
146
  sage/cpython/getattr.pyx,sha256=-FRx8cibqtRVwD8-hZIZEt1v154UP5ZW5dFPCenQcY4,14954
147
- sage/cpython/getattr.cpython-312-darwin.so,sha256=siTwIh-bxAMzIUpYIC_pNe1X-EZc2ZkKtft3kwpVuHk,101184
147
+ sage/cpython/getattr.cpython-312-darwin.so,sha256=Oz1-lJusBfp6d5hUG_xNZM5EKOXXV2rMoloLNpOXQWY,101184
148
148
  sage/cpython/python_debug.h,sha256=MP_YprVdq11ZK_tNFcK2AakrhBcY_8ct4lCAm5kDT18,875
149
- sage/cpython/atexit.pyx,sha256=kYlC89poO0W6nOQuL5brywiSlNdS22IzepBSkzkzCS8,9371
149
+ sage/cpython/atexit.pyx,sha256=5kAPsFMq6WfMlaaCWkJGsVmbDtpwCHVeBIo04xsIkXo,7310
150
150
  sage/cpython/dict_del_by_value.pxd,sha256=s4fW6tHggYhyNEbYFRca06_uaqZaG0mpKBzHE6usOIk,346
151
151
  sage/cpython/type.pxd,sha256=4o2n1_b9Pcrm3kAFKcUaY-incfgUaeNwfOcqni1PxrY,88
152
- sage/cpython/type.cpython-312-darwin.so,sha256=qxU9OXvEFsz10vxkZ11eTbGVgPnJRbdSwjvtRWzOBAs,59496
153
- sage/sets/pythonclass.cpython-312-darwin.so,sha256=qcwrWEkD1ny3JrXEo3UWJqea8UpyiNDKSZN6rWoABG4,131216
152
+ sage/cpython/type.cpython-312-darwin.so,sha256=el9Ot_kQa0gHq0RDYnq7ZM-Gzs0xlcqkTqKvnYj7L54,59496
153
+ sage/sets/pythonclass.cpython-312-darwin.so,sha256=-3gqzdIIlxyAzid3NkP3Ezx5dTNMv1I6AN3gupeQ0k8,131216
154
154
  sage/sets/pythonclass.pyx,sha256=ZzUjh8bkoqWPCd85Kcx-NnuEghofSQ0NoCG_CpeCpX4,7136
155
155
  sage/sets/all__sagemath_objects.py,sha256=YDdaT0ZDVNDu-ssAUrDGDpEkHpGC0KRBZ15j5Xk8O80,169
156
156
  sage/sets/pythonclass.pxd,sha256=GYb_urQBxr8j28s_6FqtaN0WRZiW2hguXWR3Hztq3LU,189
157
157
  sage/rings/integer_fake.pxd,sha256=D7n-VZrrigxZm_D7NQKNikuWm25lg4u7Ity0y7Pv_Io,1949
158
158
  sage/rings/all__sagemath_objects.py,sha256=YDdaT0ZDVNDu-ssAUrDGDpEkHpGC0KRBZ15j5Xk8O80,169
159
159
  sage/rings/integer_fake.h,sha256=e271zfi8hEZ5nzPLEljAjifRBaB4jOSgf8COx5zH2Zs,396
160
- sage/modules/module.cpython-312-darwin.so,sha256=TH3Vrz4PH2cd8C7qG6rJl53-eG4B76laocVZObg7K9Y,101984
160
+ sage/modules/module.cpython-312-darwin.so,sha256=oIISawaWscOycuJnf_aXyAD3t3V4RqY8R9cEfXDT_5c,101984
161
161
  sage/modules/module.pxd,sha256=l0gI2rRtwVMJPQNkQfJXqEN9EEovo46yAcs-aHio_Uc,125
162
162
  sage/modules/module.pyx,sha256=-QTSiktCdR3n9F5dee8hNk8yVgfWsJ7lzIFtgQHJT6o,12096
163
163
  sage/modules/all__sagemath_objects.py,sha256=U0s3i-j8VG_G3hwosaLXkFtIexExCHE66vo6Xk5_V08,46
@@ -167,10 +167,10 @@ sage/structure/list_clone.pxd,sha256=Uy6QhnoBF8OLylfp74H4hupCyXCd1wVBXO0fAfbWKOw
167
167
  sage/structure/sage_object.pxd,sha256=ucLms0iBHPbK0A-IJ-UDLVEbW66BH719SErTxz23po0,78
168
168
  sage/structure/sage_object_test.py,sha256=ZAhjc7q979clLhRqEWAneSQDWzxP7bXqtRyQwIXY81M,627
169
169
  sage/structure/support_view.py,sha256=qlclI5fZdRBtWwV0UC5o9KmPPCTdqDUY0_YAAWWnf_k,5381
170
- sage/structure/debug_options.cpython-312-darwin.so,sha256=Zed-VvY4MEvcc8lsLMfmirpZhME3j4j-lEvkr4twR68,60864
171
- sage/structure/element_wrapper.cpython-312-darwin.so,sha256=M5I65vhp2aIn_HJwZgjrCzHY_qN-iXdUe6Va6yn6jEk,155224
172
- sage/structure/coerce_maps.cpython-312-darwin.so,sha256=xnRyxgi05XG4BdfO89BKm-EPQ4-as-p8dZ-v1mo4l1A,193616
173
- sage/structure/sage_object.cpython-312-darwin.so,sha256=1rlXeLUNMvWo6NUdS312nj-ZzaomIdMpUeon1gBkV3I,213280
170
+ sage/structure/debug_options.cpython-312-darwin.so,sha256=KmL3bZylBOp5IirK1gQi8PvV4xGT0AKma2wahTFB6EU,60864
171
+ sage/structure/element_wrapper.cpython-312-darwin.so,sha256=RhPjeIZeHF-yk5i3AcCsDecc4beNE-25bPTNtZVYrDw,155224
172
+ sage/structure/coerce_maps.cpython-312-darwin.so,sha256=DEdJVkJ6CnxnEjOIt3Bcrul2l2aubZuvzlmVkJB7r80,193616
173
+ sage/structure/sage_object.cpython-312-darwin.so,sha256=xM5l_SkPrKK7Dvo5UhM_4lK6TQgOOj4WRm27UpoF_8Q,213280
174
174
  sage/structure/coerce_actions.pyx,sha256=lrg_qYJehodMQN7o3Z_5Igfdszz02cInnLa-Ds8zYwA,37252
175
175
  sage/structure/parent_base.pyx,sha256=7Y6Yzx43IDux18_r33Ke_kYndZxYwAvBCW9s6g-YNTo,1764
176
176
  sage/structure/parent_old.pyx,sha256=z-tLmDMh5F_gjUYm5pAshEFtldFZfPhXY49H4vzStZw,10485
@@ -179,11 +179,11 @@ sage/structure/richcmp.pxd,sha256=XI0UNlzfLFW23_8TopFeTl-B6jzDSqhWryKGwbsbTkY,64
179
179
  sage/structure/factory.pyx,sha256=Y6CLDS5XvZZrywNWyo4XhJkyM6Yn_1VJ8MIKZRRNzXs,31258
180
180
  sage/structure/dynamic_class.py,sha256=30FYmhsiPynSJwopAhcOeXrTukqOlJpBNjNhtBYt_gw,20222
181
181
  sage/structure/coerce_maps.pxd,sha256=dm5fxyEnzLHBmAd__K4xLZNuyz0LYpX39YmCmj7amv8,504
182
- sage/structure/element.cpython-312-darwin.so,sha256=dXj8gUnToSlcYfLmumN9p1ZFlhn54_4pe2JDsrIQ7T4,588416
183
- sage/structure/category_object.cpython-312-darwin.so,sha256=XpOvrrKZ-UlvJhJUbjgmUA6k7kpfVDB_i2xm9d1Lyn8,199016
182
+ sage/structure/element.cpython-312-darwin.so,sha256=bf6SoFzsXeL2t3UkUyZZdiAof9pZvvkMzr5mIACFJes,588416
183
+ sage/structure/category_object.cpython-312-darwin.so,sha256=ZCquS72YEwph65MWlvBzJTbIg_yg2oXOILsRMwD3c6M,199016
184
184
  sage/structure/mutability.pyx,sha256=uA5GXQxj1JVE-0Xua5RwV5JgnedSrf0GQPxmrl9HiNs,11493
185
185
  sage/structure/category_object.pxd,sha256=rz9gGO9WiOLQ2XP9PdzSIELHW-4vvPmjXvqdD6huRvY,1030
186
- sage/structure/unique_representation.py,sha256=cdLGUBHPZb4tK3uQ4zqnIH93--I0J6oQQc4wf0N5B5Y,52750
186
+ sage/structure/unique_representation.py,sha256=cSFw-aXRY3jGTOvt3RRORXPVGkSNbcHgVjuBnKJC2AE,52738
187
187
  sage/structure/sequence.py,sha256=MRvLtTYRik3rQvUYLANxgvafNXc9QteQRM1OwbcziPU,29457
188
188
  sage/structure/global_options.py,sha256=OwIgjujCtFcIp5YYDkQpOSPXeVABfPFZiotM2Yq2Ap4,69477
189
189
  sage/structure/test_factory.py,sha256=HL9H4MZC73a6Ew13W4VppvmRpcuqiJFEuM5xw3SZqOk,1760
@@ -196,42 +196,42 @@ sage/structure/factorization_integer.py,sha256=PALiFasjPjEqEz08m1A5qADt14lhMt4Xg
196
196
  sage/structure/coerce.pyx,sha256=IA4rnmiMIndhMGrZMpMD0Hl10ZUK8l6gLuTXoqax2G0,82202
197
197
  sage/structure/coerce_dict.pxd,sha256=3Exj0-GuFQcXtXXKs4ydsU8trgO81fO2cIBP7PDlgZo,1415
198
198
  sage/structure/all.py,sha256=5GYCPE_LABmoZGre1WR9mlhvvpWpzqJMZrS9rAPSan8,798
199
- sage/structure/coerce_dict.cpython-312-darwin.so,sha256=7xb6VETTXxYv5aY8_V9hS7p6wb-qX0C1DoGs7qzhmSg,194944
199
+ sage/structure/coerce_dict.cpython-312-darwin.so,sha256=jNNNB7Rqc1jrmHMSxDMsvRuRj7L96hBUzj65Wp8AIEI,194944
200
200
  sage/structure/element_wrapper.pxd,sha256=MI50lX2z0XmOoaFwGXns-rpOcdcduculNkS8t6VP1i4,319
201
201
  sage/structure/element_wrapper.pyx,sha256=RH3G4VHj1Rop1w5eLV6ynIPVaV_qPxClhZ846aqxPbY,19276
202
202
  sage/structure/factorization.py,sha256=4cKiiZ7KCiTW6MBXWrV3UdyDc-ww7-9p1Twv5LS-n78,45770
203
203
  sage/structure/coerce_dict.pyx,sha256=_DuaRSosZsllXhc57Oe9imVrkc2xkQNzdHeNEAdtjVo,49983
204
- sage/structure/factory.cpython-312-darwin.so,sha256=wIskNJ0xPMJL8Dv7006Q_CqbILzhVEz03-8r3uFwmr0,161568
204
+ sage/structure/factory.cpython-312-darwin.so,sha256=MmLeX7s6tlxVfgo8x4NS91c7fbZITYA6WOc_Z2HrQaw,161568
205
205
  sage/structure/indexed_generators.py,sha256=T3ADtTQ_D3s9waiEbURYTlyr7udHmoCXDCLnSk8xcts,34776
206
206
  sage/structure/coerce.pxd,sha256=FklBQUdf23MFPu33SkIWJC9mQw2jjNSIY7PPMlQCNLQ,1369
207
207
  sage/structure/list_clone_demo.pyx,sha256=oU65ulMRrP8mkP8aNRlBd8j0Z61tIta868Fxui8LDKs,7643
208
208
  sage/structure/debug_options.pyx,sha256=JR58ihocYWnDea5HgTN8WQ_wRVwyYcO6xe8XFM2Ku_k,1974
209
- sage/structure/coerce.cpython-312-darwin.so,sha256=q90oa2a7kaFrFaun1BJBSrpGcwKAmEj_z6riFW9OHkg,344288
209
+ sage/structure/coerce.cpython-312-darwin.so,sha256=oNzB_OtyNzRfDoFfCYp9DTolLAnMZ8eOHSyHoKIpXO0,344288
210
210
  sage/structure/coerce_exceptions.py,sha256=0_og2GtBcrr8me7_8edijpOnlKFbFhAiQS7OfpNslAQ,988
211
- sage/structure/parent_gens.cpython-312-darwin.so,sha256=ifmETYAU_2trrv-wZTubaV0IGqfpqQvAOKSZ93XS9Rw,132544
211
+ sage/structure/parent_gens.cpython-312-darwin.so,sha256=tpTf8yRePXUq-GmjlsyAs61ZPk7Dk3RAm1xV6WBBoz0,132544
212
212
  sage/structure/parent_gens.pxd,sha256=mE16F-vEdWAUeE3atp6ZddvIAteQ6jagiYwnVGjHr3s,802
213
- sage/structure/parent.cpython-312-darwin.so,sha256=f_wtjqLULN9_5UYzL9kl2MTlgIuG0e0Nb-BcEyGnv6A,386176
214
- sage/structure/coerce_actions.cpython-312-darwin.so,sha256=pW1JXO_zSTJ9UCcl_EQonJ02r24q6Eefd2ZM4O1_fEA,228448
213
+ sage/structure/parent.cpython-312-darwin.so,sha256=s4ol6VYD9jkqtZ11l4GaNUKrFMkfkwNXQJRLJQRL8wo,386176
214
+ sage/structure/coerce_actions.cpython-312-darwin.so,sha256=Pd6nbY9pqNBWK1F-7d-zoyYJfX_ysBZpunm3-02RXME,228448
215
215
  sage/structure/formal_sum.py,sha256=-0PPVOHHlfLGQNmU8YV7qNZhrxanAoVorZuFUKSX8Ss,15953
216
216
  sage/structure/mutability.pxd,sha256=SvQMhy7o0PKUnPdNSOdM0w6qpgzEqVzxVXmG1EvmKNo,680
217
217
  sage/structure/category_object.pyx,sha256=iK22UiNYaCgkEc4QeRY4Cu9V7oMBVQCZKhtd4O8NpVM,39030
218
- sage/structure/parent_base.cpython-312-darwin.so,sha256=HuuZCWwnH8RUnqjuD7PttJKNp8cu0LEQRpLxPjrR2mc,82800
218
+ sage/structure/parent_base.cpython-312-darwin.so,sha256=BCgwBRLqHwpDCSl3ijlfXNIwoO8LejEy1OTEoZ_zykc,82800
219
219
  sage/structure/list_clone_timings_cy.pyx,sha256=Yta-vzJVi8ZBH_1mPFJ7mNB11RGB64TqKqtSuil5CPc,2588
220
220
  sage/structure/richcmp.pyx,sha256=3q-PX3EvGzjpYz9uPcoRuHU5NiJt_ax32_-9v5QAgNY,17828
221
221
  sage/structure/coerce_maps.pyx,sha256=n1_2DKjzOu_I6lxkBXnr6hUqFAQau83Z985ryHK1HLY,25878
222
222
  sage/structure/parent_old.pxd,sha256=rzTYw76EYTgql4jxm5X8wvYQ3D8vmU-V8wVQsU3w4Cw,969
223
- sage/structure/parent_old.cpython-312-darwin.so,sha256=_iw9wjK4VHJCeOq-cuc3g4842blbS2hKEADcOrWAn1A,123360
223
+ sage/structure/parent_old.cpython-312-darwin.so,sha256=rh1ouWxKfYtyyG5YjcpTeVJXhSRgPlVwjKYbHnzUhD8,123360
224
224
  sage/structure/element.pxd,sha256=JaMsIvj0HnpDZf2Q1vSs99SIQv3WKCpqkfg9oWLnTuU,7958
225
- sage/structure/list_clone.cpython-312-darwin.so,sha256=K3byshNLUHmHTxvX2OKJxZAcxqDmnPksNXwjgxUQ2As,291216
226
- sage/structure/mutability.cpython-312-darwin.so,sha256=J2JxJDaeaH9RznFVohCbk2dQYFVThoVR9JO6whOIAlo,129552
225
+ sage/structure/list_clone.cpython-312-darwin.so,sha256=NbqJZwfSub2bG3XCgWqNcRBkk8TKBlElL5qP4yIca94,291216
226
+ sage/structure/mutability.cpython-312-darwin.so,sha256=58xGvPNf320l2VvaGsZpHR-tkMhmaVsPNZJO58TsAig,129552
227
227
  sage/structure/coerce_actions.pxd,sha256=4Gzyc43JOKIYDPkKUowbdQ-vYpDTrIxJERUed88b6Oo,528
228
- sage/structure/list_clone_timings_cy.cpython-312-darwin.so,sha256=Sb1xSP2YjR0YlAWdc7fZXiRItPw1oWCsu9waFLmw4PA,78360
228
+ sage/structure/list_clone_timings_cy.cpython-312-darwin.so,sha256=xZ-gF_VKcxOjNUyMfkQRqHQziXp-1-lO0FGYaFTci2A,78360
229
229
  sage/structure/parent_base.pxd,sha256=sQ4wTvOWWZUY8j_zLQjeFpZeXTCpJ6eNAFhL3BPU9tk,585
230
- sage/structure/list_clone_demo.cpython-312-darwin.so,sha256=Uu5cabYpK6PkYfIq051ONa7fUWH48NXMNM2ozLHzzGs,133240
230
+ sage/structure/list_clone_demo.cpython-312-darwin.so,sha256=SCjM86Luroc8G4tCC-RX2Pv15Fu1JKl9QGipxAE63ro,133240
231
231
  sage/structure/nonexact.py,sha256=kyCU30mUCCbiju6ujgVGe57gtAhavlEQvHDYHSYYupA,1736
232
- sage/structure/sage_object.pyx,sha256=v-zZLileKVikJuuZNdYlGp5StPASFAAMgdh7s1mHrPY,32292
233
- sage/structure/list_clone.pyx,sha256=Jbicq-sIZ7WhqD_r0zbaXk4D0JEI820TrIcGN6EEGNQ,58956
234
- sage/structure/richcmp.cpython-312-darwin.so,sha256=ppgkZsnGqwYHw35is_o35ouZd1mqQncIwDeykY3fzO0,127504
232
+ sage/structure/sage_object.pyx,sha256=eLvXjVABCzuRoEG251tVeDS1Yc8vi_zG2PLMDzyWTdE,32244
233
+ sage/structure/list_clone.pyx,sha256=bn_4rDwtdbYkM4lp3vImfYaVnwvgdQrqQYApKbYAh3g,58958
234
+ sage/structure/richcmp.cpython-312-darwin.so,sha256=5MZREzH487ZoXErLFA9bL0gIZ9tljz2R2oPh1tcszsI,127504
235
235
  sage/structure/set_factories_example.py,sha256=NjmC2WP-cCdojYsQhjuZaI9PPlaqMcLdO3FyNnc2aRE,17262
236
236
  sage/structure/parent.pyx,sha256=1xhTOHMo_pVq7-LJ0LbM_lppyF0HMoEjEla99Yu4T5I,120215
237
237
  sage/structure/proof/__init__.py,sha256=U0s3i-j8VG_G3hwosaLXkFtIexExCHE66vo6Xk5_V08,46
@@ -239,7 +239,7 @@ sage/structure/proof/all.py,sha256=oc3nbgOBRqlm6Azip-reTyYu9WejRD4EwD9gN8aBnbk,7
239
239
  sage/structure/proof/proof.py,sha256=0awMTNTW8UkYw-So8sEswkOH3ZJ2NjwMbjTTmcZZodY,10401
240
240
  sage/categories/category_cy_helper.pyx,sha256=8OSlOSed3p6Lp4Sr9vBck7lEtXxnrcnsKjQhbHZh1tY,10890
241
241
  sage/categories/action.pyx,sha256=jmGSGsG4VxsrIa26ShNxk1pnz9UdHxsDH6jxNVlHexQ,21056
242
- sage/categories/map.cpython-312-darwin.so,sha256=UapIwpyFKL-E9VkBzqnoSBm8iUOVORg-DzgINCxfqHc,295128
242
+ sage/categories/map.cpython-312-darwin.so,sha256=impjqwicxHlgUXCFoIgaBsd7CAAS8h_1UCPANXYYIPY,295128
243
243
  sage/categories/algebra_functor.py,sha256=uAzDhMfZtzhoLyWTo9EXcsp88eMWQiyKdVuGKjNIZu4,24518
244
244
  sage/categories/quotients.py,sha256=aWaYtsUG0-ZHgmuvchh6zfkx6xJxxLumLINPChE942Y,2562
245
245
  sage/categories/morphism.pxd,sha256=udKj7cdyqm5oVHsn1abH2D9j2Xyd_47e2ZpTi0ouyVg,347
@@ -253,24 +253,24 @@ sage/categories/realizations.py,sha256=4ocuBKRQmROJGau7k-6OizQVLmgiGIOGRwSIvJGE_
253
253
  sage/categories/category_singleton.pyx,sha256=xwsrucWotXXe-lZib5PSE7cMz_5qfIOTS9rIpbxFNns,13719
254
254
  sage/categories/homsets.py,sha256=D8Lf2aqcWUcbeDUx7sTAW_MLTU6Tbthlem708qxsjFg,12567
255
255
  sage/categories/isomorphic_objects.py,sha256=Uyr_YZf3yyUAB9o5afQNMILaXe8PwM1wKGlt00OGPdg,2993
256
- sage/categories/morphism.cpython-312-darwin.so,sha256=aHe_eiVG1mYIEWo79TY0VkNrDVN6PBdBkdhqGDiSBpA,220624
256
+ sage/categories/morphism.cpython-312-darwin.so,sha256=pJWBCgz_-WGEaV7lBogoRThZXQj8Kh8JOOTCt-StKtY,220624
257
257
  sage/categories/pushout.py,sha256=D1aW5fogmVyvjE0SGDzQqK4YD67bO445OIpBUZK5lQA,192358
258
258
  sage/categories/category_types.py,sha256=5zGnHgih48q7hEjKl4Sh72fhAnJXmDElgniKe63VHDo,20303
259
259
  sage/categories/map.pyx,sha256=T2JEvZlFbCTXIN-PfbXOTG3JNouw8mlfqltV-Q0MPVk,78451
260
- sage/categories/functor.cpython-312-darwin.so,sha256=EuyTAS7z94NDTeJXwvMFn5hrOeUuU_9Mkva39FFqSy0,153024
260
+ sage/categories/functor.cpython-312-darwin.so,sha256=PM8czk1rYJ50zD4cBvg3t7zJrsgxwITQldlCifNJrvY,153024
261
261
  sage/categories/map.pxd,sha256=BuIaeaQ6Kid0Vu6BtwWpZjU6Kbdgfl_oL02qvdtgB2s,1093
262
262
  sage/categories/homset.py,sha256=U8rhTZaH1hSypzW7UHjddBlzl51RIMw297vjNdVybVA,53173
263
263
  sage/categories/basic.py,sha256=V1FArAZxEZpxXXHcsY60rknBOSsWqvEbMzVTik8yWJ4,2576
264
264
  sage/categories/category_singleton.pxd,sha256=Jm1lACWOGrs6Jjsy_fdv61NQSyQqnaKftAiNBNJYhgI,139
265
265
  sage/categories/covariant_functorial_construction.py,sha256=1iCOoZ-1heNULiTQfGNJ4uN2MDRDQZErWDHx6p-A-MI,27547
266
- sage/categories/category_singleton.cpython-312-darwin.so,sha256=HT6RSDSKMyhw-Dym3-XHRCeaMULxYnH2jQp5QgBO6qY,127432
266
+ sage/categories/category_singleton.cpython-312-darwin.so,sha256=TGfAEFRdPyYZe6NbI2x9UShWSelFrE1EGhc7UJy6MQY,127432
267
267
  sage/categories/category_with_axiom.py,sha256=0yXKkQJVa_eNoZYZi4HPsK3OmdhG758l4kw2BcfrDPU,114821
268
268
  sage/categories/functor.pxd,sha256=HcrYjA83mrJpvnb9xRD7ygHrMIi5FOQSgyRfivnIb5I,203
269
- sage/categories/category_cy_helper.cpython-312-darwin.so,sha256=AnWJhxe-KT0wn60NE4BtuUg-E0_hpSkTguLhB0z4djc,120312
269
+ sage/categories/category_cy_helper.cpython-312-darwin.so,sha256=jrrRe_I4midHSBgPTpm4zjs-yFFRNkoOVdctoaVobiw,120312
270
270
  sage/categories/morphism.pyx,sha256=JL2rzsKeXkcC2cJoYgNuE2Y6au1L1KGGYVM0B_CvLV4,29074
271
271
  sage/categories/cartesian_product.py,sha256=8-y9HOn7IHC4eoOxfSJxaNgTq5RRmwalAW-48i6H9B8,10183
272
272
  sage/categories/objects.py,sha256=h-o39k-ugble8Xp_W2X4kPdpdiJ6r8HX-HwVBV9NVKQ,5346
273
- sage/categories/action.cpython-312-darwin.so,sha256=74W1pAwTdv72sjPnkM_OR7Y32jdLeQs4ggqbcigTRGw,172720
273
+ sage/categories/action.cpython-312-darwin.so,sha256=i87Rtx232AMje12jB5ZoryrjxEgeV54ZNVK9URXAizw,172720
274
274
  sage/categories/with_realizations.py,sha256=tYlFsLXAZzZjZrbPS2YM76Qx9ipjSdOt00ng5pgQqrs,13163
275
275
  sage/categories/all__sagemath_objects.py,sha256=l0cQjqOFqQLeB_KplQnKRfuL566SRDm5Q9eBkz72_l4,1148
276
276
  sage/categories/subquotients.py,sha256=t4hQukYFVMlI_ZGM7PdXKkT0ch2qVSDHvhbUCIToBPI,706
@@ -2,5 +2,5 @@ Wheel-Version: 1.0
2
2
  Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_13_0_arm64
5
- Generator: delocate 0.13.1.dev19+g357d56730
5
+ Generator: delocate 0.13.0
6
6
 
Binary file
Binary file
Binary file
sage/cpython/atexit.pyx CHANGED
@@ -144,97 +144,51 @@ cdef class restore_atexit:
144
144
  _set_exithandlers(self._exithandlers)
145
145
 
146
146
  from cpython.ref cimport PyObject
147
- import sys
148
147
 
149
- # Implement a uniform interface for getting atexit callbacks
148
+ # Implement "_atexit_callbacks()" for each supported python version
150
149
  cdef extern from *:
151
150
  """
152
- #ifndef Py_BUILD_CORE
153
151
  #define Py_BUILD_CORE
154
- #endif
155
152
  #undef _PyGC_FINALIZED
156
153
  #include "internal/pycore_interp.h"
157
154
  #include "internal/pycore_pystate.h"
158
-
159
- // Always define this struct for Cython's use
160
- typedef struct {
161
- PyObject *func;
162
- PyObject *args;
163
- PyObject *kwargs;
164
- } atexit_callback_struct;
165
-
166
- #if PY_VERSION_HEX >= 0x030e0000
167
- // Python 3.14+: atexit uses a PyList
168
- static PyObject* get_atexit_callbacks_list(PyObject *self) {
155
+ #if PY_VERSION_HEX >= 0x030c0000
156
+ // struct atexit_callback was renamed in 3.12 to atexit_py_callback
157
+ #define atexit_callback atexit_py_callback
158
+ #endif
159
+ static atexit_callback ** _atexit_callbacks(PyObject *self) {
169
160
  PyInterpreterState *interp = _PyInterpreterState_GET();
170
161
  struct atexit_state state = interp->atexit;
171
162
  return state.callbacks;
172
163
  }
173
-
174
- // Dummy function for Python 3.14+ (never called)
175
- static atexit_callback_struct** get_atexit_callbacks_array(PyObject *self) {
176
- return NULL;
177
- }
178
- #else
179
- // Python < 3.14: atexit uses C array
180
- static atexit_callback_struct** get_atexit_callbacks_array(PyObject *self) {
181
- PyInterpreterState *interp = _PyInterpreterState_GET();
182
- struct atexit_state state = interp->atexit;
183
- // Cast from atexit_callback** to our struct type
184
- return (atexit_callback_struct**)state.callbacks;
185
- }
186
-
187
- // Dummy function for Python < 3.14 (never called)
188
- static PyObject* get_atexit_callbacks_list(PyObject *self) {
189
- return NULL;
190
- }
191
- #endif
192
164
  """
193
- # Declare both functions - they exist in all Python versions (one is dummy)
194
- PyObject* get_atexit_callbacks_list(object module)
195
-
196
- ctypedef struct atexit_callback_struct:
165
+ ctypedef struct atexit_callback:
197
166
  PyObject* func
198
167
  PyObject* args
199
168
  PyObject* kwargs
200
- atexit_callback_struct** get_atexit_callbacks_array(object module)
169
+ atexit_callback** _atexit_callbacks(object module)
201
170
 
202
171
 
203
172
  def _get_exithandlers():
204
173
  """Return list of exit handlers registered with the atexit module."""
205
- cdef list exithandlers = []
206
- cdef atexit_callback_struct ** callbacks
207
- cdef atexit_callback_struct callback
174
+ cdef atexit_callback ** callbacks
175
+ cdef atexit_callback callback
176
+ cdef list exithandlers
208
177
  cdef int idx
209
178
  cdef object kwargs
210
-
211
- # Python 3.14+ uses a PyList directly
212
- if sys.version_info >= (3, 14):
213
- callbacks_list = <object>get_atexit_callbacks_list(atexit)
214
- if callbacks_list is None:
215
- return exithandlers
216
- # callbacks is a list of tuples: [(func, args, kwargs), ...]
217
- # Normalize kwargs to ensure it's always a dict (not None)
218
- # Note: In Python 3.14+, atexit stores callbacks in LIFO order
219
- # (most recently registered first), but we return them in FIFO
220
- # order (registration order) for consistency with earlier versions
221
- for item in reversed(callbacks_list):
222
- func, args, kwargs = item
223
- if kwargs is None:
224
- kwargs = {}
225
- exithandlers.append((func, args, kwargs))
226
- else:
227
- # Python < 3.14 uses C array
228
- callbacks = get_atexit_callbacks_array(atexit)
229
- for idx in range(atexit._ncallbacks()):
230
- callback = callbacks[idx][0]
231
- if callback.kwargs:
232
- kwargs = <object>callback.kwargs
233
- else:
234
- kwargs = {}
235
- exithandlers.append((<object>callback.func,
236
- <object>callback.args,
237
- kwargs))
179
+
180
+ exithandlers = []
181
+ callbacks = _atexit_callbacks(atexit)
182
+
183
+ for idx in range(atexit._ncallbacks()):
184
+ callback = callbacks[idx][0]
185
+ if callback.kwargs:
186
+ kwargs = <object>callback.kwargs
187
+ else:
188
+ kwargs = {}
189
+ exithandlers.append((<object>callback.func,
190
+ <object>callback.args,
191
+ kwargs))
238
192
  return exithandlers
239
193
 
240
194
 
@@ -249,9 +203,6 @@ def _set_exithandlers(exithandlers):
249
203
 
250
204
  # We could do this more efficiently by directly rebuilding the array
251
205
  # of atexit_callbacks, but this is much simpler
252
- # Note: exithandlers is in registration order (FIFO).
253
- # In Python 3.14+, atexit.register prepends to the list (LIFO),
254
- # so registering in forward order gives us the correct execution order.
255
206
  for callback in exithandlers:
256
207
  atexit.register(callback[0], *callback[1], **callback[2])
257
208
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
sage/misc/cachefunc.pyx CHANGED
@@ -379,7 +379,7 @@ in caches. This can be achieved by defining an appropriate method
379
379
  sage: hash(b)
380
380
  Traceback (most recent call last):
381
381
  ...
382
- TypeError: ...unhashable type: 'sage.rings.padics.qadic_flint_CR.qAdicCappedRelativeElement'...
382
+ TypeError: unhashable type: 'sage.rings.padics.qadic_flint_CR.qAdicCappedRelativeElement'
383
383
  sage: from sage.misc.cachefunc import cached_method
384
384
  sage: @cached_method
385
385
  ....: def f(x): return x == a
Binary file
Binary file
Binary file
Binary file
sage/misc/lazy_list.pyx CHANGED
@@ -535,15 +535,16 @@ cdef class lazy_list_generic():
535
535
 
536
536
  EXAMPLES::
537
537
 
538
+ sage: from itertools import count
538
539
  sage: from sage.misc.lazy_list import lazy_list
539
- sage: m = lazy_list(iter([0, 1, 4, 9, 16, 25, 36, 49, 64, 81]))
540
+ sage: m = lazy_list(count())
540
541
  sage: x = loads(dumps(m))
541
542
  sage: y = iter(x)
542
543
  sage: print("{} {} {}".format(next(y), next(y), next(y)))
543
- 0 1 4
544
+ 0 1 2
544
545
  sage: m2 = m[3::2]
545
546
  sage: loads(dumps(m2))
546
- lazy list [9, 25, 49, ...]
547
+ lazy list [3, 5, 7, ...]
547
548
  """
548
549
  if self.master is None:
549
550
  raise NotImplementedError
@@ -916,9 +917,8 @@ cdef class lazy_list_from_iterator(lazy_list_generic):
916
917
  [0, 1, 2]
917
918
  sage: [next(x), next(y)]
918
919
  [3, 3]
919
- sage: m2 = lazy_list(iter([0, 1, 4, 9, 16]))
920
- sage: loads(dumps(m2))
921
- lazy list [0, 1, 4, ...]
920
+ sage: loads(dumps(m))
921
+ lazy list [0, 1, 2, ...]
922
922
  """
923
923
 
924
924
  def __init__(self, iterator, cache=None, stop=None):
@@ -987,9 +987,10 @@ cdef class lazy_list_from_iterator(lazy_list_generic):
987
987
  TESTS::
988
988
 
989
989
  sage: from sage.misc.lazy_list import lazy_list_from_iterator
990
- sage: loads(dumps(lazy_list_from_iterator(iter([0, 1, 4, 9, 16]))))
991
- lazy list [0, 1, 4, ...]
992
- sage: loads(dumps(lazy_list_from_iterator(iter([0, 1, 4, 9, 16]), ['a'])))
990
+ sage: from itertools import count
991
+ sage: loads(dumps(lazy_list_from_iterator(count())))
992
+ lazy list [0, 1, 2, ...]
993
+ sage: loads(dumps(lazy_list_from_iterator(count(), ['a'])))
993
994
  lazy list ['a', 0, 1, ...]
994
995
  """
995
996
  return lazy_list_from_iterator, (self.iterator, self.cache, self.stop)
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -216,14 +216,6 @@ class TestSuite:
216
216
  ....: def _test_b(self, tester): tester.fail()
217
217
  ....: def _test_c(self, tester): pass
218
218
  ....: def _test_d(self, tester): tester.fail()
219
- ....: def _test_pickling(self, tester):
220
- ....: from _pickle import PicklingError
221
- ....: from sage.misc.persist import dumps
222
- ....: try:
223
- ....: dumps(self)
224
- ....: tester.fail("Expected PicklingError")
225
- ....: except PicklingError:
226
- ....: pass
227
219
 
228
220
  sage: TestSuite(Blah()).run()
229
221
  Failure in _test_b:
@@ -236,7 +228,13 @@ class TestSuite:
236
228
  ...
237
229
  AssertionError: None
238
230
  ------------------------------------------------------------
239
- The following tests failed: _test_b, _test_d
231
+ Failure in _test_pickling:
232
+ Traceback (most recent call last):
233
+ ...
234
+ ...PicklingError: Can't pickle <class '__main__.Blah'>: attribute
235
+ lookup ...Blah... failed
236
+ ------------------------------------------------------------
237
+ The following tests failed: _test_b, _test_d, _test_pickling
240
238
 
241
239
  sage: TestSuite(Blah()).run(verbose = True)
242
240
  running ._test_a() . . . pass
@@ -254,8 +252,13 @@ class TestSuite:
254
252
  ------------------------------------------------------------
255
253
  running ._test_new() . . . pass
256
254
  running ._test_not_implemented_methods() . . . pass
257
- running ._test_pickling() . . . pass
258
- The following tests failed: _test_b, _test_d
255
+ running ._test_pickling() . . . fail
256
+ Traceback (most recent call last):
257
+ ...
258
+ ...PicklingError: Can't pickle <class '__main__.Blah'>: attribute
259
+ lookup ...Blah... failed
260
+ ------------------------------------------------------------
261
+ The following tests failed: _test_b, _test_d, _test_pickling
259
262
 
260
263
  File "/opt/sage/local/lib/python/site-packages/sage/misc/sage_unittest.py", line 183, in run
261
264
  test_method(tester = tester)
sage/misc/sageinspect.py CHANGED
@@ -460,9 +460,8 @@ class SageArgSpecVisitor(ast.NodeVisitor):
460
460
  sage: v = visitor.visit(ast.parse("{'a':('e',2,[None,({False:True},'pi')]), 37.0:'temp'}").body[0].value)
461
461
  sage: sorted(v.items(), key=lambda x: str(x[0]))
462
462
  [(37.0, 'temp'), ('a', ('e', 2, [None, ({False: True}, 'pi')]))]
463
- sage: v = ast.parse("jc = ['veni', 'vidi', 'vici']").body[0]
464
- sage: isinstance(v, ast.Assign)
465
- True
463
+ sage: v = ast.parse("jc = ['veni', 'vidi', 'vici']").body[0]; v
464
+ <...ast.Assign object at ...>
466
465
  sage: attrs = [x for x in dir(v) if not x.startswith('__')]
467
466
  sage: '_attributes' in attrs and '_fields' in attrs and 'col_offset' in attrs
468
467
  True
@@ -493,6 +492,31 @@ class SageArgSpecVisitor(ast.NodeVisitor):
493
492
  """
494
493
  return node.id
495
494
 
495
+ def visit_NameConstant(self, node):
496
+ """
497
+ Visit a Python AST :class:`ast.NameConstant` node.
498
+
499
+ This is an optimization added in Python 3.4 for the special cases
500
+ of True, False, and None.
501
+
502
+ INPUT:
503
+
504
+ - ``node`` -- the node instance to visit
505
+
506
+ OUTPUT: ``None``, ``True``, ``False``
507
+
508
+ EXAMPLES::
509
+
510
+ sage: import ast, sage.misc.sageinspect as sms
511
+ sage: visitor = sms.SageArgSpecVisitor()
512
+ sage: vis = lambda x: visitor.visit_NameConstant(ast.parse(x).body[0].value)
513
+ sage: [vis(n) for n in ['True', 'False', 'None']]
514
+ [True, False, None]
515
+ sage: [type(vis(n)) for n in ['True', 'False', 'None']]
516
+ [<class 'bool'>, <class 'bool'>, <class 'NoneType'>]
517
+ """
518
+ return node.value
519
+
496
520
  def visit_arg(self, node):
497
521
  r"""
498
522
  Visit a Python AST :class:`ast.arg` node.
@@ -520,6 +544,51 @@ class SageArgSpecVisitor(ast.NodeVisitor):
520
544
  """
521
545
  return node.arg
522
546
 
547
+ def visit_Num(self, node):
548
+ """
549
+ Visit a Python AST :class:`ast.Num` node.
550
+
551
+ INPUT:
552
+
553
+ - ``node`` -- the node instance to visit
554
+
555
+ OUTPUT: the number the ``node`` represents
556
+
557
+ EXAMPLES::
558
+
559
+ sage: import ast, sage.misc.sageinspect as sms
560
+ sage: visitor = sms.SageArgSpecVisitor()
561
+ sage: vis = lambda x: visitor.visit_Num(ast.parse(x).body[0].value)
562
+ sage: [vis(n) for n in ['123', '0.0']]
563
+ [123, 0.0]
564
+
565
+ .. NOTE::
566
+
567
+ On Python 3 negative numbers are parsed first, for some reason, as
568
+ a UnaryOp node.
569
+ """
570
+ return node.value
571
+
572
+ def visit_Str(self, node):
573
+ r"""
574
+ Visit a Python AST :class:`ast.Str` node.
575
+
576
+ INPUT:
577
+
578
+ - ``node`` -- the node instance to visit
579
+
580
+ OUTPUT: the string the ``node`` represents
581
+
582
+ EXAMPLES::
583
+
584
+ sage: import ast, sage.misc.sageinspect as sms
585
+ sage: visitor = sms.SageArgSpecVisitor()
586
+ sage: vis = lambda x: visitor.visit_Str(ast.parse(x).body[0].value)
587
+ sage: [vis(s) for s in ['"abstract"', "'syntax'", r'''r"tr\ee"''']]
588
+ ['abstract', 'syntax', 'tr\\ee']
589
+ """
590
+ return node.value
591
+
523
592
  def visit_List(self, node):
524
593
  """
525
594
  Visit a Python AST :class:`ast.List` node.
@@ -751,28 +820,6 @@ class SageArgSpecVisitor(ast.NodeVisitor):
751
820
  if op == 'USub':
752
821
  return -self.visit(node.operand)
753
822
 
754
- def visit_Constant(self, node):
755
- """
756
- Visit a Python AST :class:`ast.Constant` node.
757
-
758
- INPUT:
759
-
760
- - ``node`` -- the node instance to visit
761
-
762
- OUTPUT: the constant value the ``node`` represents
763
-
764
- EXAMPLES::
765
-
766
- sage: import ast, sage.misc.sageinspect as sms
767
- sage: visitor = sms.SageArgSpecVisitor()
768
- sage: vis = lambda x: visitor.visit_Constant(ast.parse(x).body[0].value)
769
- sage: [vis(n) for n in ['123', '0', '3.14', '"hello"', 'True', 'False', 'None']]
770
- [123, 0, 3.14, 'hello', True, False, None]
771
- sage: [type(vis(n)) for n in ['123', '0', '3.14', '"hello"', 'True', 'False', 'None']]
772
- [<class 'int'>, <class 'int'>, <class 'float'>, <class 'str'>, <class 'bool'>, <class 'bool'>, <class 'NoneType'>]
773
- """
774
- return node.value
775
-
776
823
 
777
824
  def _grep_first_pair_of_parentheses(s):
778
825
  r"""
Binary file
Binary file
sage/misc/weak_dict.pyx CHANGED
@@ -466,7 +466,7 @@ cdef class WeakValueDictionary(dict):
466
466
  sage: D.setdefault(matrix([]), ZZ) # needs sage.modules
467
467
  Traceback (most recent call last):
468
468
  ...
469
- TypeError: ...mutable matrices are unhashable...
469
+ TypeError: mutable matrices are unhashable
470
470
  """
471
471
  cdef PyObject* wr = PyDict_GetItemWithError(self, k)
472
472
  if wr != NULL:
@@ -540,7 +540,7 @@ cdef class WeakValueDictionary(dict):
540
540
  sage: D[matrix([])] = ZZ # needs sage.modules
541
541
  Traceback (most recent call last):
542
542
  ...
543
- TypeError: ...mutable matrices are unhashable...
543
+ TypeError: mutable matrices are unhashable
544
544
  """
545
545
  self._set_item(k, v)
546
546
 
@@ -586,7 +586,7 @@ cdef class WeakValueDictionary(dict):
586
586
  sage: D.pop(matrix([])) # needs sage.modules
587
587
  Traceback (most recent call last):
588
588
  ...
589
- TypeError: ...mutable matrices are unhashable...
589
+ TypeError: mutable matrices are unhashable
590
590
  """
591
591
  cdef PyObject* wr = PyDict_GetItemWithError(self, k)
592
592
  if wr == NULL:
@@ -663,7 +663,7 @@ cdef class WeakValueDictionary(dict):
663
663
  sage: D.get(matrix([])) # needs sage.modules
664
664
  Traceback (most recent call last):
665
665
  ...
666
- TypeError: ...mutable matrices are unhashable...
666
+ TypeError: mutable matrices are unhashable
667
667
  """
668
668
  cdef PyObject * wr = PyDict_GetItemWithError(self, k)
669
669
  if wr == NULL:
@@ -702,7 +702,7 @@ cdef class WeakValueDictionary(dict):
702
702
  sage: D[matrix([])] # needs sage.modules
703
703
  Traceback (most recent call last):
704
704
  ...
705
- TypeError: ...mutable matrices are unhashable...
705
+ TypeError: mutable matrices are unhashable
706
706
  """
707
707
  cdef PyObject* wr = PyDict_GetItemWithError(self, k)
708
708
  if wr == NULL:
@@ -745,7 +745,7 @@ cdef class WeakValueDictionary(dict):
745
745
  sage: matrix([]) in D # needs sage.modules
746
746
  Traceback (most recent call last):
747
747
  ...
748
- TypeError: ...mutable matrices are unhashable...
748
+ TypeError: mutable matrices are unhashable
749
749
  """
750
750
  cdef PyObject* wr = PyDict_GetItemWithError(self, k)
751
751
  return (wr != NULL) and (PyWeakref_GetObject(wr) != Py_None)
Binary file
Binary file
Binary file
@@ -774,7 +774,7 @@ cdef class ClonableArray(ClonableElement):
774
774
  sage: c.index(5)
775
775
  Traceback (most recent call last):
776
776
  ...
777
- ValueError: ...not in list
777
+ ValueError: 5 is not in list
778
778
  """
779
779
  if start is None:
780
780
  return self._list.index(x)
Binary file
@@ -410,7 +410,7 @@ cdef class SageObject:
410
410
  sage: hash(b)
411
411
  Traceback (most recent call last):
412
412
  ...
413
- TypeError: ...unhashable type: 'sage.rings.padics.qadic_flint_CR.qAdicCappedRelativeElement'...
413
+ TypeError: unhashable type: 'sage.rings.padics.qadic_flint_CR.qAdicCappedRelativeElement'
414
414
  sage: @cached_method
415
415
  ....: def f(x): return x==a
416
416
  sage: f(b)
@@ -665,12 +665,11 @@ cdef class SageObject:
665
665
  TESTS::
666
666
 
667
667
  sage: class Bla(SageObject): pass
668
- sage: from _pickle import PicklingError
669
- sage: try:
670
- ....: Bla()._test_pickling()
671
- ....: except PicklingError as e:
672
- ....: print("PicklingError caught")
673
- PicklingError caught
668
+ sage: Bla()._test_pickling()
669
+ Traceback (most recent call last):
670
+ ...
671
+ PicklingError: Can't pickle <class '__main__.Bla'>: attribute
672
+ lookup ... failed
674
673
 
675
674
  TODO: for a stronger test, this could send the object to a
676
675
  remote Sage session, and get it back.
@@ -83,7 +83,7 @@ must be hashable, i.e., must be valid as dictionary keys::
83
83
  sage: C([1,2])
84
84
  Traceback (most recent call last):
85
85
  ...
86
- TypeError: ...unhashable type: 'list'...
86
+ TypeError: unhashable type: 'list'
87
87
 
88
88
  In addition, equivalent ways of providing the arguments are *not*
89
89
  automatically normalised when forming the cache key, and hence different but
@@ -733,7 +733,7 @@ class CachedRepresentation(WithPicklingByInitArgs):
733
733
  sage: MyClass(value = [1,2,3])
734
734
  Traceback (most recent call last):
735
735
  ...
736
- TypeError: ...unhashable type: 'list'...
736
+ TypeError: unhashable type: 'list'
737
737
 
738
738
  .. rubric:: Argument preprocessing
739
739