passagemath-objects 10.6.31__tar.gz → 10.6.31rc2__tar.gz
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.
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/PKG-INFO +2 -2
- passagemath_objects-10.6.31rc2/VERSION.txt +1 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/PKG-INFO +2 -2
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/pyproject.toml +4 -4
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/atexit.pyx +24 -73
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/cachefunc.pyx +1 -1
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_list.pyx +10 -9
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/sage_unittest.py +14 -11
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/sageinspect.py +72 -25
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/weak_dict.pyx +6 -6
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/list_clone.pyx +1 -1
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/sage_object.pyx +6 -7
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/unique_representation.py +2 -2
- passagemath_objects-10.6.31/VERSION.txt +0 -1
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/MANIFEST.in +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/README.rst +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/SOURCES.txt +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/dependency_links.txt +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/requires.txt +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/top_level.txt +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/long.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/numerical_approx.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/numerical_approx.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/power.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/power.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/action.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/action.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/algebra_functor.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/basic.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/cartesian_product.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_cy_helper.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_cy_helper.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_singleton.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_singleton.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_types.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_with_axiom.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/covariant_functorial_construction.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/facade_sets.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/functor.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/functor.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/homset.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/homsets.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/isomorphic_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/map.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/map.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/morphism.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/morphism.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/primer.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/pushout.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/quotients.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/realizations.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/sets_cat.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/sets_with_partial_maps.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/subobjects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/subquotients.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/with_realizations.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/__init__.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/_py2_random.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/all.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/builtin_types.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/cython_metaclass.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/cython_metaclass.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/cython_metaclass.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/debug.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/dict_del_by_value.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/dict_del_by_value.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/dict_internal.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/getattr.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/getattr.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/meson.build +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/pycore_long.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/pycore_long.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/python_debug.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/python_debug.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/pyx_visit.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/string.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/string.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/string_impl.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/type.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/type.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/cpython/wrapperdescr.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/ccobject.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/cplusplus.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/mod_int.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/mod_int.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/ext/stdsage.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/groups/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/groups/group.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/groups/group.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/groups/old.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/groups/old.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/__init__.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/all.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/binop.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/meson.build +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/misc.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/mpf.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/mpn.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/mpq.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/mpz.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/pylong.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/pylong.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/random.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/randomize.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmp/types.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/libs/gmpxx.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/abstract_method.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/bindable_class.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/c3_controlled.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/c3_controlled.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/cachefunc.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/call.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/classcall_metaclass.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/classcall_metaclass.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/constant_function.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/decorators.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/fast_methods.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/fast_methods.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/flatten.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/fpickle.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/function_mangling.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/function_mangling.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/inherit_comparison.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/inherit_comparison.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/inherit_comparison_impl.c +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/instancedoc.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_attribute.pyi +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_attribute.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_format.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_import.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_import_cache.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_list.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_string.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/lazy_string.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/misc.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/misc_c.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/misc_c.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/namespace_package.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/nested_class.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/nested_class.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/persist.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/prandom.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/randstate.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/randstate.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/repr.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/reset.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/sage_ostools.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/sage_timeit.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/sage_timeit_class.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/session.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/superseded.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/test_nested_class.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/timing.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/unknown.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/verbose.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/misc/weak_dict.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/modules/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/modules/module.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/modules/module.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/rings/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/rings/integer_fake.h +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/rings/integer_fake.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/sets/all__sagemath_objects.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/sets/pythonclass.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/sets/pythonclass.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/__init__.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/all.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/category_object.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/category_object.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_actions.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_actions.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_dict.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_dict.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_exceptions.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_maps.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/coerce_maps.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/debug_options.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/debug_options.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/dynamic_class.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/element.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/element.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/element_wrapper.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/element_wrapper.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/factorization.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/factorization_integer.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/factory.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/formal_sum.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/gens_py.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/global_options.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/indexed_generators.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/list_clone.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/list_clone_demo.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/list_clone_timings.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/list_clone_timings_cy.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/meson.build +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/mutability.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/mutability.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/nonexact.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_base.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_base.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_gens.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_gens.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_old.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/parent_old.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/proof/__init__.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/proof/all.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/proof/proof.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/richcmp.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/richcmp.pyx +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/sage_object.pxd +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/sage_object_test.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/sequence.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/set_factories.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/set_factories_example.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/support_view.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/test_factory.py +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/setup.cfg +0 -0
- {passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: passagemath-objects
|
|
3
|
-
Version: 10.6.
|
|
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.
|
|
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"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
10.6.31.rc2
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/passagemath_objects.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: passagemath-objects
|
|
3
|
-
Version: 10.6.
|
|
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.
|
|
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"
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
# Minimum requirements for the build system to execute.
|
|
3
3
|
requires = [
|
|
4
4
|
'setuptools >= 77.0.0',
|
|
5
|
-
'passagemath-conf
|
|
6
|
-
'passagemath-setup
|
|
7
|
-
'passagemath-environment
|
|
5
|
+
'passagemath-conf == 10.6.31rc2 ; sys_platform != "win32"',
|
|
6
|
+
'passagemath-setup == 10.6.31rc2',
|
|
7
|
+
'passagemath-environment == 10.6.31rc2',
|
|
8
8
|
'cython >=3.0.8, <3.2.0', 'cython >=3.0.8,<3.2.0',
|
|
9
9
|
'gmpy2 ~=2.1.b999',
|
|
10
10
|
'cysignals <1.12.4; sys_platform == "win32"', 'cysignals >=1.11.2, != 1.12.0',
|
|
@@ -43,7 +43,7 @@ classifiers = [
|
|
|
43
43
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
44
44
|
"Topic :: Scientific/Engineering :: Mathematics",
|
|
45
45
|
]
|
|
46
|
-
requires-python = ">=3.10, <3.
|
|
46
|
+
requires-python = ">=3.10, <3.14"
|
|
47
47
|
|
|
48
48
|
[project.urls]
|
|
49
49
|
"release notes" = "https://github.com/passagemath/passagemath/releases"
|
|
@@ -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
|
|
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
|
-
//
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
206
|
-
cdef
|
|
207
|
-
cdef
|
|
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
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
|
|
@@ -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:
|
|
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
|
|
@@ -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(
|
|
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
|
|
544
|
+
0 1 2
|
|
544
545
|
sage: m2 = m[3::2]
|
|
545
546
|
sage: loads(dumps(m2))
|
|
546
|
-
lazy list [
|
|
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:
|
|
920
|
-
|
|
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:
|
|
991
|
-
|
|
992
|
-
|
|
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)
|
|
@@ -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
|
-
|
|
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() . . .
|
|
258
|
-
|
|
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)
|
|
@@ -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
|
-
|
|
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"""
|
|
@@ -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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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)
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/structure/sage_object.pyx
RENAMED
|
@@ -410,7 +410,7 @@ cdef class SageObject:
|
|
|
410
410
|
sage: hash(b)
|
|
411
411
|
Traceback (most recent call last):
|
|
412
412
|
...
|
|
413
|
-
TypeError:
|
|
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:
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
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:
|
|
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:
|
|
736
|
+
TypeError: unhashable type: 'list'
|
|
737
737
|
|
|
738
738
|
.. rubric:: Argument preprocessing
|
|
739
739
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
10.6.31
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/all__sagemath_objects.py
RENAMED
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/all__sagemath_objects.py
RENAMED
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/numerical_approx.pxd
RENAMED
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/arith/numerical_approx.pyx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/algebra_functor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/cartesian_product.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/category_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/facade_sets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/isomorphic_objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{passagemath_objects-10.6.31 → passagemath_objects-10.6.31rc2}/sage/categories/realizations.py
RENAMED
|
File without changes
|
|
File without changes
|