Skip to content

Split args for init#4

Merged
r-spiewak merged 11 commits into
mainfrom
split-args-for-init
Jun 16, 2025
Merged

Split args for init#4
r-spiewak merged 11 commits into
mainfrom
split-args-for-init

Conversation

@r-spiewak
Copy link
Copy Markdown
Owner

Add function (and mixin and decorator) to split args for inits.

Example:

    class Child(Parent1, Parent2):
        def __init__(self, *args, **kwargs):
            self.split = split_args_for_inits_strict_kwargs(
                type(self), args, kwargs
            )
            Parent1.__init__(
                self, *self.split[Parent1]["args"], **self.split[Parent1]["kwargs"]
            )
            Parent2.__init__(
                self, *self.split[Parent2]["args"], **self.split[Parent2]["kwargs"]
            )
            self._init_leftovers = self.split["leftovers"]

@r-spiewak r-spiewak self-assigned this Jun 12, 2025
@r-spiewak
Copy link
Copy Markdown
Owner Author

Example is now one of the following three:

    class Child(Parent1, Parent2):
        def __init__(self, *args, **kwargs):
            apply_split_inits(self, args=args, kwargs=kwargs)

or (using the mixin class)

    class Child(SplitInitMixin, Parent1, Parent2):
        def __init__(self, *args, **kwargs):
            super().__init__(args=args, kwargs=kwargs)

or (using the decorator)

    @auto_split_init
    class Child(Parent1, Parent2):
        def __init__(self, *args, **kwargs):
            pass

@r-spiewak r-spiewak merged commit 236fb4a into main Jun 16, 2025
3 checks passed
@r-spiewak r-spiewak deleted the split-args-for-init branch June 16, 2025 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant