Poisson-approval

Latest version: v0.31.0

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

Scan your dependencies

Page 4 of 7

0.17.0

----------------------------------------

* ``Profile`` and its subclasses:

* The method ``analyzed_strategies`` now inputs an iterator of strategies: it perform an analysis on all the
strategies given by this iterator.
* Add pre-defined iterators of strategies:

* ``strategies_ordinal`` is defined for any profile.
* ``strategies_pure`` is defined for any discrete profile, such as ``ProfileDiscrete`` or ``ProfileTwelve``.
* ``strategies_group`` is defined for any profile where a reasonable notion of "group" is defined, such as
``ProfileNoisyDiscrete`` or ``ProfileHistogram``.

* Add the attributes ``analyzed_strategies_ordinal``, ``analyzed_strategies_pure``, ``analyzed_strategies_group``.
Not only do they provide shortcuts combining ``analyzed_strategies`` with the relevant iterator, but they also have
the added value of being cached properties: if the user accesses the same attribute several times, it is only
computed once.

* Remove the attribute ``winners_at_equilibrium``. Instead, the corresponding attribute is added to the class
``AnalyzedStrategies``. This gives more flexibility because it is defined for any ``AnalyzedStrategies`` object.

* The consequences on ternary plots are temporary and are likely to change in the near future, with a new release
focusing on improved ternary plots.

* ``ternary_plot_winners_at_equilibrium`` becomes ``ternary_plot_winners_at_equilibrium_ordinal``.
* ``ternary_plot_n_bloc_equilibria`` becomes ``ternary_plot_n_equilibria_ordinal``.

* ``Strategy.deepcopy_with_attached_profile`` now also copies the voting rule of the given profile.

-------------------------------------------------------------------------

0.16.1

-------------------------------------------------------------------------

* ``ProfileNoisyDiscrete``: add a parameter ``noise`` that enables not to mention explicitly the value of the noise for
each group of voters. This is especially convenient in the quite common case where all groups of voters have the
same noise.

-----------------------------------------

0.16.0

-----------------------------------------

* Add ``ProfileNoisyDiscrete``: a profile with a discrete distribution of voters, with noise.

--------------------------------

0.15.0

--------------------------------

* Implement weak orders:

* ``Profile`` now has attributes ``d_weak_order_share``, ``support_in_weak_orders``, ``contains_weak_orders``,
``contains_rankings``, ``d_ballot_weak_voters_sincere``, ``d_ballot_weak_voters_fanatic``.
* Subclasses of Profile have a parameter ``d_weak_order_share``.
* Remove methods ``ProfileOrdinal.support`` and ``ProfileOrdinal.is_generic``: with the presence of weak orders,
their names had become misleading, whereas ``support_in_rankings`` and ``is_generic_in_ranking`` is non-ambiguous.
* ``TernaryAxesSubplotPoisson.annotate_condorcet`` now also works with weak orders. However, it may not work on
all distributions because it relies on the external package `shapely`. If there are only rankings, it should still
work anyway.
* Add utilities ``is_weak_order``, ``is_lover``, ``is_hater``, ``sort_weak_order``.

* Add shortcut functions for some common ternary plots:

* ``ternary_plot_n_bloc_equilibria``: number of bloc equilibria.
* ``ternary_plot_winners_at_equilibrium``: winners at equilibrium.
* ``ternary_plot_winning_frequencies``: winning frequencies in fictitious play.

* Methods ``ProfileCardinal.iterated_voting`` and ``ProfileCardinal.fictitious_play`` have a new parameter
``winning_frequency_update_ratio``, indicating how the winning frequencies are computed in case of non-convergence.
Note however that in case of convergence to a periodical orbit (for iterated voting), it remains the arithmetic
average anyway.

* Add utility ``my_division``: division of two numbers, trying to be exact if it is reasonable.

---------------------------------------------------------------------------------

0.14.0

---------------------------------------------------------------------------------

* Instead of a parameter ``strategy_ini``, the methods ``ProfileCardinal.iterated_voting`` and
``ProfileCardinal.fictitious_play`` now have a parameter ``init`` that can be either a strategy (like before), or a
tau-vector, or a string ``'sincere'`` or ``'fanatic'``.

----------------------------------

0.13.0

----------------------------------

* Draw plots on the simplex where points have 3 coordinates summing to 1. Cf. the corresponding tutorial.

* Intensity heat maps.
* Candidate heat maps.
* Annotate the Condorcet regions.

* Add ``Profile.winners_at_equilibrium``: for the classes of profile that have a method ``analyzed_strategies``,
give the set of winners at equilibrium.

-----------------------------------------------------------------

Page 4 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.