Prism

Latest version: v1.3.1.1

Safety actively analyzes 628969 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

1.2.0.1

*This is a minor bugfix release for v1.2.0 of the PRISM package.*

**Bugfixes:**
- Fixed a bug where the API reference action in *Crystal* was not pointing to the proper webpage.

1.2.0

*This is the v1.2.0 release of the PRISM package.*

**New additions:**
- The PolyLink class was added to *PRISM*'s standard ModelLink subclasses;
- Introduced the new 'req_n_walkers' input argument for the `get_walkers()` function, which can be used to generate a specific number of required walkers using a custom Metropolis-Hastings algorithm;
- Added the `get_bibtex()` function, which prints the BibTeX entry for citing the *PRISM* paper;
- Added *Crystal*, *PRISM*'s Projection GUI;
*Crystal* can be used to more easily create; draw; compare; and analyze projection figures;
- It is now possible to use nested worker modes;
- It is now also possible to make calls to solely workers using the new `_make_call_workers()` method;
- Finally, one can now make calls using rank-specific attributes.

**Bugfixes:**
- Fixed a bug where if one tries to reconstruct the first iteration of the emulator using less data points than before, the emulator would not be reset properly;
- Fixed a bug where analyzing a finished iteration through `construct()` would not work properly in MPI;
- Fixed a bug where sometimes the `check_vals()` function would not raise a proper error.

**Changes/Optimizations:**
- Added several tests to various different functions/methods to make sure that the layouts of provided arguments are correct;
- *PRISM*'s colormaps have been ported to *e13Tools*;
- The 3D line-of-sight depth plots now use the 'freeze' colormap (new colormap in *e13Tools*);
- All projection hypercube tuples now also carry the iteration for which they were made;
- The default names of projection hypercubes have been changed slightly;
- Rewritten the worker mode of *PRISM* into the WorkerMode class;
- Removed all deprecated features from v1.1.

1.1.3

*This is the v1.1.3 release of the PRISM package.*

