What’s New#

For full changes, see the Releases page on GitHub.

CmdStanPy 1.1.0#

  • New functionality

    • CmdStanModel.generate_quantities() can now accept samples from optimization and variational inference. The argument mcmc_sample has been renamed previous_fit to reflect this; the former name is still accepted but deprecated.

    • CmdStanModel.log_prob() is able to return the log probability and its gradient with respect to a set of parameters. Note that this is not an efficient way of calculating this in general and should be reserved for debugging and model development.

  • Other changes

    • Improved some of the type hints in the package.

    • Ensure draws are serialized if a fit object is pickled.

    • src_info() now raises an error if the command fails, rather than returning {}.

    • CmdStanPy has transitioned all unit tests from the unittest library to use pytest.

CmdStanPy 1.0.8#

  • install_cmdstan now downloads the correct CmdStan for non-x86 Linux machines.

  • Improved reporting of errors during compile().

  • Fixed some edge cases in mixing arguments of the optimize() function.

  • Fixed how NaN and infinite numbers were serialized to JSON.

  • Removed dependency on ujson. For now, all JSON serialization is done with the Python standard library.

  • Added a timeout parameter to all model methods which can be used to terminate the CmdStan process after the specified time.

  • A model will now properly recompile if one of the #include-d files changed since it was last built.

CmdStanPy 1.0.7#

  • Fixed an issue where complex number containers in Stan program outputs were not being read in properly by CmdStanPy. The output would have the correct shape, but the values would be mixed up.

CmdStanPy 1.0.6#

  • Fixed a build error in the documentation

  • Improved messages when model fails to compile due to C++ errors.

CmdStanPy 1.0.5#

CmdStanPy 1.0.4#

CmdStanPy 1.0.3#

  • Fix an issue where Stan fit objects were not pickle-able when they previously were.

    Warning

    We still do not recommend pickling cmdstanpy objects, but rather using functions save_csvfiles() and from_csv().

CmdStanPy 1.0.2#

  • CmdStanPy can now format (and canonicalize) your Stan files with CmdStanModel.format()

  • Stan variables can now be accessed from fit objects using the . syntax when no naming conflicts occur. For example, previous code fit.stan_variable("my_cool_variable") can now be written fit.my_cool_variable

  • CmdStanPy is more robust to running in threaded environments and tries harder to not overwrite its own output files

  • The install_cmdstan script can now be run in interactive mode using --interactive/-i

  • CmdStanPy now computes some diagnostics after running HMC and will warn you about post-warmup divergences and treedepth exceptions

  • Runtime exceptions in the generated quantities block should be recognized better now.

  • The default level of precision used by CmdStanMCMC.summary() is now 6, as it is when stansummary is used from the command line.

  • Various documentation improvements

CmdStanPy 1.0.1#

  • Support new optimizations in CmdStan 2.29

  • Support complex numbers as both inputs and outputs of Stan programs

  • Sped up assembling output by only reading draws at most once

  • Fixed an issue where a command failing could change your working directory

  • Improve error messages in some cases

  • CmdStanPy no longer changes the global root logging level

Note

The minimum supported version for CmdStanPy is now Python 3.7.

CmdStanPy 1.0.0#

  • Initial release