SILENT KILLERPanel

Current Path: > > opt > cloudlinux > venv > lib > > python3.11 > site-packages > > numpy > distutils >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/cloudlinux/venv/lib//python3.11/site-packages//numpy/distutils/

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
checks Directory - -
command Directory - -
fcompiler Directory - -
mingw Directory - -
tests Directory - -
__config__.py File 5143 bytes April 17 2025 13:10:58.
__init__.py File 2074 bytes April 17 2025 13:10:58.
__init__.pyi File 119 bytes April 17 2025 13:10:58.
_shell_utils.py File 2613 bytes April 17 2025 13:10:58.
armccompiler.py File 962 bytes April 17 2025 13:10:58.
ccompiler.py File 28618 bytes April 17 2025 13:10:58.
ccompiler_opt.py File 100335 bytes April 17 2025 13:10:58.
conv_template.py File 9536 bytes April 17 2025 13:10:58.
core.py File 8173 bytes April 17 2025 13:10:58.
cpuinfo.py File 22639 bytes April 17 2025 13:10:58.
exec_command.py File 10283 bytes April 17 2025 13:10:58.
extension.py File 3568 bytes April 17 2025 13:10:58.
from_template.py File 7913 bytes April 17 2025 13:10:58.
fujitsuccompiler.py File 834 bytes April 17 2025 13:10:58.
intelccompiler.py File 4234 bytes April 17 2025 13:10:58.
lib2def.py File 3630 bytes April 17 2025 13:10:58.
line_endings.py File 2032 bytes April 17 2025 13:10:58.
log.py File 2879 bytes April 17 2025 13:10:58.
mingw32ccompiler.py File 22067 bytes April 17 2025 13:10:58.
misc_util.py File 89359 bytes April 17 2025 13:10:58.
msvc9compiler.py File 2192 bytes April 17 2025 13:10:58.
msvccompiler.py File 2647 bytes April 17 2025 13:10:58.
npy_pkg_config.py File 12972 bytes April 17 2025 13:10:58.
numpy_distribution.py File 634 bytes April 17 2025 13:10:58.
pathccompiler.py File 713 bytes April 17 2025 13:10:58.
setup.py File 634 bytes April 17 2025 13:10:58.
system_info.py File 113184 bytes April 17 2025 13:10:58.
unixccompiler.py File 5426 bytes April 17 2025 13:10:58.

Reading File: //opt/cloudlinux/venv/lib//python3.11/site-packages//numpy/distutils//lib2def.py

import re
import sys
import subprocess

__doc__ = """This module generates a DEF file from the symbols in
an MSVC-compiled DLL import library.  It correctly discriminates between
data and functions.  The data is collected from the output of the program
nm(1).

Usage:
    python lib2def.py [libname.lib] [output.def]
or
    python lib2def.py [libname.lib] > output.def

libname.lib defaults to python<py_ver>.lib and output.def defaults to stdout

Author: Robert Kern <kernr@mail.ncifcrf.gov>
Last Update: April 30, 1999
"""

__version__ = '0.1a'

py_ver = "%d%d" % tuple(sys.version_info[:2])

DEFAULT_NM = ['nm', '-Cs']

DEF_HEADER = """LIBRARY         python%s.dll
;CODE           PRELOAD MOVEABLE DISCARDABLE
;DATA           PRELOAD SINGLE

EXPORTS
""" % py_ver
# the header of the DEF file

FUNC_RE = re.compile(r"^(.*) in python%s\.dll" % py_ver, re.MULTILINE)
DATA_RE = re.compile(r"^_imp__(.*) in python%s\.dll" % py_ver, re.MULTILINE)

def parse_cmd():
    """Parses the command-line arguments.

libfile, deffile = parse_cmd()"""
    if len(sys.argv) == 3:
        if sys.argv[1][-4:] == '.lib' and sys.argv[2][-4:] == '.def':
            libfile, deffile = sys.argv[1:]
        elif sys.argv[1][-4:] == '.def' and sys.argv[2][-4:] == '.lib':
            deffile, libfile = sys.argv[1:]
        else:
            print("I'm assuming that your first argument is the library")
            print("and the second is the DEF file.")
    elif len(sys.argv) == 2:
        if sys.argv[1][-4:] == '.def':
            deffile = sys.argv[1]
            libfile = 'python%s.lib' % py_ver
        elif sys.argv[1][-4:] == '.lib':
            deffile = None
            libfile = sys.argv[1]
    else:
        libfile = 'python%s.lib' % py_ver
        deffile = None
    return libfile, deffile

def getnm(nm_cmd=['nm', '-Cs', 'python%s.lib' % py_ver], shell=True):
    """Returns the output of nm_cmd via a pipe.

nm_output = getnm(nm_cmd = 'nm -Cs py_lib')"""
    p = subprocess.Popen(nm_cmd, shell=shell, stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE, text=True)
    nm_output, nm_err = p.communicate()
    if p.returncode != 0:
        raise RuntimeError('failed to run "%s": "%s"' % (
                                     ' '.join(nm_cmd), nm_err))
    return nm_output

def parse_nm(nm_output):
    """Returns a tuple of lists: dlist for the list of data
symbols and flist for the list of function symbols.

dlist, flist = parse_nm(nm_output)"""
    data = DATA_RE.findall(nm_output)
    func = FUNC_RE.findall(nm_output)

    flist = []
    for sym in data:
        if sym in func and (sym[:2] == 'Py' or sym[:3] == '_Py' or sym[:4] == 'init'):
            flist.append(sym)

    dlist = []
    for sym in data:
        if sym not in flist and (sym[:2] == 'Py' or sym[:3] == '_Py'):
            dlist.append(sym)

    dlist.sort()
    flist.sort()
    return dlist, flist

def output_def(dlist, flist, header, file = sys.stdout):
    """Outputs the final DEF file to a file defaulting to stdout.

output_def(dlist, flist, header, file = sys.stdout)"""
    for data_sym in dlist:
        header = header + '\t%s DATA\n' % data_sym
    header = header + '\n' # blank line
    for func_sym in flist:
        header = header + '\t%s\n' % func_sym
    file.write(header)

if __name__ == '__main__':
    libfile, deffile = parse_cmd()
    if deffile is None:
        deffile = sys.stdout
    else:
        deffile = open(deffile, 'w')
    nm_cmd = DEFAULT_NM + [str(libfile)]
    nm_output = getnm(nm_cmd, shell=False)
    dlist, flist = parse_nm(nm_output)
    output_def(dlist, flist, DEF_HEADER, deffile)

SILENT KILLER Tool