def METHOD_NAME(type_str, description, param):
    default = param.default
    if default is inspect.Parameter.empty:
        default = numpy_get_default(type_str)
    type_cls = Any
    # Set of choices
    if "{'" in type_str and "'}" in type_str:
        type_cls = str
    elif "{" in type_str and "}" in type_str:
        type_cls = int
        if "." in type_str:
            type_cls = float
    else:
        type_split = list(
            map(lambda x: x.lower(), type_str.replace(",", "").split())
        )
        for numpy_type_name, python_type in NUMPY_DOCS_TYPE_MAP.items():
            if numpy_type_name in type_split:
                type_cls = python_type
    if type_cls == Any and default != None:
        type_cls = getattr(
            typing, type(default).__qualname__.title(), type(default)
        )
        if isinstance(default, (list, tuple)) and default:
            type_cls = type_cls[type(default[0])]
    return type_cls, field(description, default=default)