aGrUM/pyAgrum 2.0.0 released
Posted on Fri 28 March 2025 in News
ANNOUNCE: aGrUM 2.0.0
aGrUM/pyAgrum 2.0.0 is out.
This major update brings several important changes that align with our goals of improving usability, compliance, and consistency. Below are the three main motivations behind this significant upgrade:
1. License Change : MIT+LGPLV3
The first major change in version 2.0.0 is the update to our software license. This change ensures better alignment with modern open-source standards and provides clearer guidelines for usage, distribution, and modification (see here for details).
2. Package Name Update to Follow PEP8
To adhere to Python's PEP8 naming conventions, we have renamed the package from pyAgrum
to pyagrum
. We are aware that this change may cause some inconvenience, but it is necessary to ensure consistency with Python's style guidelines and improve the overall user experience. The transition to version 2.0.0 is the right time to implement this change, as it allows us to make a clean break and set a solid foundation for future development.
3. Class Renaming: Potential to Tensor
In an effort to make the library more intuitive and reflective of its functionality, we have renamed the Potential
class to Tensor
. This change better represents the mathematical nature of the class and aligns with common terminology in the field (see here for details).
4. Modular Code Structure
We have reworked the internal structure of the code to make it more modular. This redesign allows for easier extensibility and maintenance in the long term. By breaking down the code into more independent and reusable components, we aim to facilitate future enhancements and possible contributions from the community.
Detailed Changelog
- aGrUM
- Split library into
BASE
/BN
/CN
/FMDP
/ID
/MRF
sub-libraries . - Enhanced swig files (thanks to Julien Schueller!).
- Improved compilation time for the whole library.
- Removed obsolete deprecated, experimental code.
- Moved
gum::Potential
togum::Tensor
. - used functions of
std::filesystem
. - Removed uses of
mkstemp
/opendir
/dup
/etc. and inclusions ofdirent.h
andunistd.h
. -
Minor typos in aGrUM's testsuite.
-
pyAgrum
- Changed name of pyAgrum's package: from
pyAgrum
topyagrum
. - Split module into
pyagrum.base
/bn
/cn
/id
/mrf
sub-modules. - Alignd wheel naming with binary distribution format.
- Renamed
pyagrum.lib.Discretizer
topyagrum.lib.DiscreteTypeProcessor
. - Fixed a bug for
pyagrum.DiscreteTypeProcessor
with a boolean variable in the database (thanks to Yann Le Biannic). - Fixed a bug then calling
pyagrum.BNLearner.learnEssentialGraph
with a score-based algorithm (thanks to Yann Le Biannic). - pyAgrum-izing types in
swig
-generatedcpp
files. - Removed obsolete deprecated, experimental codes.
- Moved
pyagrum.Potential
topyagrum.Tensor
. - Added glossary in readthedoc site.
- Improved notebooks, docstrings and sphinx documentations.
- Stable abi for wheel generation. Added possibility to turn off stable abi use.
- Update CIs for apple silicon.
- Removed old deprecation.
- Added new experimental pyAgrum's model : Mixture of Bayesian Networks (thanks to Rodrique Tavernier).
- Licences are now included in the wheels.