11Changelog
22=========
33
4+ 0.8.0
5+ ------------------
6+ _ 2016-02-06_
7+
8+ ### API changes
9+ - Mechanisms and purviews are now passed to all functions and methods in node
10+ index form (e.g. ` (0, 1, 3) ` ). Previously, many functions took these
11+ arguments as ` Node ` objects. Since nodes belong to a specific ` Subsystem ` it
12+ was possible to pass nodes from one subsystem to another subsystem's methods,
13+ leading to incorrect results.
14+ - ` constellation_distance ` no longer takes a ` subsystem ` argument because
15+ concepts in a constellation already reference their subsystems.
16+ - Moved ` utils.cut_mechanism_indices ` and ` utils.mechanism_split_by_cut ` to
17+ to ` Cut.all_cut_mechanisms ` and ` Cut.splits_mechanism ` , respectively;
18+ moved ` utils.cut_mice ` to ` Mice.damaged_by_cut ` .
19+ - ` Concept.__eq__ ` : when comparing concepts for equality, we no longer directly
20+ check equality of their subsystems. Concept equality is now defined as
21+ follows:
22+ - Same φ
23+ - Same mechanism node indices cause/effect purview node indices
24+ - Same mechanism state
25+ - Same cause/effect repertoires
26+ - Same networks
27+ This allows two concepts to be equal when _ e.g._ the only difference between
28+ them is that one's subsystem is a superset of the other's subsystem.
29+ - ` Concept.__hash__ ` : the above notion of concept equality is also implemented
30+ for concept hashing, so two concepts that differ only in that way will have
31+ the same hash value.
32+ - Disabled concept caching; removed the ` config.CACHE_CONCEPTS ` option.
33+
34+ ### API Additions
35+ - Added ` config.READABLE_REPRS ` to control whether ` __reprs__ ` of PyPhi models
36+ default to using pretty string formatting.
37+ - Added a ` Constellation ` object.
38+ - Added ` utils.submatrix ` and ` utils.relevant_connections ` functions.
39+ - Added the ` macro.effective_info ` function.
40+ - Added the ` utils.state_of ` function.
41+ - Added the ` Subsystem.proper_state ` attribute. This is the state of the
42+ subsystem's nodes, rather than the entire network state.
43+ - Added an optional Redis-backed cache for Mice objects. This is enabled with
44+ ` config.REDIS_CACHE ` and configured with ` config.REDIS_CONFIG ` .
45+ - Enabled parallel concept evaluation with ` config.PARALLEL_CONCEPT_EVALUATION ` .
46+
47+ ### Fixes
48+ - ` Concept.eq_repertoires ` no longer fails when the concept has no cause or
49+ effect.
50+ - Fixed the ` Subsystem.proper_state ` attribute.
51+
52+ ### Refactor
53+ - Subsystem Mice and cause/effect repertoire caches; Network purview caches.
54+ Cache logic is now handled by decorators and custom cache objects.
55+ - Block reducibility tests and Mice connection computations.
56+ - Rich object comparisons on phi-objects.
57+
58+ ### Documentation
59+ - Updated documentation and examples to reflect node-to-index conversion.
60+
61+
62+ 0.7.5
63+ ------------------
64+ _ 2015-11-02_
65+
66+ ### API changes
67+ - Subsystem states are now validated rather than network states. Previously,
68+ network states were validated, but in some cases there can be a
69+ globally-impossible network state that is locally possible for a subsystem
70+ (or vice versa) when considering the subsystem's TPM, which is conditioned
71+ on the external nodes (i.e., background conditions). It is now impossible to
72+ create a subsystem in an impossible state (a ` StateUnreachableError ` is
73+ thrown), and accordingly no 𝚽 values are calculated for such subsystems; this
74+ may change results from older versions, since in some cases the calculated
75+ main complex was in fact in an impossible. This functionality is enabled by
76+ default but can be disabled via the ` VALIDATE_SUBSYSTEM_STATES ` option.
77+
78+
79+ 0.7.4
80+ ------------------
81+ _ 2015-10-12_
82+
83+ ### Fixes
84+ - Fixed a caching bug where the subsystem's state was not included in its hash
85+ value, leading to collisions.
86+
87+
88+ 0.7.3
89+ ------------------
90+ _ 2015-09-08_
91+
92+ ### API changes
93+ - Heavily refactored the ` pyphi.json ` module and renamed it to ` pyphi.jsonify ` .
94+
95+
96+ 0.7.2
97+ ------------------
98+ _ 2015-07-01_
99+
100+ ### API additions
101+ - Added ` convert.nodes2state ` function.
102+ - Added ` constrained_nodes ` keyword argument to ` validate.state_reachable ` .
103+
104+ ### API changes
105+ - Concept equality is now more permissive. For two concepts to be considered
106+ equal, they must only have the same φ, the same mechanism and purviews (in
107+ the same state), and the same repertoires.
108+
109+
110+ 0.7.1
111+ ------------------
112+ _ 2015-06-30_
113+
114+ ### API additions
115+ - Added ` purviews ` , ` past_purviews ` , ` future_purviews ` keyword arguments to
116+ various concept-calculating methods. With these, the purviews that are
117+ considered in the concept calculation can be restricted.
118+
119+ ### API changes
120+ - States are now associated with subsystems rather than networks. Functions in
121+ the ` compute ` module that operate on networks now also take a state.
122+
123+ ### Fixes
124+ - Fixed a bug in ` compute._constellation_distance_emd ` where partitioned
125+ concepts were unable to be moved to the null concept for the EMD calculation.
126+ In some cases, the partitioned system has * greater* ∑φ than the unpartitioned
127+ system; therefore it must be possible for the φ of partitioned-constellation
128+ concepts to be moved to the null concept, not just vice versa.
129+ - Fixed a bug in ` compute._constellation_distance_emd ` where it was possible to
130+ move concepts around within their own constellation; the distance matrix now
131+ disallows any such intraconstellation paths. This is important because in
132+ some cases paths from a concept in one constellation to a concept the other
133+ can actually be shorter if a detour is taken through a different concept in
134+ the same constellation.
135+ - Fixed a bug in ` validate.state_reachable ` where network states were
136+ incorrectly validated.
137+ - ` macro.emergence ` now always returns a macro-network, even when 𝚽 = 0.
138+ - Fixed a bug in ` repr(Network) ` where the perturbation vector and connectivity
139+ matrix were switched.
140+
141+ ### Documentation
142+ - Added example describing “magic cuts” that, counterintuitively, can create
143+ more concepts.
144+ - Updated existing documentation to the new subsystem-state association.
145+
4146
51470.7.0
6148------------------
@@ -9,7 +151,7 @@ _2015-05-08_
9151### API additions
10152- ` pyphi.macro ` provides several functions to analyze networks over different
11153 spatial scales.
12- - ` . convert.conditionally_independent(tpm)` checks if a TPM is conditionally
154+ - ` convert.conditionally_independent(tpm) ` checks if a TPM is conditionally
13155 independent.
14156
15157### API changes
0 commit comments