Tags: wmayner/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 #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