# Version History¶

## 1.0.0-dev5 (in development)¶

- Add
`groups()`

to`Effects`

that tabulates key measures for all, vital few and useful many value groups. - Add
`groups()`

,`triage()`

and`combinations()`

to`REffort`

. - Switch
`entropy()`

to`numpy.log2()`

(transfer array to C layer instead of each single value alone): Cuts execution time for entropy(flight_delays()) by 75%, Effects(flight_delays()) by half. - Add
`the_rule()`

to`effectus.Effects`

(rule 50/5 and variants which is inverse relationship [but not reciprocal value!] that`__repr__()`

returns). - Add
`effectus.intersections`

to intersect result and effort values of keys. - Change documentation to reflect Effects class.
- Transfer
`effectus.pareto`

module to cython code:`%timeit entropy(list(FLIGHT_DELAYS))`

measures only 38 ms instead of 296 ms (-87%). - [Major] Fix
`attain_effects()`

to return only an effect that is greater than specified effect value. - Refactor
`make_relations()`

to incorporate`get_majors()`

. Add`match_relations()`

that eventually will supersede`get_relevant()`

.`complete()`

that will supersede`make_summary()`

is 7.5x faster for 315 values (-87%), 10x for 887 values (-91%), 32x for 9,605 values (-97%), 21x for 1,596,267 values (-95%). - Refactor
`attain_causes()`

and`attain_effects()`

by using`find_nearest_bisect()`

. - Refactor
`find_nearest()`

into`find_nearest_bisect()`

:

`%timeit Effects(BELLS)`

in IPython measures 30% less time.- greater_equal argument allows to consider greater or equal values (for
`attain_effects()`

et al.).

- Refactor
`separate_causes()`

and`separate_effects()`

by starting search with separating ordinal instead of filtering the whole list. - Add
`retrieve_causes()`

and`retrieve_effects()`

to get the values directly. - Add
`interval_causes()`

and`interval_effects()`

functions to Effects class. Both allow to conveniently determine effects and causes for an interval of causes and effects respectively. - Add partial parameter to:
- Add
`all`

,`few`

,`most`

providing through`Stats`

`mean()`

and`pstdev()`

. - Add
`intervals`

module with functions`keys_in_effects_interval()`

and`keys_in_causes_interval()`

. to retrieve the keys their attribute falls into a specific effects interval. This allows`set()`

operations like difference and intersection for sets of keys of different intervals.`effects_intersections()`

intersects the same keys for two attributes for the same interval. - Fix
`pick_best()`

: Previously it would choose a relation if its power exceeded that of the preceding, which is incorrect. Now it only refers to the ruling power. - Fix
`make_relations_new()`

: Previously it returned a cause by one too high due to ordinal+1 in a`enumerate()`

loop that already set the start to 1. This was only visible for low number of total causes, which is the case for values of short lengths. - Change variability attribute to percentage points.
- Example data: Add domestic letters sent and received for 135 countries, Swiss railway passenger frequency of 724 stations, capacity of 7,610 US power stations, length and surface of 510 bridges in Portland, mass and radii of 630 exoplanets (dict!), fares of 891 titanic passengers, volumes of 536,752 German trees, volumes and surfaces of 519 lakes and reservoirs, surfaces of 248,613 lakes, reservois and wetlands.
- Example data: Change data type from constant tuple to function returning list to make it testable.
- Tutorial: Devise five exercises with assignments.
- Tests: Add for Excel, reaching 100% test coverage.

## 1.0.0-dev4 — 2017-02-01¶

- Introduce
`Effects`

class as umbrella replacing core functions. - Example data: Add global cheese production.
- Introduce
`__repr__()`

method to replace former`make_summary()`

function. - Change
`make_summary()`

,`format_summary()`

(necessarily`cli`

functions) to expect relations as input rather than sorted_values. This is as :class`Effects` class stores the relations attribute to prevent unnecessary recalculation.

## 1.0.0-dev3 — 2017-01-31¶

- Add exception
`StringFound`

to be raised if Excel selection contains a string. - Example data: Add countries area, population and GDP, oil reserves, consumption, CO2 emissions, Euro coins and bank notes data.
- Add
`skip_blanks()`

to filter out empty cells from Excel selection. - Refactor
`frac_gcd()`

and`get_gcd()`

into`decimal_gcd()`

and`greatest_gcd()`

. - Isolate
`get_majors()`

from`get_relevant()`

.

## 1.0.0-dev2 — 2016-12-24¶

- Complete redesign.
- Include real-life examples.
- Add
`separator`

function.