Skip to content

Loading expressions containing symbolic functions is broken #40292

Closed
@rburing

Description

@rburing

Steps To Reproduce

$ sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 10.7.beta6, Release Date: 2025-06-14              │
│ Using Python 3.12.10. Type "help()" for help.                      │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: var('x,y')
(x, y)
sage: u = function('u')(x,y)
sage: save(u, 'u')
sage: load('u')

Expected Behavior

u(x,y)

Actual Behavior

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
File ~/src/sage/src/sage/symbolic/function_factory.py:110, in function_factory(name, nargs, latex_name, conversions, evalf_params_first, eval_func, evalf_func, conjugate_func, real_part_func, imag_part_func, derivative_func, tderivative_func, power_func, series_func, print_func, print_latex_func)
    107             raise ValueError(func_name + "_func" + " parameter must be callable")
    108         setattr(NewSymbolicFunction, '_%s_' % func_name, func)
--> 110 return NewSymbolicFunction()

File ~/src/sage/src/sage/symbolic/function_factory.py:55, in function_factory.<locals>.NewSymbolicFunction.__init__(self)
     46 def __init__(self):
     47     """
     48     EXAMPLES::
     49 
   (...)     53         f(2, 4)
     54     """
---> 55     SymbolicFunction.__init__(self, name, nargs, latex_name,
     56             conversions, evalf_params_first)

File ~/src/sage/src/sage/symbolic/function.pyx:1217, in sage.symbolic.function.SymbolicFunction.__init__()
   1215 """
   1216 self.__hinit = False
-> 1217 Function.__init__(self, name, nargs, latex_name, conversions,
   1218         evalf_params_first)
   1219 

File ~/src/sage/src/sage/symbolic/function.pyx:218, in sage.symbolic.function.Function.__init__()
    216     ValueError: eval_func parameter must be callable
    217 """
--> 218 self._name = name
    219 self._alt_name = alt_name
    220 self._nargs = nargs

TypeError: Expected unicode, got bytes
Exception ignored in: 'sage.symbolic.expression.py_get_serial_for_new_sfunction'
Traceback (most recent call last):
  File "/home/rburing/src/sage/src/sage/symbolic/function_factory.py", line 110, in function_factory
    return NewSymbolicFunction()
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/rburing/src/sage/src/sage/symbolic/function_factory.py", line 55, in __init__
    SymbolicFunction.__init__(self, name, nargs, latex_name,
  File "sage/symbolic/function.pyx", line 1217, in sage.symbolic.function.SymbolicFunction.__init__
  File "sage/symbolic/function.pyx", line 218, in sage.symbolic.function.Function.__init__
TypeError: Expected unicode, got bytes
conjugate(x)

Additional Information

No response

Environment

  • OS: Ubuntu 24.04.2 LTS
  • Sage Version: 10.7.beta6 (using conda for dependencies)

Checklist

  • I have searched the existing issues for a bug report that matches the one I want to file, without success.
  • I have read the documentation and troubleshoot guide

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions