Version History

1.0.0-dev5 (in development)

  • Add abc(): Return bands A, B, C with cause-effect mappings (employs nested call of Effects).
  • 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.