| |
|
| |
|
| | from enum import Enum
|
| | from numpy._core._multiarray_umath import (
|
| | __cpu_features__,
|
| | __cpu_baseline__,
|
| | __cpu_dispatch__,
|
| | )
|
| |
|
| | __all__ = ["show_config"]
|
| | _built_with_meson = True
|
| |
|
| |
|
| | class DisplayModes(Enum):
|
| | stdout = "stdout"
|
| | dicts = "dicts"
|
| |
|
| |
|
| | def _cleanup(d):
|
| | """
|
| | Removes empty values in a `dict` recursively
|
| | This ensures we remove values that Meson could not provide to CONFIG
|
| | """
|
| | if isinstance(d, dict):
|
| | return {k: _cleanup(v) for k, v in d.items() if v and _cleanup(v)}
|
| | else:
|
| | return d
|
| |
|
| |
|
| | CONFIG = _cleanup(
|
| | {
|
| | "Compilers": {
|
| | "c": {
|
| | "name": "msvc",
|
| | "linker": r"link",
|
| | "version": "19.29.30159",
|
| | "commands": r"cl",
|
| | "args": r"",
|
| | "linker args": r"",
|
| | },
|
| | "cython": {
|
| | "name": "cython",
|
| | "linker": r"cython",
|
| | "version": "3.1.0",
|
| | "commands": r"cython",
|
| | "args": r"",
|
| | "linker args": r"",
|
| | },
|
| | "c++": {
|
| | "name": "msvc",
|
| | "linker": r"link",
|
| | "version": "19.29.30159",
|
| | "commands": r"cl",
|
| | "args": r"",
|
| | "linker args": r"",
|
| | },
|
| | },
|
| | "Machine Information": {
|
| | "host": {
|
| | "cpu": "x86_64",
|
| | "family": "x86_64",
|
| | "endian": "little",
|
| | "system": "windows",
|
| | },
|
| | "build": {
|
| | "cpu": "x86_64",
|
| | "family": "x86_64",
|
| | "endian": "little",
|
| | "system": "windows",
|
| | },
|
| | "cross-compiled": bool("False".lower().replace("false", "")),
|
| | },
|
| | "Build Dependencies": {
|
| | "blas": {
|
| | "name": "scipy-openblas",
|
| | "found": bool("True".lower().replace("false", "")),
|
| | "version": "0.3.29",
|
| | "detection method": "pkgconfig",
|
| | "include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-7xf_vzet/cp310-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/include",
|
| | "lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-7xf_vzet/cp310-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/lib",
|
| | "openblas configuration": r"OpenBLAS 0.3.29 USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24",
|
| | "pc file directory": r"C:/a/numpy/numpy/.openblas",
|
| | },
|
| | "lapack": {
|
| | "name": "scipy-openblas",
|
| | "found": bool("True".lower().replace("false", "")),
|
| | "version": "0.3.29",
|
| | "detection method": "pkgconfig",
|
| | "include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-7xf_vzet/cp310-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/include",
|
| | "lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-7xf_vzet/cp310-win_amd64/build/venv/Lib/site-packages/scipy_openblas64/lib",
|
| | "openblas configuration": r"OpenBLAS 0.3.29 USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24",
|
| | "pc file directory": r"C:/a/numpy/numpy/.openblas",
|
| | },
|
| | },
|
| | "Python Information": {
|
| | "path": r"C:\Users\runneradmin\AppData\Local\Temp\build-env-r6iiznem\Scripts\python.exe",
|
| | "version": "3.10",
|
| | },
|
| | "SIMD Extensions": {
|
| | "baseline": __cpu_baseline__,
|
| | "found": [
|
| | feature for feature in __cpu_dispatch__ if __cpu_features__[feature]
|
| | ],
|
| | "not found": [
|
| | feature for feature in __cpu_dispatch__ if not __cpu_features__[feature]
|
| | ],
|
| | },
|
| | }
|
| | )
|
| |
|
| |
|
| | def _check_pyyaml():
|
| | import yaml
|
| |
|
| | return yaml
|
| |
|
| |
|
| | def show(mode=DisplayModes.stdout.value):
|
| | """
|
| | Show libraries and system information on which NumPy was built
|
| | and is being used
|
| |
|
| | Parameters
|
| | ----------
|
| | mode : {`'stdout'`, `'dicts'`}, optional.
|
| | Indicates how to display the config information.
|
| | `'stdout'` prints to console, `'dicts'` returns a dictionary
|
| | of the configuration.
|
| |
|
| | Returns
|
| | -------
|
| | out : {`dict`, `None`}
|
| | If mode is `'dicts'`, a dict is returned, else None
|
| |
|
| | See Also
|
| | --------
|
| | get_include : Returns the directory containing NumPy C
|
| | header files.
|
| |
|
| | Notes
|
| | -----
|
| | 1. The `'stdout'` mode will give more readable
|
| | output if ``pyyaml`` is installed
|
| |
|
| | """
|
| | if mode == DisplayModes.stdout.value:
|
| | try:
|
| | yaml = _check_pyyaml()
|
| |
|
| | print(yaml.dump(CONFIG))
|
| | except ModuleNotFoundError:
|
| | import warnings
|
| | import json
|
| |
|
| | warnings.warn("Install `pyyaml` for better output", stacklevel=1)
|
| | print(json.dumps(CONFIG, indent=2))
|
| | elif mode == DisplayModes.dicts.value:
|
| | return CONFIG
|
| | else:
|
| | raise AttributeError(
|
| | f"Invalid `mode`, use one of: {', '.join([e.value for e in DisplayModes])}"
|
| | )
|
| |
|
| |
|
| | def show_config(mode=DisplayModes.stdout.value):
|
| | return show(mode)
|
| |
|
| |
|
| | show_config.__doc__ = show.__doc__
|
| | show_config.__module__ = "numpy"
|
| |
|