Source code for cmdstanpy.utils

"""
Utility functions
"""
import os
import platform
import sys

from .cmdstan import (
    EXTENSION,
    cmdstan_path,
    cmdstan_version,
    cmdstan_version_before,
    cxx_toolchain_path,
    get_latest_cmdstan,
    install_cmdstan,
    set_cmdstan_path,
    set_make_env,
    validate_cmdstan_path,
    validate_dir,
    wrap_url_progress_hook,
)
from .command import do_command, returncode_msg
from .data_munging import build_xarray_data, flatten_chains
from .filesystem import (
    SanitizedOrTmpFilePath,
    create_named_text_file,
    pushd,
    windows_short_path,
)
from .json import write_stan_json
from .logging import get_logger
from .stancsv import (
    check_sampler_csv,
    parse_rdump_value,
    read_metric,
    rload,
    scan_column_names,
    scan_config,
    scan_hmc_params,
    scan_optimize_csv,
    scan_sampler_csv,
    scan_sampling_iters,
    scan_variational_csv,
    scan_warmup_iters,
)


[docs]def show_versions(output: bool = True) -> str: """Prints out system and dependency information for debugging""" import importlib import locale import struct deps_info = [] try: (sysname, _, release, _, machine, processor) = platform.uname() deps_info.extend( [ ("python", sys.version), ("python-bits", struct.calcsize("P") * 8), ("OS", f"{sysname}"), ("OS-release", f"{release}"), ("machine", f"{machine}"), ("processor", f"{processor}"), ("byteorder", f"{sys.byteorder}"), ("LC_ALL", f'{os.environ.get("LC_ALL", "None")}'), ("LANG", f'{os.environ.get("LANG", "None")}'), ("LOCALE", f"{locale.getlocale()}"), ] ) # pylint: disable=broad-except except Exception: pass try: deps_info.append(('cmdstan_folder', cmdstan_path())) deps_info.append(('cmdstan', str(cmdstan_version()))) # pylint: disable=broad-except except Exception: deps_info.append(('cmdstan', 'NOT FOUND')) deps = ['cmdstanpy', 'pandas', 'xarray', 'tqdm', 'numpy'] for module in deps: try: if module in sys.modules: mod = sys.modules[module] else: mod = importlib.import_module(module) # pylint: disable=broad-except except Exception: deps_info.append((module, None)) else: try: ver = mod.__version__ # type: ignore deps_info.append((module, ver)) # pylint: disable=broad-except except Exception: deps_info.append((module, "installed")) out = 'INSTALLED VERSIONS\n---------------------\n' for k, info in deps_info: out += f'{k}: {info}\n' if output: print(out) return " " else: return out
__all__ = [ 'EXTENSION', 'SanitizedOrTmpFilePath', 'build_xarray_data', 'check_sampler_csv', 'cmdstan_path', 'cmdstan_version', 'cmdstan_version_before', 'create_named_text_file', 'cxx_toolchain_path', 'do_command', 'flatten_chains', 'get_latest_cmdstan', 'get_logger', 'install_cmdstan', 'parse_rdump_value', 'pushd', 'read_metric', 'returncode_msg', 'rload', 'scan_column_names', 'scan_config', 'scan_hmc_params', 'scan_optimize_csv', 'scan_sampler_csv', 'scan_sampling_iters', 'scan_variational_csv', 'scan_warmup_iters', 'set_cmdstan_path', 'set_make_env', 'show_versions', 'validate_cmdstan_path', 'validate_dir', 'windows_short_path', 'wrap_url_progress_hook', 'write_stan_json', ]