MCPcopy Create free account
hub / github.com/numpy/numpy / applyrules

Function applyrules

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

Source from the content-addressed store, hash-verified

833
834
835def applyrules(rules, d, var={}):
836 ret = {}
837 if isinstance(rules, list):
838 for r in rules:
839 rr = applyrules(r, d, var)
840 ret = dictappend(ret, rr)
841 if '_break' in rr:
842 break
843 return ret
844 if '_check' in rules and (not rules['_check'](var)):
845 return ret
846 if 'need' in rules:
847 res = applyrules({'needs': rules['need']}, d, var)
848 if 'needs' in res:
849 cfuncs.append_needs(res['needs'])
850
851 for k in rules.keys():
852 if k == 'separatorsfor':
853 ret[k] = rules[k]
854 continue
855 if isinstance(rules[k], str):
856 ret[k] = replace(rules[k], d)
857 elif isinstance(rules[k], list):
858 ret[k] = []
859 for i in rules[k]:
860 ar = applyrules({k: i}, d, var)
861 if k in ar:
862 ret[k].append(ar[k])
863 elif k[0] == '_':
864 continue
865 elif isinstance(rules[k], dict):
866 ret[k] = []
867 for k1 in rules[k].keys():
868 if isinstance(k1, types.FunctionType) and k1(var):
869 if isinstance(rules[k][k1], list):
870 for i in rules[k][k1]:
871 if isinstance(i, dict):
872 res = applyrules({'supertext': i}, d, var)
873 if 'supertext' in res:
874 i = res['supertext']
875 else:
876 i = ''
877 ret[k].append(replace(i, d))
878 else:
879 i = rules[k][k1]
880 if isinstance(i, dict):
881 res = applyrules({'supertext': i}, d)
882 if 'supertext' in res:
883 i = res['supertext']
884 else:
885 i = ''
886 ret[k].append(replace(i, d))
887 else:
888 errmess('applyrules: ignoring rule %s.\n' % repr(rules[k]))
889 if isinstance(ret[k], list):
890 if len(ret[k]) == 1:
891 ret[k] = ret[k][0]
892 if ret[k] == []:

Callers 5

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

Calls 3

dictappendFunction · 0.85
keysMethod · 0.80
replaceFunction · 0.70

Tested by

no test coverage detected