passagemath-objects 10.6.45__cp313-cp313-musllinux_1_2_x86_64.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.
- passagemath_objects/__init__.py +3 -0
- passagemath_objects-10.6.45.dist-info/METADATA +115 -0
- passagemath_objects-10.6.45.dist-info/RECORD +280 -0
- passagemath_objects-10.6.45.dist-info/WHEEL +5 -0
- passagemath_objects-10.6.45.dist-info/top_level.txt +3 -0
- passagemath_objects.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- sage/all__sagemath_objects.py +37 -0
- sage/arith/all__sagemath_objects.py +5 -0
- sage/arith/long.pxd +411 -0
- sage/arith/numerical_approx.cpython-313-x86_64-linux-musl.so +0 -0
- sage/arith/numerical_approx.pxd +35 -0
- sage/arith/numerical_approx.pyx +75 -0
- sage/arith/power.cpython-313-x86_64-linux-musl.so +0 -0
- sage/arith/power.pxd +31 -0
- sage/arith/power.pyx +127 -0
- sage/categories/action.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/action.pxd +29 -0
- sage/categories/action.pyx +641 -0
- sage/categories/algebra_functor.py +745 -0
- sage/categories/all__sagemath_objects.py +33 -0
- sage/categories/basic.py +62 -0
- sage/categories/cartesian_product.py +295 -0
- sage/categories/category.py +3401 -0
- sage/categories/category_cy_helper.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/category_cy_helper.pxd +8 -0
- sage/categories/category_cy_helper.pyx +322 -0
- sage/categories/category_singleton.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/category_singleton.pxd +3 -0
- sage/categories/category_singleton.pyx +342 -0
- sage/categories/category_types.py +637 -0
- sage/categories/category_with_axiom.py +2876 -0
- sage/categories/covariant_functorial_construction.py +703 -0
- sage/categories/facade_sets.py +228 -0
- sage/categories/functor.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/functor.pxd +7 -0
- sage/categories/functor.pyx +691 -0
- sage/categories/homset.py +1338 -0
- sage/categories/homsets.py +364 -0
- sage/categories/isomorphic_objects.py +73 -0
- sage/categories/map.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/map.pxd +34 -0
- sage/categories/map.pyx +2106 -0
- sage/categories/morphism.cpython-313-x86_64-linux-musl.so +0 -0
- sage/categories/morphism.pxd +14 -0
- sage/categories/morphism.pyx +895 -0
- sage/categories/objects.py +167 -0
- sage/categories/primer.py +1696 -0
- sage/categories/pushout.py +4834 -0
- sage/categories/quotients.py +64 -0
- sage/categories/realizations.py +200 -0
- sage/categories/sets_cat.py +3290 -0
- sage/categories/sets_with_partial_maps.py +52 -0
- sage/categories/subobjects.py +64 -0
- sage/categories/subquotients.py +21 -0
- sage/categories/with_realizations.py +311 -0
- sage/cpython/__init__.py +19 -0
- sage/cpython/_py2_random.py +619 -0
- sage/cpython/all.py +3 -0
- sage/cpython/atexit.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/atexit.pyx +269 -0
- sage/cpython/builtin_types.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/builtin_types.pyx +7 -0
- sage/cpython/cython_metaclass.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/cython_metaclass.h +117 -0
- sage/cpython/cython_metaclass.pxd +3 -0
- sage/cpython/cython_metaclass.pyx +130 -0
- sage/cpython/debug.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/debug.pyx +302 -0
- sage/cpython/dict_del_by_value.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/dict_del_by_value.pxd +9 -0
- sage/cpython/dict_del_by_value.pyx +191 -0
- sage/cpython/dict_internal.h +245 -0
- sage/cpython/getattr.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/getattr.pxd +9 -0
- sage/cpython/getattr.pyx +439 -0
- sage/cpython/pycore_long.h +97 -0
- sage/cpython/pycore_long.pxd +10 -0
- sage/cpython/python_debug.h +44 -0
- sage/cpython/python_debug.pxd +47 -0
- sage/cpython/pyx_visit.h +13 -0
- sage/cpython/string.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/string.pxd +76 -0
- sage/cpython/string.pyx +34 -0
- sage/cpython/string_impl.h +60 -0
- sage/cpython/type.cpython-313-x86_64-linux-musl.so +0 -0
- sage/cpython/type.pxd +2 -0
- sage/cpython/type.pyx +40 -0
- sage/cpython/wrapperdescr.pxd +67 -0
- sage/ext/all__sagemath_objects.py +3 -0
- sage/ext/ccobject.h +64 -0
- sage/ext/cplusplus.pxd +17 -0
- sage/ext/mod_int.h +30 -0
- sage/ext/mod_int.pxd +24 -0
- sage/ext/stdsage.pxd +39 -0
- sage/groups/all__sagemath_objects.py +1 -0
- sage/groups/group.cpython-313-x86_64-linux-musl.so +0 -0
- sage/groups/group.pxd +14 -0
- sage/groups/group.pyx +322 -0
- sage/groups/old.cpython-313-x86_64-linux-musl.so +0 -0
- sage/groups/old.pxd +14 -0
- sage/groups/old.pyx +219 -0
- sage/libs/all__sagemath_objects.py +3 -0
- sage/libs/gmp/__init__.py +1 -0
- sage/libs/gmp/all.pxd +6 -0
- sage/libs/gmp/binop.pxd +23 -0
- sage/libs/gmp/misc.pxd +8 -0
- sage/libs/gmp/mpf.pxd +88 -0
- sage/libs/gmp/mpn.pxd +57 -0
- sage/libs/gmp/mpq.pxd +57 -0
- sage/libs/gmp/mpz.pxd +202 -0
- sage/libs/gmp/pylong.cpython-313-x86_64-linux-musl.so +0 -0
- sage/libs/gmp/pylong.pxd +12 -0
- sage/libs/gmp/pylong.pyx +150 -0
- sage/libs/gmp/random.pxd +25 -0
- sage/libs/gmp/randomize.pxd +59 -0
- sage/libs/gmp/types.pxd +53 -0
- sage/libs/gmpxx.pxd +19 -0
- sage/misc/abstract_method.py +276 -0
- sage/misc/all__sagemath_objects.py +43 -0
- sage/misc/bindable_class.py +253 -0
- sage/misc/c3_controlled.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/c3_controlled.pxd +2 -0
- sage/misc/c3_controlled.pyx +1402 -0
- sage/misc/cachefunc.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/cachefunc.pxd +43 -0
- sage/misc/cachefunc.pyx +3781 -0
- sage/misc/call.py +188 -0
- sage/misc/classcall_metaclass.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/classcall_metaclass.pxd +14 -0
- sage/misc/classcall_metaclass.pyx +599 -0
- sage/misc/constant_function.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/constant_function.pyx +130 -0
- sage/misc/decorators.py +747 -0
- sage/misc/fast_methods.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/fast_methods.pxd +20 -0
- sage/misc/fast_methods.pyx +351 -0
- sage/misc/flatten.py +90 -0
- sage/misc/fpickle.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/fpickle.pyx +177 -0
- sage/misc/function_mangling.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/function_mangling.pxd +11 -0
- sage/misc/function_mangling.pyx +308 -0
- sage/misc/inherit_comparison.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/inherit_comparison.pxd +5 -0
- sage/misc/inherit_comparison.pyx +105 -0
- sage/misc/instancedoc.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/instancedoc.pyx +331 -0
- sage/misc/lazy_attribute.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/lazy_attribute.pyx +607 -0
- sage/misc/lazy_format.py +135 -0
- sage/misc/lazy_import.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/lazy_import.pyx +1299 -0
- sage/misc/lazy_import_cache.py +36 -0
- sage/misc/lazy_list.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/lazy_list.pxd +19 -0
- sage/misc/lazy_list.pyx +1187 -0
- sage/misc/lazy_string.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/lazy_string.pxd +7 -0
- sage/misc/lazy_string.pyx +546 -0
- sage/misc/misc.py +1066 -0
- sage/misc/misc_c.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/misc_c.pxd +3 -0
- sage/misc/misc_c.pyx +766 -0
- sage/misc/namespace_package.py +37 -0
- sage/misc/nested_class.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/nested_class.pxd +3 -0
- sage/misc/nested_class.pyx +394 -0
- sage/misc/persist.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/persist.pyx +1251 -0
- sage/misc/prandom.py +418 -0
- sage/misc/randstate.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/randstate.pxd +30 -0
- sage/misc/randstate.pyx +1059 -0
- sage/misc/repr.py +203 -0
- sage/misc/reset.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/reset.pyx +196 -0
- sage/misc/sage_ostools.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/sage_ostools.pyx +323 -0
- sage/misc/sage_timeit.py +275 -0
- sage/misc/sage_timeit_class.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/sage_timeit_class.pyx +120 -0
- sage/misc/sage_unittest.py +637 -0
- sage/misc/sageinspect.py +2768 -0
- sage/misc/session.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/session.pyx +392 -0
- sage/misc/superseded.py +557 -0
- sage/misc/test_nested_class.py +228 -0
- sage/misc/timing.py +264 -0
- sage/misc/unknown.py +222 -0
- sage/misc/verbose.py +253 -0
- sage/misc/weak_dict.cpython-313-x86_64-linux-musl.so +0 -0
- sage/misc/weak_dict.pxd +15 -0
- sage/misc/weak_dict.pyx +1231 -0
- sage/modules/all__sagemath_objects.py +1 -0
- sage/modules/module.cpython-313-x86_64-linux-musl.so +0 -0
- sage/modules/module.pxd +5 -0
- sage/modules/module.pyx +329 -0
- sage/rings/all__sagemath_objects.py +3 -0
- sage/rings/integer_fake.h +22 -0
- sage/rings/integer_fake.pxd +55 -0
- sage/sets/all__sagemath_objects.py +3 -0
- sage/sets/pythonclass.cpython-313-x86_64-linux-musl.so +0 -0
- sage/sets/pythonclass.pxd +9 -0
- sage/sets/pythonclass.pyx +247 -0
- sage/structure/__init__.py +4 -0
- sage/structure/all.py +30 -0
- sage/structure/category_object.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/category_object.pxd +28 -0
- sage/structure/category_object.pyx +1087 -0
- sage/structure/coerce.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/coerce.pxd +44 -0
- sage/structure/coerce.pyx +2107 -0
- sage/structure/coerce_actions.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/coerce_actions.pxd +27 -0
- sage/structure/coerce_actions.pyx +988 -0
- sage/structure/coerce_dict.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/coerce_dict.pxd +51 -0
- sage/structure/coerce_dict.pyx +1557 -0
- sage/structure/coerce_exceptions.py +23 -0
- sage/structure/coerce_maps.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/coerce_maps.pxd +28 -0
- sage/structure/coerce_maps.pyx +718 -0
- sage/structure/debug_options.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/debug_options.pxd +6 -0
- sage/structure/debug_options.pyx +54 -0
- sage/structure/dynamic_class.py +541 -0
- sage/structure/element.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/element.pxd +272 -0
- sage/structure/element.pyx +4772 -0
- sage/structure/element_wrapper.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/element_wrapper.pxd +12 -0
- sage/structure/element_wrapper.pyx +582 -0
- sage/structure/factorization.py +1422 -0
- sage/structure/factorization_integer.py +105 -0
- sage/structure/factory.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/factory.pyx +786 -0
- sage/structure/formal_sum.py +489 -0
- sage/structure/gens_py.py +73 -0
- sage/structure/global_options.py +1743 -0
- sage/structure/indexed_generators.py +863 -0
- sage/structure/list_clone.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/list_clone.pxd +65 -0
- sage/structure/list_clone.pyx +1867 -0
- sage/structure/list_clone_demo.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/list_clone_demo.pyx +248 -0
- sage/structure/list_clone_timings.py +179 -0
- sage/structure/list_clone_timings_cy.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/list_clone_timings_cy.pyx +86 -0
- sage/structure/mutability.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/mutability.pxd +21 -0
- sage/structure/mutability.pyx +348 -0
- sage/structure/nonexact.py +69 -0
- sage/structure/parent.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/parent.pxd +112 -0
- sage/structure/parent.pyx +3093 -0
- sage/structure/parent_base.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/parent_base.pxd +13 -0
- sage/structure/parent_base.pyx +44 -0
- sage/structure/parent_gens.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/parent_gens.pxd +22 -0
- sage/structure/parent_gens.pyx +377 -0
- sage/structure/parent_old.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/parent_old.pxd +25 -0
- sage/structure/parent_old.pyx +294 -0
- sage/structure/proof/__init__.py +1 -0
- sage/structure/proof/all.py +243 -0
- sage/structure/proof/proof.py +300 -0
- sage/structure/richcmp.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/richcmp.pxd +213 -0
- sage/structure/richcmp.pyx +495 -0
- sage/structure/sage_object.cpython-313-x86_64-linux-musl.so +0 -0
- sage/structure/sage_object.pxd +3 -0
- sage/structure/sage_object.pyx +988 -0
- sage/structure/sage_object_test.py +19 -0
- sage/structure/sequence.py +937 -0
- sage/structure/set_factories.py +1178 -0
- sage/structure/set_factories_example.py +527 -0
- sage/structure/support_view.py +179 -0
- sage/structure/test_factory.py +56 -0
- sage/structure/unique_representation.py +1359 -0
sage/misc/verbose.py
ADDED
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-objects
|
|
2
|
+
r"""
|
|
3
|
+
Verbosity System and Logging in SageMath
|
|
4
|
+
|
|
5
|
+
Howto: Logging
|
|
6
|
+
==============
|
|
7
|
+
|
|
8
|
+
Using Python's Logging Module
|
|
9
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
10
|
+
|
|
11
|
+
Import it::
|
|
12
|
+
|
|
13
|
+
sage: import logging
|
|
14
|
+
sage: logging.basicConfig() # only needed once
|
|
15
|
+
|
|
16
|
+
Setting the level::
|
|
17
|
+
|
|
18
|
+
sage: logging.getLogger().setLevel(logging.INFO)
|
|
19
|
+
|
|
20
|
+
Log something::
|
|
21
|
+
|
|
22
|
+
sage: logger = logging.getLogger(__name__)
|
|
23
|
+
sage: logger.info('Hello. I am talking to you.')
|
|
24
|
+
INFO:__main__:Hello. I am talking to you.
|
|
25
|
+
|
|
26
|
+
If we haven't set the logging level to ``logging.INFO``, then the previous
|
|
27
|
+
wouldn't have been shown.
|
|
28
|
+
::
|
|
29
|
+
|
|
30
|
+
sage: logger.debug('Hello. I am really talking a lot.')
|
|
31
|
+
|
|
32
|
+
The latter is not shown as the current logging level is only
|
|
33
|
+
``logging.INFO`` and not ``logging.DEBUG``.
|
|
34
|
+
|
|
35
|
+
Reset the level::
|
|
36
|
+
|
|
37
|
+
sage: logging.getLogger().setLevel(logging.WARNING)
|
|
38
|
+
|
|
39
|
+
Warnings are still shown at this default level (``logging.WARNING``)::
|
|
40
|
+
|
|
41
|
+
sage: logger.warning('Hello. I am warning you.')
|
|
42
|
+
WARNING:__main__:Hello. I am warning you.
|
|
43
|
+
|
|
44
|
+
And that's all.
|
|
45
|
+
|
|
46
|
+
There are a lot more features, see
|
|
47
|
+
:python:`Logging facility for Python<library/logging.html>`.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
Using SageMath's Verbosity System
|
|
51
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
52
|
+
|
|
53
|
+
Alternatively, this module provides
|
|
54
|
+
:func:`verbose`, :func:`set_verbose`, :func:`get_verbose` which can
|
|
55
|
+
be used as follows::
|
|
56
|
+
|
|
57
|
+
sage: from sage.misc.verbose import verbose, set_verbose, get_verbose
|
|
58
|
+
sage: set_verbose(1)
|
|
59
|
+
sage: t = verbose("This is SageMath.", level=0)
|
|
60
|
+
verbose 0 (<module>) This is SageMath.
|
|
61
|
+
sage: t = verbose("This is SageMath.", level=1)
|
|
62
|
+
verbose 1 (<module>) This is SageMath.
|
|
63
|
+
sage: t = verbose("This is SageMath.", level=2)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
Logging Levels of SageMath and Python
|
|
67
|
+
=====================================
|
|
68
|
+
|
|
69
|
+
.. csv-table::
|
|
70
|
+
:class: contentstable
|
|
71
|
+
:widths: 20, 20
|
|
72
|
+
:delim: |
|
|
73
|
+
|
|
74
|
+
SageMath | Python
|
|
75
|
+
`-2` | ``logging.CRITICAL``
|
|
76
|
+
`-1` | ``logging.ERROR``
|
|
77
|
+
`0` | ``logging.WARNING``
|
|
78
|
+
`1` | ``logging.INFO``
|
|
79
|
+
`2` | ``logging.DEBUG``
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
Various
|
|
83
|
+
=======
|
|
84
|
+
|
|
85
|
+
AUTHORS:
|
|
86
|
+
|
|
87
|
+
- Daniel Krenn (2016)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
Functions
|
|
91
|
+
=========
|
|
92
|
+
"""
|
|
93
|
+
# *****************************************************************************
|
|
94
|
+
# Copyright (C) 2006, 2007 William Stein <wstein@gmail.com>
|
|
95
|
+
# Copyright (C) 2006 Gonzalo Tornaria
|
|
96
|
+
# Copyright (C) 2008 John H. Palmieri
|
|
97
|
+
# Copyright (C) 2009 Mike Hansen
|
|
98
|
+
# Copyright (C) 2016 Daniel Krenn <dev@danielkrenn.at>
|
|
99
|
+
# Copyright (C) 2018 Frédéric Chapoton
|
|
100
|
+
#
|
|
101
|
+
# This program is free software: you can redistribute it and/or modify
|
|
102
|
+
# it under the terms of the GNU General Public License as published by
|
|
103
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
104
|
+
# (at your option) any later version.
|
|
105
|
+
# https://www.gnu.org/licenses/
|
|
106
|
+
# *****************************************************************************
|
|
107
|
+
|
|
108
|
+
import sys
|
|
109
|
+
import os
|
|
110
|
+
|
|
111
|
+
LEVEL = 0 # default
|
|
112
|
+
|
|
113
|
+
verbose_files = []
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def verbose(mesg='', t=0, level=1, caller_name=None):
|
|
117
|
+
"""
|
|
118
|
+
Print a message if the current verbosity is at least level.
|
|
119
|
+
|
|
120
|
+
INPUT:
|
|
121
|
+
|
|
122
|
+
- ``mesg`` -- string; a message to print
|
|
123
|
+
|
|
124
|
+
- ``t`` -- integer (optional); if included, will also print ``cputime(t)``,
|
|
125
|
+
which is the time since time ``t``. Thus ``t`` should have been obtained
|
|
126
|
+
with ``t=cputime()``
|
|
127
|
+
|
|
128
|
+
- ``level`` -- integer (default: 1); the verbosity level of
|
|
129
|
+
what we are printing
|
|
130
|
+
|
|
131
|
+
- ``caller_name`` -- string (default: ``None``); the name
|
|
132
|
+
of the calling function. In most cases Python can deduce this, so
|
|
133
|
+
it need not be provided.
|
|
134
|
+
|
|
135
|
+
OUTPUT: possibly prints a message to stdout; also returns ``cputime()``
|
|
136
|
+
|
|
137
|
+
EXAMPLES::
|
|
138
|
+
|
|
139
|
+
sage: set_verbose(1)
|
|
140
|
+
sage: t = cputime()
|
|
141
|
+
sage: t = verbose("This is Sage.", t, level=1, caller_name="william") # not tested
|
|
142
|
+
VERBOSE1 (william): This is Sage. (time = 0.0)
|
|
143
|
+
sage: set_verbose(0)
|
|
144
|
+
"""
|
|
145
|
+
from sage.misc.timing import cputime
|
|
146
|
+
if level > LEVEL:
|
|
147
|
+
return cputime()
|
|
148
|
+
|
|
149
|
+
frame = sys._getframe(1).f_code
|
|
150
|
+
file_name = frame.co_filename
|
|
151
|
+
lineno = frame.co_firstlineno
|
|
152
|
+
if 'all' in verbose_files or level <= 0:
|
|
153
|
+
show = True
|
|
154
|
+
else:
|
|
155
|
+
show = False
|
|
156
|
+
for X in verbose_files:
|
|
157
|
+
if file_name.find(X) != -1:
|
|
158
|
+
show = True
|
|
159
|
+
break
|
|
160
|
+
|
|
161
|
+
if not show:
|
|
162
|
+
return cputime()
|
|
163
|
+
|
|
164
|
+
if t != 0 and mesg == "":
|
|
165
|
+
mesg = "Finished."
|
|
166
|
+
|
|
167
|
+
# see recipe 14.7 in Python Cookbook
|
|
168
|
+
if caller_name is None:
|
|
169
|
+
caller_name = frame.co_name
|
|
170
|
+
if caller_name == "?: ":
|
|
171
|
+
caller_name = ""
|
|
172
|
+
short_file_name = os.path.split(frame.co_filename)[1]
|
|
173
|
+
if '<' in short_file_name and '>' in short_file_name:
|
|
174
|
+
s = "verbose %s (%s) %s" % (level, caller_name, mesg)
|
|
175
|
+
else:
|
|
176
|
+
s = "verbose %s (%s: %s, %s) %s" % (level, lineno,
|
|
177
|
+
short_file_name, caller_name, mesg)
|
|
178
|
+
if t != 0:
|
|
179
|
+
s = s + " (time = %s)" % cputime(t)
|
|
180
|
+
print(s)
|
|
181
|
+
sys.stdout.flush()
|
|
182
|
+
return cputime()
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def set_verbose(level, files='all'):
|
|
186
|
+
"""
|
|
187
|
+
Set the global Sage verbosity level.
|
|
188
|
+
|
|
189
|
+
INPUT:
|
|
190
|
+
|
|
191
|
+
- ``level`` -- integer between 0 and 2, inclusive
|
|
192
|
+
|
|
193
|
+
- ``files`` -- (default: ``'all'``) list of files to make verbose, or
|
|
194
|
+
'all' to make ALL files verbose (the default)
|
|
195
|
+
|
|
196
|
+
OUTPUT: changes the state of the verbosity flag and possibly
|
|
197
|
+
appends to the list of files that are verbose
|
|
198
|
+
|
|
199
|
+
EXAMPLES::
|
|
200
|
+
|
|
201
|
+
sage: set_verbose(2)
|
|
202
|
+
sage: verbose("This is Sage.", level=1) # not tested
|
|
203
|
+
VERBOSE1 (?): This is Sage.
|
|
204
|
+
sage: verbose("This is Sage.", level=2) # not tested
|
|
205
|
+
VERBOSE2 (?): This is Sage.
|
|
206
|
+
sage: verbose("This is Sage.", level=3) # not tested
|
|
207
|
+
[no output]
|
|
208
|
+
sage: set_verbose(0)
|
|
209
|
+
"""
|
|
210
|
+
if level is None:
|
|
211
|
+
level = -1
|
|
212
|
+
if isinstance(level, str):
|
|
213
|
+
set_verbose_files([level])
|
|
214
|
+
global LEVEL
|
|
215
|
+
LEVEL = level
|
|
216
|
+
if isinstance(files, str):
|
|
217
|
+
files = [files]
|
|
218
|
+
set_verbose_files(files)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def set_verbose_files(file_name):
|
|
222
|
+
if not isinstance(file_name, list):
|
|
223
|
+
file_name = [file_name]
|
|
224
|
+
global verbose_files
|
|
225
|
+
verbose_files = file_name
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def get_verbose_files():
|
|
229
|
+
return verbose_files
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def unset_verbose_files(file_name):
|
|
233
|
+
if not isinstance(file_name, list):
|
|
234
|
+
file_name = [file_name]
|
|
235
|
+
for X in file_name:
|
|
236
|
+
verbose_files.remove(X)
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def get_verbose():
|
|
240
|
+
"""
|
|
241
|
+
Return the global Sage verbosity level.
|
|
242
|
+
|
|
243
|
+
EXAMPLES::
|
|
244
|
+
|
|
245
|
+
sage: get_verbose()
|
|
246
|
+
0
|
|
247
|
+
sage: set_verbose(2)
|
|
248
|
+
sage: get_verbose()
|
|
249
|
+
2
|
|
250
|
+
sage: set_verbose(0)
|
|
251
|
+
"""
|
|
252
|
+
global LEVEL
|
|
253
|
+
return LEVEL
|
|
Binary file
|
sage/misc/weak_dict.pxd
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-objects
|
|
2
|
+
cdef class WeakValueDictionary(dict):
|
|
3
|
+
cdef __weakref__
|
|
4
|
+
cdef callback
|
|
5
|
+
cdef int _guard_level
|
|
6
|
+
cdef list _pending_removals
|
|
7
|
+
|
|
8
|
+
cdef int _set_item(self, key, value) except -1
|
|
9
|
+
cdef int _enter_iter(self) except -1
|
|
10
|
+
cdef int _exit_iter(self) except -1
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
cdef class CachedWeakValueDictionary(WeakValueDictionary):
|
|
14
|
+
cdef tuple cache
|
|
15
|
+
cdef Py_ssize_t cache_index
|