I think the issue is a disagreement with python. The package installs fine
on a clean machine. I know this isn't the wheelhouse, but how can I
diagnose my python configuration for compatibility with sage. In
particular, I have python 3.8.10 installed systemwide.
On Sunday, August 29, 2021 at 4:49:52 PM UTC-5 hbetx9 wrote:
> The package log has the following error:
>
> /usr/lib/python3/dist-packages/sage/combinat/root_system/branching_rules.py:1753:
>
> SyntaxWarning: "is not" with a literal. Did you mean "!="?
> if len(stypes) is not 2:
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1159:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1168:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1175:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1182:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1189:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1196:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
> /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1203:
> SyntaxWarning: 'str' object is not callable; perhaps you missed a comma?
> raise TypeError('%s option must be a dictionary, not %s' (name, value))
>
> I think there is something about the way sage is trying to be installed
> and python, but I'm unsure how to diagnose. Installing from source is an
> option yes, but I fear it will have the same issue.
> On Sunday, August 29, 2021 at 2:14:38 AM UTC-5 [email protected] wrote:
>
>> On Sat, Aug 28, 2021 at 10:57 PM Lance Edward Miller <[email protected]>
>> wrote:
>> >
>> > To whom it may concern,
>> >
>> > I'm installing sage from the synaptic package manager on Linux Mint
>> 20.1. The package is for Sage 9.0, but the app does not run. Following is
>> the crash report, any advice on how to best resolve (uninstall and install
>> from source?) is appreciated:
>>
>> This has to be reported to Linux Mint - we don't do packaging for
>> particular Linux distributions, and it looks like a packaging error,
>> not anything we can help with.
>> You can install Sage in several other ways:
>> https://doc.sagemath.org/html/en/installation/index.html
>>
>> >
>> >
>> >
>> ***************************************************************************
>> >
>> > IPython post-mortem report
>> >
>> > {'commit_hash': '<not found>',
>> > 'commit_source': '(none found)',
>> > 'default_encoding': 'utf-8',
>> > 'ipython_path': '/usr/lib/python3/dist-packages/IPython',
>> > 'ipython_version': '7.13.0',
>> > 'os_name': 'posix',
>> > 'platform': 'Linux-5.4.0-81-generic-x86_64-with-glibc2.29',
>> > 'sys_executable': '/usr/bin/python3',
>> > 'sys_platform': 'linux',
>> > 'sys_version': '3.8.10 (default, Jun 2 2021, 10:49:15) \n[GCC 9.4.0]'}
>> >
>> >
>> ***************************************************************************
>> >
>> >
>> >
>> >
>> ***************************************************************************
>> >
>> > Crash traceback:
>> >
>> >
>> ---------------------------------------------------------------------------
>> >
>> ---------------------------------------------------------------------------
>> > ImportError Python 3.8.10: /usr/bin/python3
>> > Sat Aug 28 16:48:31 2021
>> > A problem occurred executing Python code. Here is the sequence of
>> function
>> > calls leading up to the error, with the most recent (innermost) call
>> last.
>> > /usr/share/sagemath/bin/sage-ipython in <module>
>> > 1 #!/usr/bin/env sage-python
>> > 2 # -*- coding: utf-8 -*-
>> > 3 """
>> > 4 Sage IPython startup script.
>> > 5 """
>> > 6
>> > 7 # Display startup banner. Do this before anything else to give the
>> user
>> > 8 # early feedback that Sage is starting.
>> > 9 from sage.misc.banner import banner
>> > 10 banner()
>> > 11
>> > 12 from sage.repl.interpreter import SageTerminalApp
>> > 13
>> > 14 app = SageTerminalApp.instance()
>> > ---> 15 app.initialize()
>> > global app.initialize = <bound method TerminalIPythonApp.initialize of
>> <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0>>
>> > 16 app.start()
>> >
>> > <decorator-gen-113> in
>> initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
>> >
>> > /usr/lib/python3/dist-packages/traitlets/config/application.py in
>> catch_config_error(method=<function TerminalIPythonApp.initialize>,
>> app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,),
>> **kwargs={})
>> > 72 TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False
>> > 73 else:
>> > 74 raise ValueError("Unsupported value for environment variable:
>> 'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is
>> none of {'0', '1', 'false', 'true', ''}."% _envvar )
>> > 75
>> > 76
>> > 77 @decorator
>> > 78 def catch_config_error(method, app, *args, **kwargs):
>> > 79 """Method decorator for catching invalid config
>> (Trait/ArgumentErrors) during init.
>> > 80
>> > 81 On a TraitError (generally caused by bad config), this will print
>> the trait's
>> > 82 message, and exit the app.
>> > 83
>> > 84 For use on init methods, to prevent invoking excepthook on invalid
>> input.
>> > 85 """
>> > 86 try:
>> > ---> 87 return method(app, *args, **kwargs)
>> > method = <function TerminalIPythonApp.initialize at 0x7f66febbf5e0>
>> > app = <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0>
>> > args = (None,)
>> > kwargs = {}
>> > 88 except (TraitError, ArgumentError) as e:
>> > 89 app.print_help()
>> > 90 app.log.fatal("Bad config encountered during initialization:")
>> > 91 app.log.fatal(str(e))
>> > 92 app.log.debug("Config at the time: %s", app.config)
>> > 93 app.exit(1)
>> > 94
>> > 95
>> > 96 class ApplicationError(Exception):
>> > 97 pass
>> > 98
>> > 99
>> > 100 class LevelFormatter(logging.Formatter):
>> > 101 """Formatter with additional `highlevel` record
>> > 102
>> >
>> > /usr/lib/python3/dist-packages/IPython/terminal/ipapp.py in
>> initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
>> > 302
>> > 303 return super(TerminalIPythonApp, self).parse_command_line(argv)
>> > 304
>> > 305 @catch_config_error
>> > 306 def initialize(self, argv=None):
>> > 307 """Do actions after construct, but before starting the app."""
>> > 308 super(TerminalIPythonApp, self).initialize(argv)
>> > 309 if self.subapp is not None:
>> > 310 # don't bother initializing further, starting subapp
>> > 311 return
>> > 312 # print self.extra_args
>> > 313 if self.extra_args and not self.something_to_run:
>> > 314 self.file_to_run = self.extra_args[0]
>> > 315 self.init_path()
>> > 316 # create the shell
>> > --> 317 self.init_shell()
>> > self.init_shell = <bound method SageTerminalApp.init_shell of
>> <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0>>
>> > 318 # and draw the banner
>> > 319 self.init_banner()
>> > 320 # Now a variety of things that happen after the banner is printed.
>> > 321 self.init_gui_pylab()
>> > 322 self.init_extensions()
>> > 323 self.init_code()
>> > 324
>> > 325 def init_shell(self):
>> > 326 """initialize the InteractiveShell instance"""
>> > 327 # Create an InteractiveShell instance.
>> > 328 # shell.display_banner should always be False for the terminal
>> > 329 # based app, because we call shell.show_banner() by hand below
>> > 330 # so the banner shows *before* all extension loading stuff.
>> > 331 self.shell = self.interactive_shell_class.instance(parent=self,
>> > 332 profile_dir=self.profile_dir,
>> >
>> > /usr/lib/python3/dist-packages/sage/repl/interpreter.py in
>> init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
>> > 727 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions
>> > 728
>> > 729 # Load the %lprun extension if available
>> > 730 try:
>> > 731 import line_profiler
>> > 732 except ImportError:
>> > 733 pass
>> > 734 else:
>> > 735 self.extensions.append('line_profiler')
>> > 736
>> > 737 if self.shell.has_sage_extensions:
>> > 738 self.extensions.remove(SAGE_EXTENSION)
>> > 739
>> > 740 # load sage extension here to get a crash if
>> > 741 # something is wrong with the sage library
>> > --> 742 self.shell.extension_manager.load_extension(SAGE_EXTENSION)
>> > self.shell.extension_manager.load_extension = <bound method
>> ExtensionManager.load_extension of
>> <IPython.core.extensions.ExtensionManager object at 0x7f66fcd10490>>
>> > global SAGE_EXTENSION = 'sage'
>> > 743
>> > 744
>> >
>> > /usr/lib/python3/dist-packages/IPython/core/extensions.py in
>> load_extension(self=<IPython.core.extensions.ExtensionManager object>,
>> module_str='sage')
>> > 72 if module_str in self.loaded:
>> > 73 return "already loaded"
>> > 74
>> > 75 from IPython.utils.syspathcontext import prepended_to_syspath
>> > 76
>> > 77 with self.shell.builtin_trap:
>> > 78 if module_str not in sys.modules:
>> > 79 with prepended_to_syspath(self.ipython_extension_dir):
>> > 80 mod = import_module(module_str)
>> > 81 if mod.__file__.startswith(self.ipython_extension_dir):
>> > 82 print(("Loading extensions from {dir} is deprecated. "
>> > 83 "We recommend managing extensions like any "
>> > 84 "other Python packages, in site-packages.").format(
>> > 85 dir=compress_user(self.ipython_extension_dir)))
>> > 86 mod = sys.modules[module_str]
>> > ---> 87 if self._call_load_ipython_extension(mod):
>> > self._call_load_ipython_extension = <bound method
>> ExtensionManager._call_load_ipython_extension of
>> <IPython.core.extensions.ExtensionManager object at 0x7f66fcd10490>>
>> > mod = <module 'sage' from
>> '/usr/lib/python3/dist-packages/sage/__init__.py'>
>> > 88 self.loaded.add(module_str)
>> > 89 else:
>> > 90 return "no load function"
>> > 91
>> > 92 def unload_extension(self, module_str):
>> > 93 """Unload an IPython extension by its module name.
>> > 94
>> > 95 This function looks up the extension's name in ``sys.modules`` and
>> > 96 simply calls ``mod.unload_ipython_extension(self)``.
>> > 97
>> > 98 Returns the string "no unload function" if the extension doesn't
>> define
>> > 99 a function to unload itself, "not loaded" if the extension isn't
>> loaded,
>> > 100 otherwise None.
>> > 101 """
>> > 102 if module_str not in self.loaded:
>> >
>> > /usr/lib/python3/dist-packages/IPython/core/extensions.py in
>> _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
>> object>, mod=<module 'sage' from
>> '/usr/lib/python3/dist-packages/sage/__init__.py'>)
>> > 119 """
>> > 120 from IPython.utils.syspathcontext import prepended_to_syspath
>> > 121
>> > 122 if (module_str in self.loaded) and (module_str in sys.modules):
>> > 123 self.unload_extension(module_str)
>> > 124 mod = sys.modules[module_str]
>> > 125 with prepended_to_syspath(self.ipython_extension_dir):
>> > 126 reload(mod)
>> > 127 if self._call_load_ipython_extension(mod):
>> > 128 self.loaded.add(module_str)
>> > 129 else:
>> > 130 self.load_extension(module_str)
>> > 131
>> > 132 def _call_load_ipython_extension(self, mod):
>> > 133 if hasattr(mod, 'load_ipython_extension'):
>> > --> 134 mod.load_ipython_extension(self.shell)
>> > mod.load_ipython_extension = <function load_ipython_extension at
>> 0x7f67002d7040>
>> > self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object
>> at 0x7f66feb5bac0>
>> > 135 return True
>> > 136
>> > 137 def _call_unload_ipython_extension(self, mod):
>> > 138 if hasattr(mod, 'unload_ipython_extension'):
>> > 139 mod.unload_ipython_extension(self.shell)
>> > 140 return True
>> > 141
>> > 142 @undoc
>> > 143 def install_extension(self, url, filename=None):
>> > 144 """
>> > 145 Deprecated.
>> > 146 """
>> > 147 # Ensure the extension directory exists
>> > 148 raise DeprecationWarning(
>> > 149 '`install_extension` and the `install_ext` magic have been
>> deprecated since IPython 4.0'
>> >
>> > /usr/lib/python3/dist-packages/sage/__init__.py in
>> load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
>>
>> object>,))
>> > 1 __all__ = ['all']
>> > 2
>> > 3 # Set sage.__version__ to the current version number. This is
>> analogous
>> > 4 # to many other Python packages.
>> > 5 from sage.version import version as __version__
>> > 6
>> > 7 # Make sure that the correct zlib library is loaded. This is needed
>> > 8 # to prevent the system zlib to be loaded instead of the Sage one.
>> > 9 # See https://trac.sagemath.org/ticket/23122
>> > 10 import zlib
>> > 11
>> > 12 # IPython calls this when starting up
>> > 13 def load_ipython_extension(*args):
>> > 14 import sage.repl.ipython_extension
>> > ---> 15 sage.repl.ipython_extension.load_ipython_extension(*args)
>> > sage.repl.ipython_extension.load_ipython_extension = <function
>> load_ipython_extension at 0x7f66fcacaa60>
>> > args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
>> 0x7f66feb5bac0>,)
>> > 16
>> > 17
>> > 18 # Monkey-patch inspect.isfunction() to support Cython functions.
>> > 19 def isfunction(obj):
>> > 20 """
>> > 21 Check whether something is a function.
>> > 22
>> > 23 We assume that anything which has a genuine ``__code__``
>> > 24 attribute (not using ``__getattr__`` overrides) is a function.
>> > 25 This is meant to support Cython functions.
>> > 26
>> > 27 EXAMPLES::
>> > 28
>> > 29 sage: from inspect import isfunction
>> > 30 sage: def f(): pass
>> > 31 sage: isfunction(f)
>> >
>> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
>> wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
>> object>,), **kwargs={})
>> > 547 ....: if work:
>> > 548 ....: return 'foo worked'
>> > 549 ....: raise RuntimeError("foo didn't work")
>> > 550 sage: foo(False)
>> > 551 Traceback (most recent call last):
>> > 552 ...
>> > 553 RuntimeError: foo didn't work
>> > 554 sage: foo(True)
>> > 555 'foo worked'
>> > 556 sage: foo(False)
>> > 557 sage: foo(True)
>> > 558 """
>> > 559 @wraps(func)
>> > 560 def wrapper(*args, **kwargs):
>> > 561 if not wrapper.has_run:
>> > --> 562 result = func(*args, **kwargs)
>> > result = undefined
>> > global func = undefined
>> > args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
>> 0x7f66feb5bac0>,)
>> > kwargs = {}
>> > 563 wrapper.has_run = True
>> > 564 return result
>> > 565 wrapper.has_run = False
>> > 566 return wrapper
>> > 567
>> > 568
>> > 569 @run_once
>> > 570 def load_ipython_extension(ip):
>> > 571 """
>> > 572 Load the extension in IPython.
>> > 573 """
>> > 574 # this modifies ip
>> > 575 SageCustomizations(shell=ip)
>> >
>> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
>> load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
>>
>> object>)
>> > 560 def wrapper(*args, **kwargs):
>> > 561 if not wrapper.has_run:
>> > 562 result = func(*args, **kwargs)
>> > 563 wrapper.has_run = True
>> > 564 return result
>> > 565 wrapper.has_run = False
>> > 566 return wrapper
>> > 567
>> > 568
>> > 569 @run_once
>> > 570 def load_ipython_extension(ip):
>> > 571 """
>> > 572 Load the extension in IPython.
>> > 573 """
>> > 574 # this modifies ip
>> > --> 575 SageCustomizations(shell=ip)
>> > global SageCustomizations = <class
>> 'sage.repl.ipython_extension.SageCustomizations'>
>> > global shell = undefined
>> > ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at
>> 0x7f66feb5bac0>
>> >
>> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
>> __init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
>> shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
>> > 420 def __init__(self, shell=None):
>> > 421 """
>> > 422 Initialize the Sage plugin.
>> > 423 """
>> > 424 self.shell = shell
>> > 425
>> > 426 self.auto_magics = SageMagics(shell)
>> > 427 self.shell.register_magics(self.auto_magics)
>> > 428
>> > 429 import sage.misc.edit_module as edit_module
>> > 430 self.shell.set_hook('editor', edit_module.edit_devel)
>> > 431
>> > 432 self.init_inspector()
>> > 433 self.init_line_transforms()
>> > 434
>> > --> 435 import sage.all # until sage's import hell is fixed
>> > sage.all = undefined
>> > 436
>> > 437 self.shell.verbose_quit = True
>> > 438 self.set_quit_hook()
>> > 439
>> > 440 self.register_interface_magics()
>> > 441
>> > 442 if SAGE_IMPORTALL == 'yes':
>> > 443 self.init_environment()
>> > 444
>> > 445 def register_interface_magics(self):
>> > 446 """
>> > 447 Register magics for each of the Sage interfaces
>> > 448 """
>> > 449 from sage.repl.interface_magic import InterfaceMagic
>> > 450 InterfaceMagic.register_all(self.shell)
>> >
>> > /usr/lib/python3/dist-packages/sage/all.py in <module>
>> > 91 warnings.filterwarnings('ignore', category=RuntimeWarning,
>> > 92 message=r"'sin' and 'sout' swap memory stats couldn't be
>> determined")
>> > 93 from sage.misc.all import * # takes a while
>> > 94 from sage.typeset.all import *
>> > 95 from sage.repl.all import *
>> > 96
>> > 97 from sage.misc.sh import sh
>> > 98
>> > 99 from sage.libs.all import *
>> > 100 from sage.data_structures.all import *
>> > 101 from sage.doctest.all import *
>> > 102
>> > 103 from sage.structure.all import *
>> > 104 from sage.rings.all import *
>> > 105 from sage.arith.all import *
>> > --> 106 from sage.matrix.all import *
>> > global sage.matrix.all = undefined
>> > 107
>> > 108 from sage.symbolic.all import *
>> > 109 from sage.modules.all import *
>> > 110 from sage.monoids.all import *
>> > 111 from sage.algebras.all import *
>> > 112 from sage.modular.all import *
>> > 113 from sage.sat.all import *
>> > 114 from sage.schemes.all import *
>> > 115 from sage.graphs.all import *
>> > 116 from sage.groups.all import *
>> > 117 from sage.arith.power import generic_power as power
>> > 118 from sage.databases.all import *
>> > 119 from sage.categories.all import *
>> > 120 from sage.sets.all import *
>> > 121 from sage.probability.all import *
>> >
>> > /usr/lib/python3/dist-packages/sage/matrix/__init__.py in <module>
>> > 1 # Resolve a cyclic import
>> > ----> 2 import sage.matrix.args
>> > global sage.matrix.args = undefined
>> >
>> > /usr/lib/python3/dist-packages/sage/matrix/args.pyx in init
>> sage.matrix.args (build/cythonized/sage/matrix/args.c:21273)()
>> > 8 # Copyright (C) 2018 Jeroen Demeyer <[email protected]>
>> > 9 #
>> > 10 # This program is free software: you can redistribute it and/or
>> modify
>> > 11 # it under the terms of the GNU General Public License as published
>> by
>> > 12 # the Free Software Foundation, either version 2 of the License, or
>> > 13 # (at your option) any later version.
>> > 14 # http://www.gnu.org/licenses/
>> > 15
>> #*****************************************************************************
>>
>>
>> > 16
>> > 17 cimport cython
>> > 18 from cpython.sequence cimport PySequence_Fast
>> > 19 from cysignals.signals cimport sig_check
>> > 20 from cypari2.gen cimport Gen
>> > 21 from cypari2.types cimport typ, t_MAT, t_VEC, t_COL, t_VECSMALL,
>> t_LIST, t_STR, t_CLOSURE
>> > 22
>> > ---> 23 from .matrix_space import MatrixSpace
>> > global matrix_space = undefined
>> > global MatrixSpace = undefined
>> > 24 from sage.rings.all import ZZ, RDF, CDF
>> > 25 from sage.structure.coerce cimport (coercion_model,
>> > 26 is_numpy_type, py_scalar_parent)
>> > 27 from sage.structure.element cimport Element, RingElement, Vector
>> > 28 from sage.arith.long cimport pyobject_to_long
>> > 29 from sage.misc.misc_c import sized_iter
>> > 30 from sage.categories import monoids
>> > 31
>> > 32
>> > 33 CommutativeMonoids = monoids.Monoids().Commutative()
>> > 34
>> > 35
>> > 36 cdef inline bint element_is_scalar(Element x):
>> > 37 """
>> > 38 Should this element be considered a scalar (as opposed to a vector)?
>> >
>> > /usr/lib/python3/dist-packages/sage/matrix/matrix_space.py in <module>
>> > 31 # (at your option) any later version.
>> > 32 # https://www.gnu.org/licenses/
>> > 33 #
>> ****************************************************************************
>>
>> > 34 from __future__ import print_function, absolute_import
>> > 35 from six.moves import range
>> > 36 from six import iteritems, integer_types
>> > 37
>> > 38 # System imports
>> > 39 import sys
>> > 40 import operator
>> > 41
>> > 42 # Sage matrix imports
>> > 43 from . import matrix_generic_dense
>> > 44 from . import matrix_generic_sparse
>> > 45
>> > ---> 46 from . import matrix_modn_sparse
>> > global matrix_modn_sparse = undefined
>> > 47
>> > 48 from . import matrix_mod2_dense
>> > 49 from . import matrix_gf2e_dense
>> > 50
>> > 51 from . import matrix_integer_dense
>> > 52 from . import matrix_integer_sparse
>> > 53
>> > 54 from . import matrix_rational_dense
>> > 55 from . import matrix_rational_sparse
>> > 56
>> > 57 from . import matrix_polynomial_dense
>> > 58 from . import matrix_mpolynomial_dense
>> > 59
>> > 60 # Sage imports
>> > 61 from sage.misc.superseded import deprecation
>> >
>> > ImportError: /usr/lib/python3/dist-packages/sage/matrix/
>> matrix_modn_sparse.cpython-38-x86_64-linux-gnu.so: undefined symbol:
>> _ZNK6Givaro7IntegercvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev
>>
>>
>> >
>> >
>> ***************************************************************************
>> >
>> > History of session input:
>> > *** Last line of input (may not be in above history):
>> >
>> > Best,
>> > Lance
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "sage-support" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to [email protected].
>> > To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sage-support/CAPEqHYnogPuc6SeExsyA7oXt54UcKYPECSp1N0u%3Dqpq-jn69JQ%40mail.gmail.com.
>>
>>
>>
>
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/b2e15ca1-5c07-4c3f-b367-89aeeb025a31n%40googlegroups.com.