-
Notifications
You must be signed in to change notification settings - Fork 35
Closed
Labels
bugShould work but doesn'tShould work but doesn'tdepsDependency updateDependency updatefixed-in-develThe issue is fixed in 'devel' branch and will be included in the next releaseThe issue is fixed in 'devel' branch and will be included in the next releasetriagedThe issue has been understood and the root cause is knownThe issue has been understood and the root cause is known
Description
Probably related to 60a858a372b14b73547baacf4a472eccfade1073, similar to compiled failures addressed in 89f26a8.
Looking at the generated json structures there's a difference in the value of "combine_costs" parameter.
numpy 1.24:
"combine_costs": "gASVEQAAAAAAAACMBW51bXB5lIwDc3VtlJOULg==\n",
numpy 1.25:
"combine_costs": "<function sum at 0x7fba7259df80>",
EDIT: which leads to failures when reconstructing the PNL model:
_ test_get_mdf_serialized_results_equivalence_pnl_only[model_with_control.py-comp-{Input: [0.5, 0.123], reward: [20, 20]}-False] _
[gw3] linux -- Python 3.9.18 /home/runner/work/_temp/_venv/bin/python
filename = 'model_with_control.py', composition_name = 'comp'
input_dict_str = '{Input: [0.5, 0.123], reward: [20, 20]}'
simple_edge_format = False
@pytest.mark.parametrize(
'filename, composition_name, input_dict_str, simple_edge_format',
pnl_mdf_results_parametrization
)
def test_get_mdf_serialized_results_equivalence_pnl_only(
filename,
composition_name,
input_dict_str,
simple_edge_format,
):
comp_inputs = {composition_name: input_dict_str}
# Get python script from file and execute
orig_script = read_defined_model_script(filename)
orig_results, orig_globals, orig_locals = get_model_results_and_state(
orig_script, comp_inputs
)
# reset random seed
pnl.core.globals.utilities.set_global_seed(0)
# Generate python script from MDF serialization of composition and execute
mdf_data = pnl.get_mdf_serialized(
eval(f'{composition_name}', orig_globals, orig_locals),
simple_edge_format=simple_edge_format
)
new_script = pnl.generate_script_from_mdf(mdf_data)
> new_results, _, _ = get_model_results_and_state(new_script, comp_inputs)
tests/mdf/test_mdf.py:179:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/mdf/test_mdf.py:135: in get_model_results_and_state
_globals, _locals = get_loaded_model_state(model_input)
tests/mdf/test_mdf.py:115: in get_loaded_model_state
exec(model_input, _globals, _locals)
<string>:16: in <module>
???
psyneulink/core/globals/context.py:742: in wrapper
return func(*args, context=context, **kwargs)
psyneulink/core/compositions/composition.py:9320: in add_controller
controller._deferred_init(context=context)
psyneulink/core/components/component.py:1822: in _deferred_init
super(self.__class__,self).__init__(**self._init_args)
psyneulink/core/globals/parameters.py:486: in check_user_specified_wrapper
return func(self, *args, **orig_kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
__beartype_object_140081829419264 = (<class 'NoneType'>, <class 'psyneulink.core.components.shellclasses.Mechanism'>, <class 'psyneulink.core.components.ports.outputport.OutputPort'>, <class 'collections.abc.Iterable'>)
__beartype_get_violation = <function get_func_pith_violation at 0x7f680bd7b040>
__beartype_conf = BeartypeConf()
__beartype_object_140085193782400 = <class 'NoneType'>
__beartype_object_140085135094320 = 'concatenate'
__beartype_object_140085149546096 = 'combine'
__beartype_object_140084851640752 = 'separate'
__beartype_object_14008498[91](https://github.com/PrincetonUniversity/PsyNeuLink/actions/runs/7833247864/job/21373857551?pr=2906#step:12:92)82176 = (<class 'int'>, <class 'list'>, <class 'NoneType'>, <class 'float'>, <class 'numpy.ndarray'>)
__beartype_object_1400818290864[96](https://github.com/PrincetonUniversity/PsyNeuLink/actions/runs/7833247864/job/21373857551?pr=2906#step:12:97) = (<class 'psyneulink.core.components.ports.parameterport.ParameterPort'>, <class 'NoneType'>, <class 'collections.abc.I...yneulink.core.components.ports.outputport.OutputPort'>, <class 'psyneulink.core.components.ports.inputport.InputPort'>)
__beartype_object_140085008303232 = (<class 'str'>, <class 'NoneType'>)
__beartype_object_1400848284[98](https://github.com/PrincetonUniversity/PsyNeuLink/actions/runs/7833247864/job/21373857551?pr=2906#step:12:99)[112](https://github.com/PrincetonUniversity/PsyNeuLink/actions/runs/7833247864/job/21373857551?pr=2906#step:12:113) = (<class 'NoneType'>, <class 'collections.abc.Callable'>)
__beartype_object_[140](https://github.com/PrincetonUniversity/PsyNeuLink/actions/runs/7833247864/job/21373857551?pr=2906#step:12:141)081867904768 = (<class 'NoneType'>, <class 'psyneulink.core.globals.preferences.basepreferenceset.BasePreferenceSet'>)
> ???
E beartype.roar.BeartypeCallHintParamViolation: Method psyneulink.core.components.mechanisms.modulatory.control.controlmechanism.ControlMechanism.__init__() parameter combine_costs='<function sum at 0x7f681c362040>' violates type hint typing.Optional[collections.abc.Callable], as str '<function sum at 0x7f681c362040>' not <class "builtins.NoneType"> or <protocol ABC "collections.abc.Callable">.
<@beartype(psyneulink.core.components.mechanisms.modulatory.control.controlmechanism.ControlMechanism.__init__) at 0x7f6757a90af0>:180: BeartypeCallHintParamViolation
Metadata
Metadata
Assignees
Labels
bugShould work but doesn'tShould work but doesn'tdepsDependency updateDependency updatefixed-in-develThe issue is fixed in 'devel' branch and will be included in the next releaseThe issue is fixed in 'devel' branch and will be included in the next releasetriagedThe issue has been understood and the root cause is knownThe issue has been understood and the root cause is known