Tags: rogerSuperBuilderAlpha/pyphi
Tags
Merge remote-tracking branch 'refs/remotes/origin/feature/iit-4.0' in… …to feature/iit-4.0
Merge remote-tracking branch 'refs/remotes/origin/feature/iit-4.0' in… …to feature/iit-4.0
relations: Consolidate phi schemes - Remove congruence ratio logic - Update AnalyticalRelations.sum_phi() for new phi schemes
Hotfix v1.2.1 Fix wmayner#38: configuration in subprocesses Configuration options that had been directly assigned within the interpreter were not respected in subprocesses spawned by `MapReduce` instances because of a change in the system call used by `multiprocessing`. In Python 3.8 and above, it's `spawn` instead of `fork`, so the subprocess no longer has access to the parent's memory, and a new configuration object is created. Now `MapReduce` will pass the parent's config object to the subprocess, which loads it. Note: - the issue still arises when parallelization is done by the user utside of PyPhi. - the issue only affects direct assignment to the config object; using the `pyphi_config.yml` file still works as intended in both cases.
Release v1.2.0 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.
Release v1.1.0 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. 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.
Release v1.0.0
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.CAUSE` 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
PreviousNext