MCPcopy Index your code
hub / github.com/numpy/numpy / applyrules

Function applyrules

numpy/f2py/auxfuncs.py:857–910  ·  view source on GitHub ↗
(rules, d, var={})

Source from the content-addressed store, hash-verified

855
856
857def applyrules(rules, d, var={}):
858 ret = {}
859 if isinstance(rules, list):
860 for r in rules:
861 rr = applyrules(r, d, var)
862 ret = dictappend(ret, rr)
863 if '_break' in rr:
864 break
865 return ret
866 if '_check' in rules and (not rules['_check'](var)):
867 return ret
868 if 'need' in rules:
869 res = applyrules({'needs': rules['need']}, d, var)
870 if 'needs' in res:
871 cfuncs.append_needs(res['needs'])
872
873 for k in rules.keys():
874 if k == 'separatorsfor':
875 ret[k] = rules[k]
876 continue
877 if isinstance(rules[k], str):
878 ret[k] = replace(rules[k], d)
879 elif isinstance(rules[k], list):
880 ret[k] = []
881 for i in rules[k]:
882 ar = applyrules({k: i}, d, var)
883 if k in ar:
884 ret[k].append(ar[k])
885 elif k[0] == '_':
886 continue
887 elif isinstance(rules[k], dict):
888 ret[k] = []
889 for k1 in rules[k].keys():
890 if isinstance(k1, types.FunctionType) and k1(var):
891 if isinstance(rules[k][k1], list):
892 for i in rules[k][k1]:
893 if isinstance(i, dict):
894 res = applyrules({'supertext': i}, d, var)
895 i = res.get('supertext', '')
896 ret[k].append(replace(i, d))
897 else:
898 i = rules[k][k1]
899 if isinstance(i, dict):
900 res = applyrules({'supertext': i}, d)
901 i = res.get('supertext', '')
902 ret[k].append(replace(i, d))
903 else:
904 errmess(f'applyrules: ignoring rule {repr(rules[k])}.\n')
905 if isinstance(ret[k], list):
906 if len(ret[k]) == 1:
907 ret[k] = ret[k][0]
908 if ret[k] == []:
909 del ret[k]
910 return ret
911
912
913_f2py_module_name_match = re.compile(r'\s*python\s*module\s*(?P<name>[\w_]+)',

Callers 5

buildhooksFunction · 0.85
buildusevarFunction · 0.85
buildcallbackFunction · 0.85
buildmoduleFunction · 0.85
buildapiFunction · 0.85

Calls 5

dictappendFunction · 0.85
errmessFunction · 0.85
replaceFunction · 0.70
keysMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…