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

Function append_needs

numpy/f2py/cfuncs.py:1481–1544  ·  view source on GitHub ↗
(need, flag=1)

Source from the content-addressed store, hash-verified

1479############ Auxiliary functions for sorting needs ###################
1480
1481def append_needs(need, flag=1):
1482 # This function modifies the contents of the global `outneeds` dict.
1483 if isinstance(need, list):
1484 for n in need:
1485 append_needs(n, flag)
1486 elif isinstance(need, str):
1487 if not need:
1488 return
1489 if need in includes0:
1490 n = 'includes0'
1491 elif need in includes:
1492 n = 'includes'
1493 elif need in typedefs:
1494 n = 'typedefs'
1495 elif need in typedefs_generated:
1496 n = 'typedefs_generated'
1497 elif need in cppmacros:
1498 n = 'cppmacros'
1499 elif need in cfuncs:
1500 n = 'cfuncs'
1501 elif need in callbacks:
1502 n = 'callbacks'
1503 elif need in f90modhooks:
1504 n = 'f90modhooks'
1505 elif need in commonhooks:
1506 n = 'commonhooks'
1507 else:
1508 errmess(f'append_needs: unknown need {repr(need)}\n')
1509 return
1510 if need in outneeds[n]:
1511 return
1512 if flag:
1513 tmp = {}
1514 if need in needs:
1515 for nn in needs[need]:
1516 t = append_needs(nn, 0)
1517 if isinstance(t, dict):
1518 for nnn in t.keys():
1519 if nnn in tmp:
1520 tmp[nnn] = tmp[nnn] + t[nnn]
1521 else:
1522 tmp[nnn] = t[nnn]
1523 for nn in tmp.keys():
1524 for nnn in tmp[nn]:
1525 if nnn not in outneeds[nn]:
1526 outneeds[nn] = [nnn] + outneeds[nn]
1527 outneeds[n].append(need)
1528 else:
1529 tmp = {}
1530 if need in needs:
1531 for nn in needs[need]:
1532 t = append_needs(nn, flag)
1533 if isinstance(t, dict):
1534 for nnn in t.keys():
1535 if nnn in tmp:
1536 tmp[nnn] = t[nnn] + tmp[nnn]
1537 else:
1538 tmp[nnn] = t[nnn]

Callers

nothing calls this directly

Calls 2

errmessFunction · 0.85
keysMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…