Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion jsonargparse/_parameter_resolvers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from contextlib import contextmanager, suppress
from contextvars import ContextVar
from copy import deepcopy
from functools import partial
from functools import partial, partialmethod
from importlib import import_module
from types import MethodType
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
Expand Down Expand Up @@ -102,6 +102,10 @@ def is_method(attr) -> bool:
)


def is_partial_method(attr) -> bool:
return isinstance(attr, partialmethod) or isinstance(attr, partial)


def is_property(attr) -> bool:
return isinstance(attr, property)

Expand Down Expand Up @@ -509,6 +513,8 @@ def get_component_and_parent(
component = getattr(function_or_class, "__new__")
elif is_method(attr):
component = attr
elif is_partial_method(attr):
component = getattr(function_or_class, method_or_property)
elif is_property(attr):
component = attr.fget
elif isinstance(attr, classmethod):
Expand Down
Loading