0.9.0
wmayner
released this
05 Dec 00:24
·
1847 commits
to feature/iit-4.0
since this release
API changes
- Many functions have been refactored to different modules; see the "Refactor" section for details.
compute.possible_complexes
no longer includes the empty subsystem.- Made
is_cut
a property. - Renamed
macro.list_all_partitions
andmacro.list_all_groupings
toall_partitions
andall_groupings
. Both are now generators and return nested tuples instead of lists. - Moved
macro.make_mapping
toCoarseGrain.make_mapping
. - Moved
macro.make_macro_tpm
toCoarseGrain.macro_tpm
. - Added blackbox functionality to
macro.emergence
. Blackboxing and coarse- graining are now parametrized with theblackbox
andcoarse_grain
arguments. - Removed
utils.submatrix
. - Made
Network.tpm
andNetwork.cm
immutable properties. - Removed the
purview
argument fromSubsystem.expand_repertoire
. - Moved
validate.StateUnreachableError
andmacro.ConditionallyDependentError
to theexceptions
module. - Removed perturbation vector support.
- Changed
tpm.marginalize_out
to take a list of indices. - Fixed
macro.effective_info
to use the algorithm from the macro-micro paper. - Replace
constants.DIRECTIONS
,constants.PAST
, andconstants.FUTURE
with a properEnum
class:constants.Direction
. Past and future are now represented byconstants.Direction.PAST
andconstants.Direction.FUTURE
. - Simplifed logging config to use
config.LOG_STDOUT_LEVEL
,config.LOG_FILE_LEVEL
andconfig.LOG_FILE
. - Removed the
location
property ofConcept
.
API Additions
- Added
subsystem.evaluate_partition
. This returns the φ for a particular partition. - Added
config.MEASURE
to choose between EMD, KLD, or L1 for distance computations. - Added
macro.MacroSubsystem
. This subclass ofSubsystem
is used to performs macro computations. - Added
macro.CoarseGrain
to represent coarse-grainings of a system. - Added
macro.Blackbox
to represent system blackboxes. - Added
validate.blackbox
andvalidate.coarse_grain
. - Added
macro.all_coarse_grains
andmacro.all_blackboxes
generators. - Added
Subsystem.cut_indices
property. - Added
Subsystem.cm
connectivity matrix alias. - Added
utils.all_states
, a generator over all states of ann
-element system. - Added
tpm.is_state_by_state
for testing whether a TPM is in state-by-state format. Network
now takes an optionalnode_labels
argument, allowing nodes to be referenced by a canonical name other than their indices. The nodes of aSubsystem
can now be specified by either their index or their label.- Added
models.normalize_constellation
for deterministically ordering a constellation. - Added a
Makefile
. - Added an
exceptions
module. - Added
distribution.purview
for computing the purview of a repertoire. - Added
distribution.repertoire_shape
. - Added
config.PARTITION_TYPE
to control the ways in which φ-partitions are generated. - Added more functions to the
convert
module:holi2loli
andloli2holi
convert decimal indices between HOLI and LOLI formats.holi2loli_state_by_state
andloli2holi_state_by_state
convert between HOLI and LOLI formats for state-by-state TPMs.- Added short aliases for some functions:
h2l
isholi2loli
l2h
isloli2holi
l2s
isloli_index2state
h2s
isholi_index2state
s2h
isstate2loli_index
s2l
isstate2holi_index
h2l_sbs
isholi2loli_state_by_state
l2h_sbs
isloli2holi_state_by_state
sbn2sbs
isstate_by_node2state_by_state
sbs2sbn
isstate_by_state2state_by_node
- Added the
Constellation.mechanisms
,Constellation.labeled_mechanisms
, andConstellation.phis
properties. - Add
BigMip.print
method with optionalconstellations
argument that allows omitting the constellations.
Refactor
- Refactored the
utils
module into theconnectivity
,distance
,distribution
,partition
,timescale
, andtpm
modules. - Existing macro coarse-grain logic to use
MacroSubsystem
andCoarseGrain
. - Improved string representations of PyPhi objects.
- Refactored JSON support. The
jsonify
module now dumps PyPhi models to a a format which can be loaded to reproduce the full object graph of PyPhi objects. This causes backwards incompatible changes to the JSON format of some model representations. - Refactored
pyphi.config
to be an object. Added validation and callbacks for config options.
Optimizations
- Added an analytic solution for the EMD computation between effect repertoires.
- Improved the time complexity of
directed_bipartition_of_one
from exponential to linear.
Documentation
- Updated documentation and examples to reflect changes made to the
macro
API and usage. - Added documentation pages for new modules.