Pyphi

Latest version: v1.2.0

Safety actively analyzes 621907 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.2.0

-----
_2019-06-21_

Fixes

- Fixed a bug introduced into `pyphi.utils.load_data()` by a breaking change
in recent versions of NumPy that caused an error on import.
- Fixed a bug where changing `config.PRECISION` dynamically did not change
`constants.EPSILON`, causing some comparisons that relied on
`constants.EPSILON` to not reflect the new precision.
- Changing `config.FS_CACHE_DIRECTORY` and `config.FS_CACHE_VERBOSITY` now
causes a new `joblib.Memory` cache to be created. Previously, changing these
options dynamically had no effect.
- Made test suite compatible with stricter usage of `pytest` fixtures
required by recent versions of `pytest`.

API additions

- Added `pyphi.tpm.reconstitute_tpm()`.

API changes

- Renamed `pyphi.partition.partition_registry` to
`pyphi.partition.partition_types`.
- Renamed `pyphi.distance.bld()` to `pyphi.distance.klm()`.
- Fixed the connectivity matrix of the `disjunction_conjunction_network()`.
- Removed `'expanded_*_reperotire'` attributes of JSON-serialized `Concept`s.

Config

- Added the `WELCOME_OFF` option to turn off the new welcome message.

Documentation

- Added documentation for the `partition_types` registry.
- Added documentation for the filesystem and database caches.

1.1.0

Not secure
-----
_2018-05-30_

Fixes

- Fixed a memory leaked when concepts returned by parallel CES computations
were returned with distinct subsystem objects. Now all objects in a CES share
the same subsystem reference.
- Fixed a race condition caused by newly introduced `tqdm` synchronization.
Removed the existing `ProgressBar` implementation and pinned `tqdm` to
version >= 4.20.0.
- Made model hashes deterministic (6b59061). This fixes an issue with the Redis
MICE cache in which cached values were not shared between processes and
program invokations.
- Fixed the connectivity matrix in `examples.disjunction_conjunction.network()`.

API additions

- Added a `NodeLabels` object for managing the labels of network elements. Most
models now carry a `NodeLabels` instance that is used for string formatting.
- Added the `cut_node_labels` property to `Subsystem` and `MacroSubsystem`.
- Added `utils.time_annotated` decorator to measure execution speed.

API changes

- Specifying the nodes of a `Subsystem` is now optional. If not provided, the
subsystem will cover the entire network.
- Removed the `labels2indices`, `indices2labels` and `parse_node_indices`
methods from `Network`, and the `indices2labels` method from `Subsystem`.
- Renamed `config.load_config_file` to `config.load_file`, and
`config.load_config_dict` to `config.load_dict`
- Removed backwards-compatible `Direction` import from `constants` module.
- Renamed `macro.coarse_grain` to `coarse_graining`.
- Exposed `coarse_grain`, `blackbox`, `time_scale`, `network_state` and
`micro_node_indices` as attributes of `MacroSubsystem`.

Config

- Removed the `LOG_CONFIG_ON_IMPORT` configuration option.

1.0.0

Not secure
------------
_2017-12-21_

API changes

Modules

- Renamed:
- `compute.big_phi` to `compute.network`
- `compute.concept` to `compute.subsystem`
- `models.big_phi` to `models.subsystem`
- `models.concept` to `models.mechanism`

Functions

- Renamed:
- `compute.main_complex()` to `compute.major_complex()`
- `compute.big_mip()` to `compute.sia()`
- `compute.big_phi()` to `compute.phi()`
- `compute.constellation()` to `compute.ces()`
- `compute.conceptual_information()` to `compute.conceptual_info()`
- `subsystem.core_cause()` to `subsystem.mic()`
- `subsystem.core_effect()` to `subsystem.mie()`
- `subsystem.mip_past()` to `subsystem.cause_mip()`
- `subsystem.phi_mip_past()` to `subsystem.phi_cause_mip()`
- `subsystem.phi_mip_future()` to `subsystem.phi_effect_mip()`
- `distance.small_phi_measure()` to `distance.repertoire_distance()`
- `distance.big_phi_measure()` to `distance.system_repertoire_distance()`
- For all functions in `convert`:
- `loli` to `le` (little-endian)
- `holi` to `be` (big-endian)
- Removed `compute.concept()`; use `Subsystem.concept()` instead.

Arguments

- Renamed `connectivity_matrix` keyword argument of `Network()` to `cm`

Objects

- Renamed `BigMip` to `SystemIrreducibilityAnalysis`
- Renamed the `unpartitioned_constellation` attribute to `ces`
- `sia` is used throughout for attributes, variables, and function names
instead of `big_mip`
- Renamed `Mip` to `RepertoireIrreducibilityAnalysis`
- Renamed the `unpartitioned_repertoire` attribute to `repertoire`
- `ria` is used throughout for attributes, variables, and function names
instead of `mip`
- Renamed `Constellation` to `CauseEffectStructure`
- `ces` is used throughout for attributes, variables, and function names
instead of `constellation`
- Renamed `Mice` to `MaximallyIrreducibleCauseOrEffect`
- `mic` or `mie` are used throughout for attributes, variables, and function
names instead of `mip`

