Changelog

1.0.0

New/updated functionality:

  • eventseries.EventSeries: Overhauled and improved performance through vectorized ECA, enabled sparse ES with lags, enabled NaN handling, added progressbar, and thoroughly reviewed the tutorial (#257).

  • core.Network: Disambiguated method arguments (key –> link_attribute), which had been used interchangeably across edge-weighted measures, and added basic tests for respective methods (#256, #249).

Package:

  • Renamed the default Git branch from master to main (efba5ed).

  • Added a devenv configuration (1c94599, e6ee677).

  • CI: Removed pylint and flake8, in favour of ruff linter/formatter (#196, #261).

  • CI: Configured Travis CI to employ uv for packaging, instead of conda (#254, #259).

  • CI: Increased max. line length to 100 characters (f26a435).

Documentation:

0.9.0

New/updated functionality:

  • Enabled link/edge weighting in the calculation of shortest path betweenness centrality (i.e. Network.betweenness()), and corrected the implementation of Network.nsi_betweenness() to enable the calculation of n.s.i. shortest path betweenness centrality for directed networks (#142, #248, #250).

  • Extended the Cached mix-in to distinguish between class-level and instance-level method caches, yielding more fine-grained control over the finalisation of entries. (#252, #253).

Package:

  • Migrated setup.cfg to pyproject.toml, and established support for the uv package manager (1c94599).

  • Updated CI to observe end-of-life for Python 3.9 and to add support for Python 3.14 (#253).

  • Discontinued macOS support in CI (1a7973b).

  • Updated CI to simplify the configuration of process counts (d8bc4a0).

  • Updated dependencies and CI to h5netcdf>=1.8.1 (a88ab4d)

Documentation:

  • Minor fix in API documentation (#246).

Bug Fixes:

  • Updated download URL for test data (40cd2b9, #251).

  • Adapted Network to scipy>=1.19 API (031fdfe).

0.8.2

Documentation:

0.8.1

Package:

  • Established support for Python 3.13, faded out support for Python 3.8 (1bfd5d2).

Documentation:

Bug Fixes:

  • Fixed bugs in parallel code of Network class as well as utils.mpi example scripts (#241, #242).

0.8.0

Package:

  • Improved test coverage.

  • Improved style and linting by revising and reducing global message silencing (#224, #231, #233).

  • Ensured numpy=2.0 support (#234).

  • Removed experimental and untested code (#40, #239).

New/Updated functionality:

  • Extended Caching to RecurrenceNetwork and child classes as well as Surrogates. (#236).

  • Revised API of Surrogates to conform to OO structure assumed by Cached. (#236).

Documentation:

  • Removed malfunctioning links from Introduction (369b086).

  • Moved tutorial notebooks into docs, dropped nbsphinx-link dependency (c54102e).

  • Added EventSeriesClimateNetwork to API documentation (#232).

  • Removed outdated MathJax path for correct math display (0dd133c).

Bug fixes:

  • Fixed unnoticed bug in SpatialNetwork.{in|out}average_link_distance() (6b40587).

  • Substituted deprecated shorthand scipy.sparse.*_matrix.A for scipy>=1.14 compatibility (1d96e58).

  • Substituted variable name I in C code, which might interfere with C’s own macro for complex numbers (#225, #226).

  • Fixed setup of Travis-CI on Windows builds (#237).

0.7.0

Package:

  • Migrated to PEP 517/518 package format (a6c4c83).

  • Added full Windows support (#159, #160).

  • Reestablished CI on Linux (#191, #192) and added macOS and Windows (#214).

  • Improved test coverage.

  • Discontinued Python 3.7 support (4cf6969).

  • Replaced optional dependecy netcdf4 with h5netcdf (cd8ee00, #12, #210).

  • Replaced outdated progressbar with tqdm (#202).

Documentation:

New/Updated functionality:

  • Generalized spatial and interacting network analysis (#131): added SpatialNetwork class, added Watts-Strogatz model to Network, added new metrics to RecurrencePlot, CoupledClimateNetwork and InteractingNetworks.

  • Added EventSeries and EventSeriesClimateNetwork classes (#156).

  • Extended n.s.i. measures in Network with directed and weighted versions (#153).

  • Replaced MapPlots class with simplified MapPlot based on Cartopy (#174, #203).

Extensions:

Bug fixes:

  • Resolved indexing and typing problems in extensions (#126, #141, #145, #162, #163).

  • Overhauled the memoization/caching system (#124, #148, #219).

  • Shifted the histogram index in RecurrencePlot line distributions (#166, #209).

  • Resolved numerous other issues related to inheritance and method overloading, deprecated APIs, etc. For a full list, see the release milestone.

0.6.1

  • Fixed some bugs and compatibility issues.

  • Improved test framework.

  • Added pyunicorn description paper reference to all code files.

0.6.0

  • Migrated from Python 2.7 to Python 3.7.

  • Completed transition from Weave to Cython.

  • Added Event Coincidence Analysis.

0.5.2

  • Updated test suite and CI.

0.5.1

  • Added reference to pyunicorn description paper published in the journal Chaos.

0.5.0

  • Substantial update of CouplingAnalysis.

  • New methods in RecurrenceNetwork: transitivity_dim_single_scale, local_clustering_dim_single_scale.

  • Renamed time-directed measures in VisibilityGraph: left/right -> retarded/advanced.

  • Improved documentation and extended publication list.

  • Began transition from Weave to Cython.

  • Added unit tests and improved Pylint compliance.

  • Set up continuous testing with Travis-CI.

  • Fixed some minor bugs.

0.4.1

  • Removed a whole lot of get_ s from the API. For example, Network.get_degree() is now Network.degree().

  • Fixed some minor bugs.

0.4.0

  • Restructured package (subpackages: core, climate, timeseries, funcnet, utils).

  • Removed dependencies: Pysparse, PyNio, progressbar.

  • Added a module for resistive networks.

  • Switched to tox for test suite management.

  • Ensured PEP8 and PyFlakes compliance.

0.3.2

  • Fixed some minor bugs.

  • Switched to Sphinx documentation system.

0.3.1

  • First public release of pyunicorn.