GitHub / python-graphblas / python-graphblas
Python library for GraphBLAS: high-performance sparse linear algebra for scalable graph analytics
JSON API: http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-graphblas%2Fpython-graphblas
PURL: pkg:github/python-graphblas/python-graphblas
Stars: 138
Forks: 15
Open issues: 68
License: apache-2.0
Language: Jupyter Notebook
Size: 3.74 MB
Dependencies parsed at: Pending
Created at: almost 6 years ago
Updated at: 16 days ago
Pushed at: 4 days ago
Last synced at: 3 days ago
Commit Stats
Commits: 768
Authors: 11
Mean commits per author: 69.82
Development Distribution Score: 0.163
More commit stats: https://commits.ecosyste.ms/hosts/GitHub/repositories/python-graphblas/python-graphblas
Topics: complex-networks, graph-algorithms, graph-analysis, graph-datastructures, graph-theory, graphblas, linear-algebra, numba, pydata, python, python-wrapper, sparse, sparse-data, sparse-matrix, suitesparse
2025.2.0
2025.2.0
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_hyperhashmay 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
yesqapre-commit hook; rely onruff(#546)
New contributors
- We welcomed @slockton24 as a new code contributor this release 🎉
Download
2025.2.0a1
2025.2.0a1 Pre-release
Updated pypa/gh-action-pypi-publish to v1.12.4
This is a pre-release; see 2025.2.0
Download
Download
2024.2.0
2024.2.0
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, andvector_to_values(#529)- Use
Matrix.from_coo,Vector.from_coo,matrix.to_coo, andvector.to_cooinstead
- Use
- Remove deprecated
gb.io.from_numpyandgb.io.to_numpy(#528)- Use
Matrix.from_dense,Vector.from_dense,matrix.to_dense, andvector.to_denseinstead
- Use
- Remove deprecated
gb.core.agg(#527)- Use
gb.core.operator.agginstead
- Use
Maintenance
- Drop support for:
- numpy 1.21 (#536)
- Add support for:
- numba 0.59 (#536)
- scipy 1.12 (#536)
- pandas 2.2 (#536)
- sparse 0.15 (#536)
- Misc. (#530, #531, #533)
Download
2023.12.0
2023.12.0
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)
- Also, do the same for ewise infix such as
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 isGrB_INDEX_MAX + 1(#519)- This can be more convenient to use e.g.
Matrix(int, MAX_SIZE, MAX_SIZE)
- This can be more convenient to use e.g.
- 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
- Add support for:
- networkx 3.2 (#516)
- numba 0.58 (#525)
- awkward 2.5 (#525)
- Misc. (update dependency versions, etc.) (#516, #521, #522, #523, #525)
Download
2023.10.0
2023.10.0
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; usegb.viz.drawinstead (#485) - Removed
A.ss.scan_rowwise,A.ss.selectk_rowwise,A.ss.compactify_rowwise, andA.ss.*_columnwisevariants (#486)- Use e.g.
A.ss.scan(order="row")instead
- Use e.g.
Enhancements
- Support SuiteSparse:GraphBLAS 8 (#456)
- Document and improve using the JIT for user-defined operators defined in C (#512)
- Document
gb.ss.configoptions (#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.burbleto enable SuiteSparse:GraphBLAS diagnostics; may be used as a context (#514) - Add CSS to better stylize matrices in online docs (#502)
- Add
.thunk_typeattribute 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:
- Python 3.8 (#489)
- scipy 1.8 (#489)
- Add support for:
- Python 3.12 (#508)
- numpy 1.26 (#493, #505)
- pandas 2.1 (#500)
- awkward 2.4 (#500)
- Drop usage of coveralls (use codecov instead) (#509)
New contributors
- We welcomed @alugowski, @paul-tqh-nguyen, and @Transurgeon as new code contributors this release 🎉
Download
2023.7.0
2023.7.0
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_market1.6, 1.7, and 1.8awkward2.2 and 2.3numpy1.25scipy1.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)
Download
2023.5.0
2023.5.0
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-graphblasand dependencies via pip.- The recommended way to install
python-graphblasvia pip is now:pip install python-graphblas[suitesparse](also installssuitesparse-graphblas)pip install python-graphblas[suitespars-udf](also installsnumba)pip install python-graphblas[default](also installspandasandscipy)pip install python-graphblas[all](installs every optional dependency including for testing and viz)
pip install python-graphblaswill keep its current behavior for about a year- This currently installs
suitesparse-graphblasandnumba, which may be dropped as required dependencies in 2024.3.0 - Release 2024.3.0 or later will probably only depend on
numpy,donfigandpyyaml
- This currently installs
- The recommended way to install
Enhancements
- Document parameters to operator methods
register_newandregister_anonymous(#446) - Update
userguide/operations.rstto 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.pyinto multiple files (#448) - Begin using https://pre-commit-ci for running git pre-commit (#432)
.github/workflows/imports.ymlnow randomizes Python version and OS (#423)- Marked poorly covered code with comments
# NOT COVERED,# BRANCH NOT COVERED, and# FLAKY COVERAGE - Dropped support for
sparse0.12 - Support
networkx3.1,numpy1.24,numba0.57,pandas2.0,fast_matrix_market1.5
Download
2023.3.0
2023.3.0
Deprecations
- Deprecate
graphblas.core.aggnamespace (#420)- Use
graphblas.core.operator.aggnamespace instead - Will be removed in version 2023.11.0 or later
- Use
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
- Split operator.py into multiple files (#420)
- Test with
python-suitesparse-graphblaswheels on all OSes in CI (#385) - Add @SultanOrazbayev as a maintainer (#404)
- Misc. maintenance (#399, #405, #417)
PSA: suitesparse-graphblas v7.4.3.2 now has wheels for Windows, MacOS, and Linux 🎉
Download
2023.2.0
2023.2.0
Expired deprecations
- Remove deprecated
Matrix.new,Vector.new, andScalar.newconstructors (#380)- Use e.g
Matrix(...)andVector(...)instead
- Use e.g
- Remove deprecated
require_monoid=argument inewise_add(#377) - Remove deprecated
io.from_scipy_sparse_matrixandio.to_scipy_sparse_matrix(#393)- Use e.g.
io.from_scipy_sparseinstead
- Use e.g.
Deprecations
- Deprecate
io.from_numpyandio.to_numpy(#382)- Use e.g. the new methods
Vector.from_denseandMatrix.to_denseinstead - Wil be removed in version 2023.10.0 or later
- Use e.g. the new methods
Enhancements
- Add
from_denseandto_densemethods toVectorandMatrixto convert between NumPy arrays (#382) - Add
from_scalartoVectorandMatrixto create fully dense objects from a scalar (#382) - Improve inferring sub-array dtypes when constructing objects (#381)
.waitnow returnsselfso it can be used with method-chaining (#379)- Add
op.is_idempotentproperty to Monoids that meansop(x, x) == x(#388) - Support complex dtypes on Windows (#394, #395)
python-suitesparse-graphblasv7.4.3.1 added support for complex on Windows (GraphBLAS/python-suitesparse-graphblas#68)
io.to_pydata_sparse(v)now returns 1d sparse array for Vector inputs (#395)
Download