MCPcopy Create free account
hub / github.com/python/mypy / infer_c_method_args

Function infer_c_method_args

mypy/stubgenc.py:939–1046  ·  view source on GitHub ↗
(
    name: str, self_var: str = "self", arg_names: list[str] | None = None
)

Source from the content-addressed store, hash-verified

937
938
939def infer_c_method_args(
940 name: str, self_var: str = "self", arg_names: list[str] | None = None
941) -> list[ArgSig]:
942 args: list[ArgSig] | None = None
943 if name.startswith("__") and name.endswith("__"):
944 name = name[2:-2]
945 if name in (
946 "hash",
947 "iter",
948 "next",
949 "sizeof",
950 "copy",
951 "deepcopy",
952 "reduce",
953 "getinitargs",
954 "int",
955 "float",
956 "trunc",
957 "complex",
958 "bool",
959 "abs",
960 "bytes",
961 "dir",
962 "len",
963 "reversed",
964 "round",
965 "index",
966 "enter",
967 ):
968 args = []
969 elif name == "getitem":
970 args = [ArgSig(name="index")]
971 elif name == "setitem":
972 args = [ArgSig(name="index"), ArgSig(name="object")]
973 elif name in ("delattr", "getattr"):
974 args = [ArgSig(name="name")]
975 elif name == "setattr":
976 args = [ArgSig(name="name"), ArgSig(name="value")]
977 elif name == "getstate":
978 args = []
979 elif name == "setstate":
980 args = [ArgSig(name="state")]
981 elif name in ("eq", "ne", "lt", "le", "gt", "ge"):
982 args = [ArgSig(name="other", type="object")]
983 elif name in (
984 "add",
985 "radd",
986 "sub",
987 "rsub",
988 "mul",
989 "rmul",
990 "mod",
991 "rmod",
992 "floordiv",
993 "rfloordiv",
994 "truediv",
995 "rtruediv",
996 "divmod",

Callers 7

test_infer_hash_sigMethod · 0.90
test_infer_eq_op_sigMethod · 0.90

Calls 4

ArgSigClass · 0.90
infer_method_arg_typesFunction · 0.90
startswithMethod · 0.45
endswithMethod · 0.45

Tested by 6

test_infer_hash_sigMethod · 0.72
test_infer_eq_op_sigMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…