PHP 8.2.30
Preview: setup.py Size: 6.53 KB
//opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/random/setup.py

import os
import sys
from os.path import join

from numpy.distutils.system_info import platform_bits
from numpy.distutils.msvccompiler import lib_opts_if_msvc


def configuration(parent_package='', top_path=None):
    from numpy.distutils.misc_util import Configuration, get_mathlibs
    config = Configuration('random', parent_package, top_path)

    def generate_libraries(ext, build_dir):
        config_cmd = config.get_config_cmd()
        libs = get_mathlibs()
        if sys.platform == 'win32':
            libs.extend(['Advapi32', 'Kernel32'])
        ext.libraries.extend(libs)
        return None

    # enable unix large file support on 32 bit systems
    # (64 bit off_t, lseek -> lseek64 etc.)
    if sys.platform[:3] == 'aix':
        defs = [('_LARGE_FILES', None)]
    else:
        defs = [('_FILE_OFFSET_BITS', '64'),
                ('_LARGEFILE_SOURCE', '1'),
                ('_LARGEFILE64_SOURCE', '1')]

    defs.append(('NPY_NO_DEPRECATED_API', 0))
    config.add_subpackage('tests')
    config.add_data_dir('tests/data')
    config.add_data_dir('_examples')

    EXTRA_LINK_ARGS = []
    EXTRA_LIBRARIES = ['npyrandom']
    if os.name != 'nt':
        # Math lib
        EXTRA_LIBRARIES.append('m')
    # Some bit generators exclude GCC inlining
    EXTRA_COMPILE_ARGS = ['-U__GNUC_GNU_INLINE__']

    if sys.platform == 'cygwin':
        # Export symbols without __declspec(dllexport) for using by cython.
        # Using __declspec(dllexport) does not export other necessary symbols
        # in Cygwin package's Cython environment, making it impossible to
        # import modules.
        EXTRA_LINK_ARGS += ['-Wl,--export-all-symbols']

    # Use legacy integer variable sizes
    LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')]
    PCG64_DEFS = []
    # One can force emulated 128-bit arithmetic if one wants.
    #PCG64_DEFS += [('PCG_FORCE_EMULATED_128BIT_MATH', '1')]
    depends = ['__init__.pxd', 'c_distributions.pxd', 'bit_generator.pxd']

    # npyrandom - a library like npymath
    npyrandom_sources = [
        'src/distributions/logfactorial.c',
        'src/distributions/distributions.c',
        'src/distributions/random_mvhg_count.c',
        'src/distributions/random_mvhg_marginals.c',
        'src/distributions/random_hypergeometric.c',
    ]

    def lib_opts(build_cmd):
        """ Add flags that depend on the compiler.

        We can't see which compiler we are using in our scope, because we have
        not initialized the distutils build command, so use this deferred
        calculation to run when we are building the library.
        """
        opts = lib_opts_if_msvc(build_cmd)
        if build_cmd.compiler.compiler_type != 'msvc':
            # Some bit generators require c99
            opts.append('-std=c99')
        return opts

    config.add_installed_library('npyrandom',
        sources=npyrandom_sources,
        install_dir='lib',
        build_info={
            'include_dirs' : [],  # empty list required for creating npyrandom.h
            'extra_compiler_args': [lib_opts],
        })

    for gen in ['mt19937']:
        # gen.pyx, src/gen/gen.c, src/gen/gen-jump.c
        config.add_extension(f'_{gen}',
                             sources=[f'_{gen}.c',
                                      f'src/{gen}/{gen}.c',
                                      f'src/{gen}/{gen}-jump.c'],
                             include_dirs=['.', 'src', join('src', gen)],
                             libraries=EXTRA_LIBRARIES,
                             extra_compile_args=EXTRA_COMPILE_ARGS,
                             extra_link_args=EXTRA_LINK_ARGS,
                             depends=depends + [f'_{gen}.pyx'],
                             define_macros=defs,
                             )
    for gen in ['philox', 'pcg64', 'sfc64']:
        # gen.pyx, src/gen/gen.c
        _defs = defs + PCG64_DEFS if gen == 'pcg64' else defs
        config.add_extension(f'_{gen}',
                             sources=[f'_{gen}.c',
                                      f'src/{gen}/{gen}.c'],
                             include_dirs=['.', 'src', join('src', gen)],
                             libraries=EXTRA_LIBRARIES,
                             extra_compile_args=EXTRA_COMPILE_ARGS,
                             extra_link_args=EXTRA_LINK_ARGS,
                             depends=depends + [f'_{gen}.pyx',
                                   'bit_generator.pyx', 'bit_generator.pxd'],
                             define_macros=_defs,
                             )
    for gen in ['_common', 'bit_generator']:
        # gen.pyx
        config.add_extension(gen,
                             sources=[f'{gen}.c'],
                             libraries=EXTRA_LIBRARIES,
                             extra_compile_args=EXTRA_COMPILE_ARGS,
                             extra_link_args=EXTRA_LINK_ARGS,
                             include_dirs=['.', 'src'],
                             depends=depends + [f'{gen}.pyx', f'{gen}.pxd',],
                             define_macros=defs,
                             )
        config.add_data_files(f'{gen}.pxd')
    for gen in ['_generator', '_bounded_integers']:
        # gen.pyx, src/distributions/distributions.c
        config.add_extension(gen,
                             sources=[f'{gen}.c'],
                             libraries=EXTRA_LIBRARIES + ['npymath'],
                             extra_compile_args=EXTRA_COMPILE_ARGS,
                             include_dirs=['.', 'src'],
                             extra_link_args=EXTRA_LINK_ARGS,
                             depends=depends + [f'{gen}.pyx'],
                             define_macros=defs,
                             )
    config.add_data_files('_bounded_integers.pxd')
    mtrand_libs = ['m', 'npymath'] if os.name != 'nt' else ['npymath']
    config.add_extension('mtrand',
                         sources=['mtrand.c',
                                  'src/legacy/legacy-distributions.c',
                                  'src/distributions/distributions.c',
                                 ],
                         include_dirs=['.', 'src', 'src/legacy'],
                         libraries=mtrand_libs,
                         extra_compile_args=EXTRA_COMPILE_ARGS,
                         extra_link_args=EXTRA_LINK_ARGS,
                         depends=depends + ['mtrand.pyx'],
                         define_macros=defs + LEGACY_DEFS,
                         )
    config.add_data_files(*depends)
    config.add_data_files('*.pyi')
    return config


