(
name: str, self_var: str = "self", arg_names: list[str] | None = None
)
| 937 | |
| 938 | |
| 939 | def 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", |
searching dependent graphs…