Skip to content

Releases: python-graphblas/python-graphblas

2025.2.0

17 Feb 23:08
2a4891f
Compare
Choose a tag to compare

Highlights

  • Add support for: (#546)
    • SuiteSparse:GraphBLAS 9.3.1
    • Python 3.13
    • NumPy 2
  • Adopt SPEC 0 for minimum supported versions (#537)

Enhancements

  • Fix install instructions in README.md (#548)
  • Changes from SuiteSparse:GraphBLAS 9.3.1:
    • A.ss.unpack_hyperhash may return None
    • When serializing objects, there is no longer a character limit when saving info for UDTs
  • Add A._networkx_backend__ so matrices can be recognized as graphs by NetworkX >=3.3 (#546)

Maintenance

  • Drop support for:
    • Python 3.9
    • numpy 1.22
    • pandas 1.2 - 1.4
    • sparse 0.13
    • awkward 1.9
  • Add support for: (#546)
    • Python 3.13
    • numpy 2.0 - 2.2.3
    • scipy 1.13 - 1.51.2
    • numba 0.60 - 0.61
    • awkward 2.6 - 2.7
  • Add new pre-commit hooks: (#546)
    • prettier
    • taplo
    • actionlint
    • check-jsonschema
    • yamllint
    • zizmor
    • meta
  • Remove yesqa pre-commit hook; rely on ruff (#546)

New contributors

  • We welcomed @slockton24 as a new code contributor this release 🎉

2025.2.0a1

17 Feb 20:23
a1e1904
Compare
Choose a tag to compare
2025.2.0a1 Pre-release
Pre-release

Updated pypa/gh-action-pypi-publish to v1.12.4

This is a pre-release; see 2025.2.0

2025.2.0a0

17 Feb 16:14
9bf2ae2
Compare
Choose a tag to compare
2025.2.0a0 Pre-release
Pre-release

This is a pre-release; see 2025.2.0

2024.2.0

07 Feb 15:58
8f36d46
Compare
Choose a tag to compare

Highlights

  • Add support for numba 0.59, which supports Python 3.12 (#536)
    • Python-graphblas and its dependencies now fully support Python 3.12

Expired deprecations

  • Remove deprecated Matrix.from_values, Vector.from_values, matrix.to_values, and vector_to_values (#529)
    • Use Matrix.from_coo, Vector.from_coo, matrix.to_coo, and vector.to_coo instead
  • Remove deprecated gb.io.from_numpy and gb.io.to_numpy (#528)
    • Use Matrix.from_dense, Vector.from_dense, matrix.to_dense, and vector.to_dense instead
  • Remove deprecated gb.core.agg (#527)
    • Use gb.core.operator.agg instead

Maintenance

2023.12.0

13 Dec 19:31
e673d60
Compare
Choose a tag to compare

Highlights

  • Support semiring(A @ B @ C) that applies semiring to both matmuls (#501)
    • Also, do the same for ewise infix such as monoid(A & B & C)
    • but don't allow mixing ewise-add and ewise-multiply such as monoid(A | B & C)

Enhancements

  • Support Matrix power to the 0th power, A.power(0) (#518)
    • This results in a dense diagonal Matrix where the diagonal value is gotten from the identity of the semiring's binary operator (if it has an identity)
  • Add gb.MAX_SIZE, which is GrB_INDEX_MAX + 1 (#519)
    • This can be more convenient to use e.g. Matrix(int, MAX_SIZE, MAX_SIZE)
  • Better handle dtypes (especially UDTs) in ewise_union (#517)

Bug fixes

  • Fix the default return type of some aggregators such as agg.count (#524)
  • Fix test status badge in README (#526)

Maintenance

2023.10.0

18 Oct 17:22
228faa1
Compare
Choose a tag to compare

Highlights

  • First release to officially support SuiteSparse:GraphBLAS 8 (#456, #488, #504, #511, #512)
  • Newly affiliated with NumFOCUS and pyOpenSci (#482, #510)
  • We have a new logo, check it out! (#506)

Expired deprecations

  • Removed gb.io.draw; use gb.viz.draw instead (#485)
  • Removed A.ss.scan_rowwise, A.ss.selectk_rowwise, A.ss.compactify_rowwise, and A.ss.*_columnwise variants (#486)
    • Use e.g. A.ss.scan(order="row") instead

Enhancements

  • Support SuiteSparse:GraphBLAS 8 (#456)
    • Document and improve using the JIT for user-defined operators defined in C (#512)
    • Document gb.ss.config options (#504)
    • Document gb.ss.context (#488)
    • Test against python-suitesparse-graphblas 8.0.2.1, 8.2.0.1, 8.2.1.0 (#511)
  • Add matrix.power(k) to compute e.g. A @ A @ A @ ... using repeated squaring with arbitrary semiring (#483)
  • Add matrix.setdiag(x, k=0) to set a diagonal of a matrix; supports mask and accum (#493)
  • Add gb.ss.burble to enable SuiteSparse:GraphBLAS diagnostics; may be used as a context (#514)
  • Add CSS to better stylize matrices in online docs (#502)
  • Add .thunk_type attribute to SelectOp and IndexUnaryOp (#512)
  • Add badge for pyOpenSci affiliation; we were peer reviewed! (#482)
  • Add badge for NumFOCUS affiliation; we were added as an affiliated project! (#510)
  • Created logo and color palette for python-graphblas! Notebook added that creates it (#506)

Bug fixes

  • Allow scalar.__index__ for integral dtypes only (#481)
  • Fix broken link to graphblas.org (#503)

Maintenance

  • Drop support for:
  • Add support for:
  • Drop usage of coveralls (use codecov instead) (#509)

New contributors

2023.7.0

07 Jul 21:04
f14cbac
Compare
Choose a tag to compare

Enhancements

  • Prepare for SuiteSparse:GraphBLAS 8 (#478, #456)
    • Version 8 added SuiteSparse-specific context objects and JIT
    • Support coming in the next release of python-graphblas
  • Documentation improvements:
    • Add section about relationships to other Python libraries to README (#442)
    • Fix images to show up in README on PyPI (#450)
    • Fix to use double backticks instead of single backticks in docs (#454)
    • Blacken docs (#455)
    • Add conversions to/from awkward-array to API reference docs (#457)
    • Fix command to create conda environment in contributor guide docs (#462)
    • Clarify meaning and usage of monoids in GraphBLAS (#469)
    • Update copyright to include "and contributors" (#470)
  • Add support for the following versions of dependencies (#464, #478, others):
    • fast_matrix_market 1.6, 1.7, and 1.8
    • awkward 2.2 and 2.3
    • numpy 1.25
    • scipy 1.11

Maintenance

  • Include conftest.py in MANIFEST.in so sdist can run tests propertly (#451)
  • Disable linting github action and rely on pre-commit.ci instead (#451)

2023.5.0

03 May 15:16
096c5ed
Compare
Choose a tag to compare

Highlights

  • Add support for Python 3.11 (#423)
  • Allow Numba to be optional (#423)
    • User-defined functions (UDFs) still require numba
  • Update how to install python-graphblas and dependencies via pip.
    • The recommended way to install python-graphblas via pip is now:
      • pip install python-graphblas[suitesparse] (also installs suitesparse-graphblas)
      • pip install python-graphblas[suitespars-udf] (also installs numba)
      • pip install python-graphblas[default] (also installs pandas and scipy)
      • pip install python-graphblas[all] (installs every optional dependency including for testing and viz)
    • pip install python-graphblas will keep its current behavior for about a year
      • This currently installs suitesparse-graphblas and numba, which may be dropped as required dependencies in 2024.3.0
      • Release 2024.3.0 or later will probably only depend on numpy, donfig and pyyaml

Enhancements

  • Document parameters to operator methods register_new and register_anonymous (#446)
  • Update userguide/operations.rst to be copy/paste-able (added outputs) (#440)
  • Specify which versions of the GraphBLAS C API we support, and add version policy to FAQ (#441)
  • Add link to FAQ to README (#439)
  • Add logo, matrix, and graph SVGs to README (#432)
  • Convert logo SVGs to use path instead of font for better consistency (#447)
  • Minfied all PNGs and SVGs in documentation (#423, #447)

Maintenance

  • Split io.py into multiple files (#448)
  • Begin using https://pre-commit-ci for running git pre-commit (#432)
  • .github/workflows/imports.yml now randomizes Python version and OS (#423)
  • Marked poorly covered code with comments # NOT COVERED, # BRANCH NOT COVERED, and # FLAKY COVERAGE
  • Dropped support for sparse 0.12
  • Support networkx 3.1, numpy 1.24, numba 0.57, pandas 2.0, fast_matrix_market 1.5

2023.3.0

31 Mar 19:56
abb1c78
Compare
Choose a tag to compare

Deprecations

  • Deprecate graphblas.core.agg namespace (#420)
    • Use graphblas.core.operator.agg namespace instead
    • Will be removed in version 2023.11.0 or later

Enhancements

  • Read Matrix Market files much faster with fast_matrix_market (new optional dependency) (#391)
  • Add Python version badges and description of optional dependencies in README.md (#404)
  • Split API references into separate pages for better navigation experience (#413)

Bug fixes

  • Improve import times (which regressed in version 2023.2.0) (#419)
  • Fix html repr of infix expressions (#418)
  • Fix broken link in documentation (fundamentals.rst) (#397)
  • Fix logo in our docs and pin documentation dependency versions (#400)
  • Fix documentation website rendering issue with right panel (#413)

Maintenance

PSA: suitesparse-graphblas v7.4.3.2 now has wheels for Windows, MacOS, and Linux 🎉

2023.2.0

27 Feb 12:13
7be68cf
Compare
Choose a tag to compare

Expired deprecations

  • Remove deprecated Matrix.new, Vector.new, and Scalar.new constructors (#380)
    • Use e.g Matrix(...) and Vector(...) instead
  • Remove deprecated require_monoid= argument in ewise_add (#377)
  • Remove deprecated io.from_scipy_sparse_matrix and io.to_scipy_sparse_matrix (#393)
    • Use e.g. io.from_scipy_sparse instead

Deprecations

  • Deprecate io.from_numpy and io.to_numpy (#382)
    • Use e.g. the new methods Vector.from_dense and Matrix.to_dense instead
    • Wil be removed in version 2023.10.0 or later

Enhancements

  • Add from_dense and to_dense methods to Vector and Matrix to convert between NumPy arrays (#382)
  • Add from_scalar to Vector and Matrix to create fully dense objects from a scalar (#382)
  • Improve inferring sub-array dtypes when constructing objects (#381)
  • .wait now returns self so it can be used with method-chaining (#379)
  • Add op.is_idempotent property to Monoids that means op(x, x) == x (#388)
  • Support complex dtypes on Windows (#394, #395)
  • io.to_pydata_sparse(v) now returns 1d sparse array for Vector inputs (#395)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy