# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{10..12} ) inherit distutils-r1 DESCRIPTION="Python interface to CmdStan" HOMEPAGE="https://cmdstanpy.readthedocs.io" SRC_URI="https://github.com/stan-dev/cmdstanpy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" LICENSE="BSD" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="all doc" PROPERTIES="test_network" RESTRICT="test" RDEPEND=">=dev-python/numpy-1.21[${PYTHON_USEDEP}] dev-python/pandas[${PYTHON_USEDEP}] dev-python/stanio[${PYTHON_USEDEP}] dev-python/tqdm[${PYTHON_USEDEP}] all? ( dev-python/xarray[${PYTHON_USEDEP}] ) " BDEPEND="test? ( dev-python/pytest-order[${PYTHON_USEDEP}] dev-vcs/git ) " distutils_enable_tests pytest EPYTEST_IGNORE=( # E ValueError: No CmdStan installation found, run command "install_cmdstan"or (re)activate your conda environment! test/test_generate_quantities.py test/test_log_prob.py ) EPYTEST_DESELECT=( # E ValueError: No CmdStan installation found, run command "install_cmdstan"or (re)activate your conda environment! test/test_cmdstan_args.py::test_args_sig_figs test/test_laplace.py::test_laplace_from_opt_csv test/test_laplace.py::test_laplace_from_csv test/test_laplace.py::test_laplace_runs_opt test/test_laplace.py::test_laplace_bad_jacobian_mismatch test/test_laplace.py::test_laplace_bad_two_modes test/test_laplace.py::test_laplace_outputs test/test_model.py::test_model_good test/test_model.py::test_ctor_compile_arg test/test_model.py::test_exe_only test/test_model.py::test_fixed_param test/test_model.py::test_model_pedantic test/test_model.py::test_model_bad test/test_model.py::test_model_info test/test_model.py::test_compile_with_bad_includes test/test_model.py::test_compile_with_includes test/test_model.py::test_compile_force test/test_model.py::test_model_paths test/test_model.py::test_repr test/test_model.py::test_print test/test_model.py::test_model_compile test/test_model.py::test_model_compile_space test/test_model.py::test_model_includes_explicit test/test_model.py::test_model_includes_implicit test/test_model.py::test_model_includes_special_char test/test_optimize.py::test_instantiate test/test_optimize.py::test_rosenbrock test/test_optimize.py::test_eight_schools test/test_optimize.py::test_variable_bern test/test_optimize.py::test_variables_3d test/test_optimize.py::test_optimize_good test/test_optimize.py::test_negative_parameter_values test/test_optimize.py::test_parameters_are_floats test/test_optimize.py::test_parameters_and_optimizer_compatible test/test_optimize.py::test_optimize_good_dict test/test_optimize.py::test_optimize_rosenbrock test/test_optimize.py::test_optimize_no_data test/test_optimize.py::test_optimize_bad test/test_optimize.py::test_single_row_csv test/test_optimize.py::test_show_console test/test_optimize.py::test_exe_only test/test_optimize.py::test_complex_output test/test_optimize.py::test_attrs test/test_optimize.py::test_timeout test/test_optimize.py::test_serialization test/test_pathfinder.py::test_pathfinder_outputs test/test_pathfinder.py::test_single_pathfinder test/test_pathfinder.py::test_pathfinder_create_inits test/test_pathfinder.py::test_pathfinder_init_sampling test/test_pathfinder.py::test_inits_for_pathfinder test/test_pathfinder.py::test_pathfinder_threads test/test_sample.py::test_pd_xr_agreement test/test_sample.py::test_bernoulli_good test/test_sample.py::test_bernoulli_unit_e test/test_sample.py::test_init_types test/test_sample.py::test_bernoulli_bad test/test_sample.py::test_multi_proc_1 test/test_sample.py::test_multi_proc_2 test/test_sample.py::test_num_threads_msgs test/test_sample.py::test_multi_proc_threads test/test_sample.py::test_multi_proc_err_msgs test/test_sample.py::test_fixed_param_good test/test_sample.py::test_fixed_param_unspecified test/test_sample.py::test_index_bounds_error test/test_sample.py::test_show_console test/test_sample.py::test_show_progress test/test_sample.py::test_validate_good_run test/test_sample.py::test_custom_metric test/test_sample.py::test_custom_step_size test/test_sample.py::test_custom_seed test/test_sample.py::test_adapt_schedule test/test_sample.py::test_save_csv test/test_sample.py::test_diagnose_divergences test/test_sample.py::test_sample_sporadic_exception test/test_sample.py::test_save_warmup test/test_sample.py::test_save_warmup_thin test/test_sample.py::test_dont_save_warmup test/test_sample.py::test_sampler_diags test/test_sample.py::test_variable_bern test/test_sample.py::test_variables_issue_361 test/test_sample.py::test_validate test/test_sample.py::test_validate_sample_sig_figs test/test_sample.py::test_validate_summary_sig_figs test/test_sample.py::test_save_latent_dynamics test/test_sample.py::test_save_profile test/test_sample.py::test_xarray_draws test/test_sample.py::test_no_xarray test/test_sample.py::test_single_row_csv test/test_sample.py::test_overlapping_names test/test_sample.py::test_complex_output test/test_sample.py::test_attrs test/test_sample.py::test_diagnostics test/test_sample.py::test_timeout test/test_sample.py::test_json_edges test/test_sample.py::test_json_junk_alongside_data test/test_sample.py::test_tuple_data_in test/test_sample.py::test_serialization test/test_utils.py::test_cmdstan_version test/test_utils.py::test_check_sampler_csv_thin test/test_utils.py::test_default_path test/test_utils.py::test_set_path test/test_utils.py::test_validate_path test/test_variational.py::test_instantiate test/test_variational.py::test_variables test/test_variational.py::test_variables_3d test/test_variational.py::test_variational_good test/test_variational.py::test_variational_eta_small test/test_variational.py::test_variational_eta_fail test/test_variational.py::test_single_row_csv test/test_variational.py::test_show_console test/test_variational.py::test_exe_only test/test_variational.py::test_complex_output test/test_variational.py::test_attrs test/test_variational.py::test_timeout test/test_variational.py::test_serialization test/test_model.py::test_model_syntax_error test/test_model.py::test_model_format_options test/test_model.py::test_format_old_version test/test_pathfinder.py::test_pathfinder_no_psis test/test_pathfinder.py::test_pathfinder_no_lp_calc test/test_sample.py::test_warmup_no_adapt ) python_install_all() { use doc && HTML_DOCS=( docs/. ) distutils-r1_python_install_all } python_test() { mkdir -p "${HOME}"/.cmdstan || die epytest }