Pybnesian

Latest version: v0.5.0

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

Scan your dependencies

Page 1 of 3

0.5.0

- Changed the build process to statically link Apache Arrow. With this change and using the
[PyCapsule interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html), PyBNesian can interoperate
with different versions of `pyarrow>=14.0.0`. You can now upgrade pyarrow (`pip install --upgrade pyarrow`)
without breaking PyBNesian. The dependencies are also managed by [vcpkg](https://vcpkg.io), so the
build process is simpler and orchestrated by scikit-build-core and a CMakeLists.txt.

- Some tests failed because `pandas` and `scipy` were updated. These issues have been fixed.

- A bug in the `DiscreteFactor.sample()` function has been fixed. The previous implementation sampled equally from the first and last category of the `DiscreteFactor`.

0.4.3

- Fixed a bug in `DiscreteFactor` and others hybrid factors, such as `CLinearGaussianCPD` and `HCKDE`, where categorical data would not be correctly validated. This could lead to erroneous results or undefined behavior (often leading to segmentation fault). Thanks to Carlos Li for reporting this bug.

- Support for Python 3.10 and `pyarrow>=9.0` has been added. Support for Python 3.6 has been deprecated, as `pyarrow` no longer supports it.

- manylinux2014 wheels are now used instead of manylinux2010, since `pyarrow` no longer provides manylinux2010 wheels.

0.4.2

- Fixed important bug in OpenCL for NVIDIA GPUs, as they define small OpenCL constant memory. See [https://stackoverflow.com/questions/63080816/opencl-small-constant-memory-size-on-nvidia-gpu](https://stackoverflow.com/questions/63080816/opencl-small-constant-memory-size-on-nvidia-gpu).

0.4.1

- Added support for Apache Arrow 7.0.0.

0.4.0

- Added method `ConditionalBayesianNetworkBase.interface_arcs()`.
- `GreedyHillClimbing` and `MMHC` now accepts a blacklist of `FactorType`.
- `BayesianNetworkType.data_default_node_type()` now returns a list of `FactorType` indicating the priority of each `FactorType` for each data type.
- `BayesianNetworkBase.set_unknown_node_types()` now accepts an argument of `FactorType` blacklist.
- Change `HeterogeneousBN` constructor and `HeterogeneousBNType.default_node_types()` to accept lists of default
`FactorType`.
- Adds constructors for `HeterogeneousBN` and `CLGNetwork` that can set the `FactorType` for each node.

- Bug Fixes:

- An overflow error in `ChiSquare` hypothesis test was raised when the statistic were close to 0.
- Arc blacklists/whitelists with repeated arcs were not correctly processed.
- Fixed an error in the use of the patience parameter. Previously, the algorithm was executed as with a `patience - 1` value.
- Improve the validation of objects returned from Python class extensions, so it errors when the extensions are not correctly implemented.
- Fixed many serialization bugs. In particular, there were multiple bugs related with the serialization of models with Python extensions.
- Included a fix for the Windows build (by setting a correct `__cplusplus` value).
- Fixed a bug in `LinearGaussianCPD.fit()` with 2 parents. In some cases, it was detecting a linear dependence between the parents that did not exist.
- Fixes a bug which causes that the Python-class extension functionality is removed.
Related to: [https://github.com/pybind/pybind11/issues/1333](https://github.com/pybind/pybind11/issues/1333).

0.3.4

- Improvements on the code that checks that a matrix is positive definite.
- A bug affecting the learning of conditional Bayesian networks with `MMHC` has been fixed. This bug also affected `DMMHC`.
- Fixed a bug that affected the type of the parameter `bn_type` of `MMHC.estimate()`, `MMHC.estimate_conditional()` and `DMMHC.estimate()`.

Page 1 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.