- Similar changes were made to the `actual` and `models.actual_causation`
modules.

Configuration settings

- Changed configuration settings as necessary to use the new object names.

Constants

- Renamed `Direction.PAST` to `Direction.CAUSE`
- Renamed `Direction.FUTURE` to `Direction.EFFECT`

API additions

Configuration settings

- Added `CACHE_REPERTOIRES` to control whether cause/effect repertoires are
cached. Single-node cause/effect repertoires are always cached.
- Added `CLEAR_SUBSYSTEM_CACHES_AFTER_COMPUTING_SIA` to control whether
subsystem caches are cleared after calling `compute.sia()`.

Objects

- Added two new objects, `MaximallyIrreducibleCause` and
`MaximallyIrreducibleEffect`, that are subclasses of
`MaximallyIrreducibleCauseOrEffect` with a fixed direction.

Refactor

- Moved network-level functions in `compute.big_phi` to
`pyphi.compute.network`
- Moved subsystem-level functions in `compute.big_phi` and `compute.concept` to
`compute.subsystem`

Documentation

- Added a description of TPM representations.
- Improved the explanation of conditional independence and updated the example
to reflect that PyPhi now raises an error if a conditionally-dependent TPM is
provided.
- Added detailed installation instructions.
- Little-endian and big-endian replace LOLI and HOLI terminology
- Added documentation for the following modules:
- `distribution`
- `cache`
- `compute.parallel`
- `compute` top-level module
- `module` top-level module

0.9.1

Not secure
-----
_2017-12-21_

Fixes
- Refactored parallel processing support to fix an intermittent deadlock.

0.9.0

Not secure
-----
_2017-12-04_

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` and `macro.list_all_groupings` to
`all_partitions` and `all_groupings`. Both are now generators and return
nested tuples instead of lists.
- Moved `macro.make_mapping` to `CoarseGrain.make_mapping`.
- Moved `macro.make_macro_tpm` to `CoarseGrain.macro_tpm`.
- Added blackbox functionality to `macro.emergence`. Blackboxing and coarse-
graining are now parametrized with the `blackbox` and `coarse_grain`
arguments.
- Removed `utils.submatrix`.
- Made `Network.tpm` and `Network.cm` immutable properties.
- Removed the `purview` argument from `Subsystem.expand_repertoire`.
- Moved `validate.StateUnreachableError` and `macro.ConditionallyDependentError`
to the `exceptions` 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`, and `constants.FUTURE` with
a proper `Enum` class: `constants.Direction`. Past and future are now
represented by `constants.Direction.PAST` and `constants.Direction.FUTURE`.
- Simplifed logging config to use `config.LOG_STDOUT_LEVEL`,
`config.LOG_FILE_LEVEL` and `config.LOG_FILE`.
- Removed the `location` property of `Concept`.

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 of `Subsystem` 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` and `validate.coarse_grain`.
- Added `macro.all_coarse_grains` and `macro.all_blackboxes` generators.
- Added `Subsystem.cut_indices` property.
- Added `Subsystem.cm` connectivity matrix alias.
- Added `utils.all_states`, a generator over all states of an `n`-element
system.
- Added `tpm.is_state_by_state` for testing whether a TPM is in state-by-state
format.
- `Network` now takes an optional `node_labels` argument, allowing nodes to be
referenced by a canonical name other than their indices. The nodes of a
`Subsystem` 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` and `loli2holi` convert decimal indices between **HOLI** and
**LOLI** formats.
- `holi2loli_state_by_state` and `loli2holi_state_by_state` convert between
**HOLI** and **LOLI** formats for state-by-state TPMs.
- Added short aliases for some functions:
- `h2l` is `holi2loli`
- `l2h` is `loli2holi`
- `l2s` is `loli_index2state`
- `h2s` is `holi_index2state`
- `s2h` is `state2loli_index`
- `s2l` is `state2holi_index`
- `h2l_sbs` is `holi2loli_state_by_state`
- `l2h_sbs` is `loli2holi_state_by_state`
- `sbn2sbs` is `state_by_node2state_by_state`
- `sbs2sbn` is `state_by_state2state_by_node`
- Added the `Constellation.mechanisms`, `Constellation.labeled_mechanisms`, and
`Constellation.phis` properties.
- Add `BigMip.print` method with optional `constellations` argument that allows
omitting the constellations.

Refactor
- Refactored the `utils` module into the `connectivity`, `distance`,
`distribution`, `partition`, `timescale`, and `tpm` modules.
- Existing macro coarse-grain logic to use `MacroSubsystem` and `CoarseGrain`.
- 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.

0.8.1

Not secure
------------------
_2016-02-11_

Fixes
- Fixed a bug in `setup.py` that prevented installation.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.