------------------
_2016-02-06_
API changes
- Mechanisms and purviews are now passed to all functions and methods in node
index form (e.g. `(0, 1, 3)`). Previously, many functions took these
arguments as `Node` objects. Since nodes belong to a specific `Subsystem` it
was possible to pass nodes from one subsystem to another subsystem's methods,
leading to incorrect results.
- `constellation_distance` no longer takes a `subsystem` argument because
concepts in a constellation already reference their subsystems.
- Moved `utils.cut_mechanism_indices` and `utils.mechanism_split_by_cut` to
to `Cut.all_cut_mechanisms` and `Cut.splits_mechanism`, respectively;
moved `utils.cut_mice` to `Mice.damaged_by_cut`.
- `Concept.__eq__`: when comparing concepts for equality, we no longer directly
check equality of their subsystems. Concept equality is now defined as
follows:
- Same φ
- Same mechanism node indices cause/effect purview node indices
- Same mechanism state
- Same cause/effect repertoires
- Same networks
This allows two concepts to be equal when _e.g._ the only difference between
them is that one's subsystem is a superset of the other's subsystem.
- `Concept.__hash__`: the above notion of concept equality is also implemented
for concept hashing, so two concepts that differ only in that way will have
the same hash value.
- Disabled concept caching; removed the `config.CACHE_CONCEPTS` option.
API Additions
- Added `config.REPR_VERBOSITY` to control whether `__reprs__` of PyPhi models
use pretty string formatting and control the verbosity of the output.
- Added a `Constellation` object.
- Added `utils.submatrix` and `utils.relevant_connections` functions.
- Added the `macro.effective_info` function.
- Added the `utils.state_of` function.
- Added the `Subsystem.proper_state` attribute. This is the state of the
subsystem's nodes, rather than the entire network state.
- Added an optional Redis-backed cache for Mice objects. This is enabled with
`config.REDIS_CACHE` and configured with `config.REDIS_CONFIG`.
- Enabled parallel concept evaluation with `config.PARALLEL_CONCEPT_EVALUATION`.
Fixes
- `Concept.eq_repertoires` no longer fails when the concept has no cause or
effect.
- Fixed the `Subsystem.proper_state` attribute.
Refactor
- Subsystem Mice and cause/effect repertoire caches; Network purview caches.
Cache logic is now handled by decorators and custom cache objects.
- Block reducibility tests and Mice connection computations.
- Rich object comparisons on phi-objects.
Documentation
- Updated documentation and examples to reflect node-to-index conversion.