**New additions:**
- *PRISM* now has a [Gitter chat room](https://gitter.im/1313e/PRISM);
- Added a section on when (not) to use *PRISM*;
- The MCMC functions can now also take dicts as inputs;
- The Emulator class now has a new property called 'poly_terms', which is a user-convenience property that shows the 'poly_powers' and 'poly_coef' properties in a more readable way. It has no underlying counterpart;
- Added four Jupyter notebooks with tutorials on how to use *PRISM*. More will be coming soon.

**Bugfixes:**
- The requested *emul_i* is now properly used for calling `project()` in the `__call__()`/`run()`-method;
- The `get_walkers()`-function now returns a copy of `pipe.impl_sam` to avoid modifications to the internally stored values.

**Changes/Optimizations:**
- Made several modifications to the documentation to better clarify what model parameters and model data means;
- *PRISM* now uses the `threadpoolctl` package to control the number of OpenMP threads NumPy is allowed to use, depending on the current state of the pipeline;
- The calculations of all grid pixels in the projection figures is much more efficient now;
- The number of grid bins in the projection figures now depends more on the chosen DPI and figsize. This ensures that the time required to interpolate for the figures is minimized;
- The calculation of the inverse covariance matrix now uses the Moore-Penrose generalized inverse, which heavily reduces the floating point errors in some calculations;
- The Emulator 'method' is now always saved in lowercase, therefore removing the need to transform it into lowercase every time it is checked;
- The `evaluate()`-method now prints a requested 1D sample as a dict instead of a NumPy array;
- The `_check_sam_set()`-method of the ModelLink class is now more efficient and prints more helpful error messages;
- Renamed the `get_lnpost_fn()`-function to `get_hybrid_lnpost_fn()`, and made it more efficient in terms of memory consumption (the old function name will be removed completely in v1.2.0);
- The *unit_space* input argument for the MCMC functions is now by default set to *False*;
- Overhauled a large part of the online documentation on *hybrid sampling* to be more clear about how exactly it works.

1.1.2

*This is the v1.1.2 release of the PRISM package.*

**New additions:**
- Added documentation on the backup system to the online docs (which should have been included in the previous release);
- Added the PRISM logo to the repo and docs (huge thanks to James Josephides for that);
- Added BibTeX entry for the ApJS paper;
- Added badge for JOSS paper;
- Added the utility `convert_data()` and `convert_parameters()` functions to the `modellink.utils` module, which can be used to validate the input parameters given to a ModelLink subclass;
- Added many safety checks to the ModelLink class (like attempting to set its properties outside of the `__init__()` method);
- Added property setters for all relevant properties of the Pipeline and Projection classes;
- Added the possibility to provide a dict with PRISM parameters to the Pipeline instead of only a file;
- Renamed `prism_file` to `prism_par` to account for this change;
- Added a warning to the `analyze` method to tell the user when the next iteration cannot be constructed (and why);
- Added the possibility to plot all implausibility cut-off lines (instead of just the first) in a 2D projection figure;
- Added the possibility to request a specific parameter set to be used as the mock data for an emulator;
- Added the possibility to return dicts in the `call_model` and `get_md_var` methods in a ModelLink subclass in addition to NumPy arrays. The Pipeline class will convert received dicts back to a NumPy array when needed.

**Bugfixes:**
- `ModelLink.MPI_call` now returns the proper value;
- Now only logging messages produced by PRISM are written to the logging-file of an emulator. All other logging messages use the global settings (which by default is printing to console);
- Having less than `n_cross_val` plausible samples remaining no longer crashes the pipeline (instead, a warning is raised);
- Calling `details` when no emulator exists no longer logs an error that was caught.

**Changes/optimizations:**
- Moved all MPI related definitions to their own separate package ([mpi4pyd](https://github.com/1313e/mpi4pyd));
- Changed the terminology list in the online docs to be a glossary, making its entries more easily searchable;
- New working directories can now be requested by providing a `True` to the Pipeline class instead of an integer;
- The backup system now works more reliably by using random suffixes to avoid overriding files and it also saves the current PRISM version;
- Moved the Emulator class to its own `emulator` submodule, to allow for other emulators to be added later (if required);
- 2D and 3D projections now use the same axis labels;
- The calculations of the covariances and model discrepancy variances have been improved in several places;
- The versioning of the package no longer requires the use of the `exec` function;
- Optimized the regression process to solely contain polynomial terms in its final function form that have significant polynomial coefficients. This way, less terms need to be calculated for every evaluation;
- The minimum implausibility colorbar in a 3D projection now shows that it extends beyond the first cut-off value.

1.1.1

This is the v1.1.1 release of the PRISM package.
New additions include:
- A new (experimental) backup system to be used in the `ModelLink.call_model()`-method, where the user can make backups of the progress made in this method in case anything goes wrong, with the `_make_backup()`-method.
This backup can then be read back out again with the `_read_backup()`-method;
- The data_idx parts are now first sorted on their index before being put together.
This avoids putting them in the incorrect order if a data_idx consists out of more than 10 parts;
- The `test_subclass()` function now additionally checks if the `call_model()` and `get_md_var()`-methods take the correct input arguments and takes no other non-optional arguments;
- The PRISM logging system has been changed such that only PRISM processes will log to the corresponding logging file.
All other logging messages will be handled as default (either set by the user or as root);
- Added more information about running pytests on PRISM;
- Made many Python3-only improvements to the code, including keyword-only arguments and iterable parsing;
- PRISM now automatically emits a warning when the user tries to load an emulator made with v1.0.x, as compatibility with such a version is not guaranteed;
- The projections now use normalized grids for their interpolations.
This speeds up the interpolation processes significantly, while also avoiding any interpolation errors caused by big difference in parameter ranges;
- The default value of the 'criterion' parameter is now set to None.

1.0.0

First official release of the PRISM package.
This is also the only version that will support Python 2.7.
Starting with v1.1.0, PRISM will no longer support Python 2.7.

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.