OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
hps
/
faces
/
.venv
/
lib
/
python3.10
/
site-packages
/
numpy
/
f2py
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/26/2024 01:26:35 PM
rwxr-xr-x
📄
__init__.py
5.1 KB
10/26/2024 01:26:27 PM
rw-r--r--
📄
__init__.pyi
1.08 KB
10/26/2024 01:26:27 PM
rw-r--r--
📄
__main__.py
130 bytes
10/26/2024 01:26:27 PM
rw-r--r--
📁
__pycache__
-
10/26/2024 01:27:37 PM
rwxr-xr-x
📄
__version__.py
34 bytes
10/26/2024 01:26:27 PM
rw-r--r--
📄
auxfuncs.py
22.17 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
capi_maps.py
32.24 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
cb_rules.py
24.45 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
cfuncs.py
50.16 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
common_rules.py
4.97 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
crackfortran.py
135.64 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
diagnose.py
5.11 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
f2py2e.py
24.05 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
f90mod_rules.py
9.21 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
func2subr.py
9.23 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
rules.py
61.28 KB
10/26/2024 01:26:26 PM
rw-r--r--
📄
setup.py
2.28 KB
10/26/2024 01:26:26 PM
rw-r--r--
📁
src
-
10/26/2024 01:27:35 PM
rwxr-xr-x
📄
symbolic.py
51.76 KB
10/26/2024 01:26:26 PM
rw-r--r--
📁
tests
-
10/26/2024 01:29:54 PM
rwxr-xr-x
📄
use_rules.py
3.5 KB
10/26/2024 01:26:26 PM
rw-r--r--
Editing: use_rules.py
Close
#!/usr/bin/env python3 """ Build 'use others module data' mechanism for f2py2e. Unfinished. Copyright 2000 Pearu Peterson all rights reserved, Pearu Peterson <pearu@ioc.ee> Permission to use, modify, and distribute this software is given under the terms of the NumPy License. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. $Date: 2000/09/10 12:35:43 $ Pearu Peterson """ __version__ = "$Revision: 1.3 $"[10:-1] f2py_version = 'See `f2py -v`' from .auxfuncs import ( applyrules, dictappend, gentitle, hasnote, outmess ) usemodule_rules = { 'body': """ #begintitle# static char doc_#apiname#[] = \"\\\nVariable wrapper signature:\\n\\ \t #name# = get_#name#()\\n\\ Arguments:\\n\\ #docstr#\"; extern F_MODFUNC(#usemodulename#,#USEMODULENAME#,#realname#,#REALNAME#); static PyObject *#apiname#(PyObject *capi_self, PyObject *capi_args) { /*#decl#*/ \tif (!PyArg_ParseTuple(capi_args, \"\")) goto capi_fail; printf(\"c: %d\\n\",F_MODFUNC(#usemodulename#,#USEMODULENAME#,#realname#,#REALNAME#)); \treturn Py_BuildValue(\"\"); capi_fail: \treturn NULL; } """, 'method': '\t{\"get_#name#\",#apiname#,METH_VARARGS|METH_KEYWORDS,doc_#apiname#},', 'need': ['F_MODFUNC'] } ################ def buildusevars(m, r): ret = {} outmess( '\t\tBuilding use variable hooks for module "%s" (feature only for F90/F95)...\n' % (m['name'])) varsmap = {} revmap = {} if 'map' in r: for k in r['map'].keys(): if r['map'][k] in revmap: outmess('\t\t\tVariable "%s<=%s" is already mapped by "%s". Skipping.\n' % ( r['map'][k], k, revmap[r['map'][k]])) else: revmap[r['map'][k]] = k if 'only' in r and r['only']: for v in r['map'].keys(): if r['map'][v] in m['vars']: if revmap[r['map'][v]] == v: varsmap[v] = r['map'][v] else: outmess('\t\t\tIgnoring map "%s=>%s". See above.\n' % (v, r['map'][v])) else: outmess( '\t\t\tNo definition for variable "%s=>%s". Skipping.\n' % (v, r['map'][v])) else: for v in m['vars'].keys(): if v in revmap: varsmap[v] = revmap[v] else: varsmap[v] = v for v in varsmap.keys(): ret = dictappend(ret, buildusevar(v, varsmap[v], m['vars'], m['name'])) return ret def buildusevar(name, realname, vars, usemodulename): outmess('\t\t\tConstructing wrapper function for variable "%s=>%s"...\n' % ( name, realname)) ret = {} vrd = {'name': name, 'realname': realname, 'REALNAME': realname.upper(), 'usemodulename': usemodulename, 'USEMODULENAME': usemodulename.upper(), 'texname': name.replace('_', '\\_'), 'begintitle': gentitle('%s=>%s' % (name, realname)), 'endtitle': gentitle('end of %s=>%s' % (name, realname)), 'apiname': '#modulename#_use_%s_from_%s' % (realname, usemodulename) } nummap = {0: 'Ro', 1: 'Ri', 2: 'Rii', 3: 'Riii', 4: 'Riv', 5: 'Rv', 6: 'Rvi', 7: 'Rvii', 8: 'Rviii', 9: 'Rix'} vrd['texnamename'] = name for i in nummap.keys(): vrd['texnamename'] = vrd['texnamename'].replace(repr(i), nummap[i]) if hasnote(vars[realname]): vrd['note'] = vars[realname]['note'] rd = dictappend({}, vrd) print(name, realname, vars[realname]) ret = applyrules(usemodule_rules, rd) return ret