Skip to content

Handle kwargs and not serializable values as configuration attributes #657

Closed

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?

Activity

  1. patrickvonplaten commented on Oct 5, 2022

    @patrickvonplaten
    Contributor

    I think the solution we have for now is good enough actually - what do you think @pcuenca ?

  2. github-actions commented on Oct 29, 2022

    @github-actions
    Contributor

    This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

    Please note that issues that do not follow the contributing guidelines are likely to be ignored.

  3. pcuenca commented on Oct 30, 2022

    @pcuenca
    MemberAuthor

    Sounds good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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