if __name__ == '__main__':
    from numpy.distutils.core import setup

    setup(configuration=configuration)

Directory Contents

Dirs: 4 × Files: 25

Name Size Perms Modified Actions
lib DIR
- drwxr-xr-x 2026-02-06 08:01:08
Edit Download
tests DIR
- drwxr-xr-x 2026-02-06 08:01:08
Edit Download
_examples DIR
- drwxr-xr-x 2026-01-20 13:01:48
Edit Download
- drwxr-xr-x 2026-02-06 08:07:28
Edit Download
227.25 KB lrwxr-xr-x 2026-01-20 13:18:47
Edit Download
1007 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
3.43 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
6.20 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
779.66 KB lrwxr-xr-x 2026-01-20 13:18:46
Edit Download
19.27 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
6.53 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
400.86 KB lrwxr-xr-x 2026-01-20 13:18:47
Edit Download
1.63 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
280.09 KB lrwxr-xr-x 2026-01-20 13:18:46
Edit Download
4.82 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
984.52 KB lrwxr-xr-x 2026-01-20 13:18:47
Edit Download
21.92 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
112.96 KB lrwxr-xr-x 2026-01-20 13:18:46
Edit Download
724 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
115.38 KB lrwxr-xr-x 2026-01-20 13:18:46
Edit Download
1.07 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
99.04 KB lrwxr-xr-x 2026-01-20 13:18:46
Edit Download
978 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.26 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
65.80 KB lrwxr-xr-x 2026-01-20 13:18:47
Edit Download
709 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
431 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
7.33 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.09 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).