Skip to content

Handle kwargs and not serializable values as configuration attributes #657

@pcuenca

Description

@pcuenca

Context: #655.

A kwargs argument was added to schedulers in d7dcba4 just to display a deprecation warning. kwargs was interpreted as a configurable attribute, but it could not be serialized. This broke:

  • Pipeline loading, via __repr__ in the warning message.
  • Pipeline saving.

We just added a quick fix, but there were other ideas to address it. @anton-l proposed the following in

ignore = getattr(self, "ignore_for_config", [])

ignore = getattr(self, "ignore_for_config", [])
ignore.append("kwargs")

There is also another check in

if "kwargs" in expected_keys:

Perhaps we should do this in a more general way and prevent accepting attributes that cannot be serialized, informing the user about the problem. A similar thing happened for dtype and is bound to happen again.

My first approach would be to attempt a JSON serialization in register_to_config and go from there, but I'm not fully familiar with the details of the code. Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleIssues that haven't received updates

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions