aGrUM/pyAgrum 0.21.0 released

Posted on sam. 24 juillet 2021 in News

ANNOUNCE: aGrUM 0.21.0 : last tag compatible with python 2

aGrUM/pyAgrum 0.21.0 is out.

Contrary to what was said in the 0.20.0 changelog, we decided to remove support for python 2.7 before the 1.0 release.

This tag (0.21.0) is the last version that supports python 2.7. We are already working and will deliver a 0.22.0 tag as soon as possible, which will be dedicated to this move and will then be the first tag without python 2.7 support.

The next tag (0.22.0) will be the (new) last minor version before the release of agrum/pyAgrum 1.0.0 (:fist: :smirk: ).

  • aGrUM

    • New type for discrete variable (gum::IntegerVariable) which represents a set of non-consecutive integers.
    • New syntax for gum::IntegerVariable in gum::*::fastPrototype : a{-3|0|3}.
    • Change in syntax for gum::MarkovNetwork::fastPrototype : the link are represented by -- instead of -.
    • New gum::BNLearner::state() which gives a view of the activated options in the learner (scores, priors, algorithms, constraints, etc.).
    • New gum::BNLearner::toString() which gives a string representation of gum::BNLearner::state().
    • Add a new CI for last gcc (g++11 for now).
    • Code optimizations for hash function for small-sized values.
    • Better hierarchy for exceptions.
    • MLEstimator should lead to an error when dividing by 0.
  • pyAgrum

    • New type for discrete variable (pyAgrum.IntegerVariable) which represents a set of non-consecutive integers.
    • New syntax for pyAgrum.IntegerVariable in pyAgrum.fast* : a{-3|0|3}.
    • Change in syntax for pyAgrum.fastMN : the links are represented by -- instead of -.
    • New pyAgrum.BNLearner.state() which gives a view of the activated options in the learner (scores, priors, algorithms, constraints, etc.).
    • New pyAgrum.BNLearner.__str__() which gives a string representation of gum::BNLearner::state().
    • Documentations and notebooks updated w.r.t. this new features.
    • Adding ShapValues for BN in pyAgrum.lib.explain (see notebook).
    • Adding pyAgrum.lib.explain.independenceListForPairs().
    • Other improvements in pyAgrum.lib.explain and the corresponding notebook and documentations.
    • Updating notebooks for classifiers.
    • Better hierarchy for exceptions.
    • Removing unnecessary and obsolete codes by deleting pyAgrum.lib._utils.
    • 'Terminology clash' between 'Laplace's adjustment' and 'Smoothing' : use more generic 'Smoothing' everywhere now.
    • MLEstimator should lead to an error when dividing by 0.