Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
2fd6c65
Add new interface via ABCD class
ryandewolfe33 Aug 14, 2026
7211d2b
Run black
ryandewolfe33 Aug 14, 2026
240fa05
Update README and demo
ryandewolfe33 Aug 14, 2026
ff6f00f
Update changelog
ryandewolfe33 Aug 14, 2026
1ef6f1b
Formatting fixes for flake8
ryandewolfe33 Aug 14, 2026
205cf2a
More formatting for flake
ryandewolfe33 Aug 14, 2026
6fe9732
More formatting for flake
ryandewolfe33 Aug 14, 2026
c2f8851
More formatting for flake
ryandewolfe33 Aug 14, 2026
3dbb7b7
Remove src, tests, profiling
ryandewolfe33 Aug 15, 2026
ff1a6fe
Update pyproject version, tools, and dependencies
ryandewolfe33 Aug 15, 2026
b737ef8
Add configuration model and rewiring
ryandewolfe33 Aug 15, 2026
841b6a4
Ignore .DS_store
ryandewolfe33 Aug 15, 2026
276ecd8
Add chunglu model
ryandewolfe33 Aug 16, 2026
4336194
Add community assignment for partitions and overlaps
ryandewolfe33 Aug 16, 2026
5b29725
Add function to split degrees among background and communities
ryandewolfe33 Aug 16, 2026
88e076e
Add degree assignment and splitting
ryandewolfe33 Aug 16, 2026
af39a10
Add degree and community samplers
ryandewolfe33 Aug 16, 2026
f615763
Try harder to fix community sizes
ryandewolfe33 Aug 17, 2026
f1d2f78
Make community size sums even
ryandewolfe33 Aug 17, 2026
7e1a4bf
Check sum of community degrees is even
ryandewolfe33 Aug 17, 2026
3b2bcc9
Check total degree is even
ryandewolfe33 Aug 17, 2026
4affb6b
Update ruff settings
ryandewolfe33 Aug 17, 2026
5f8f967
Initial implemention of top level ABCD class
ryandewolfe33 Aug 17, 2026
eb0e023
Update pre-commit hooks, remove mypy and switch to ruff
ryandewolfe33 Aug 17, 2026
30c86a7
Update pyproject
ryandewolfe33 Aug 17, 2026
12345a7
Remove print statements
ryandewolfe33 Aug 17, 2026
796c346
Optimise split community degree
ryandewolfe33 Aug 17, 2026
de9cdc5
Simplify degree spliting
ryandewolfe33 Aug 20, 2026
9a7842c
Add seeds to tests
ryandewolfe33 Aug 20, 2026
4f7c598
numbaify configuration model
ryandewolfe33 Aug 20, 2026
2b28398
Update workflows
ryandewolfe33 Aug 20, 2026
edce929
Run workflows on release branches
ryandewolfe33 Aug 20, 2026
b84589e
Update licence file in pyproject
ryandewolfe33 Aug 20, 2026
8f677fb
Fix type in workflows
ryandewolfe33 Aug 20, 2026
118efbb
Update version and packages in pyproject
ryandewolfe33 Aug 20, 2026
71957ed
Replace pre-commit with prek
ryandewolfe33 Aug 20, 2026
35ece00
Fix pyproject bug
ryandewolfe33 Aug 20, 2026
57379d0
Add pytest ini to pyproject
ryandewolfe33 Aug 20, 2026
4493ed3
Fix typo in precommit workflow
ryandewolfe33 Aug 20, 2026
76351ea
Only run coverage on main repo
ryandewolfe33 Aug 20, 2026
e6779b2
Fix prek version in pre-commit workflow
ryandewolfe33 Aug 20, 2026
73a55b4
Fix prek version in pre-commit workflow
ryandewolfe33 Aug 20, 2026
e56f10e
Formatting and ignore example in pre-commit
ryandewolfe33 Aug 21, 2026
4b37048
Refactor graph generation in preparation for parallelisation (#1)
ryandewolfe33 Aug 21, 2026
09159f7
Feature/logging (#2)
ryandewolfe33 Aug 21, 2026
e651d98
Add reproducibility test
ryandewolfe33 Aug 21, 2026
1438c4d
Add ABCDSample return class (#3)
ryandewolfe33 Aug 22, 2026
bf89d06
Feature/speed up assign degrees (#4)
ryandewolfe33 Aug 23, 2026
5748827
Update versions in ci workflow
ryandewolfe33 Aug 23, 2026
8dbc96c
Add fit function to ABCD (#5)
ryandewolfe33 Aug 23, 2026
25c5a3a
Add upper limit on n
ryandewolfe33 Aug 23, 2026
297f272
Update docstrings and don't use rho in degrees without overlap
ryandewolfe33 Aug 23, 2026
4d15084
Update README and pyproject
ryandewolfe33 Aug 23, 2026
a5dddee
Bump version to beta
ryandewolfe33 Aug 23, 2026
f6ba638
Fix overflow error in membership:
ryandewolfe33 Aug 23, 2026
77137e2
Add sphinx docs (#7)
ryandewolfe33 Aug 30, 2026
a5fe9d4
Fix docs picture file format
ryandewolfe33 Aug 31, 2026
d69d317
Remove nbcompess from precommit
ryandewolfe33 Aug 31, 2026
ebe10d9
Add fstar dependency to docs
ryandewolfe33 Aug 31, 2026
a8c6e5f
Remove outdated demo
ryandewolfe33 Aug 31, 2026
9cb2f8f
Describe building docs in readme
ryandewolfe33 Aug 31, 2026
dcb240f
Remove fstar dependency until added to pypi
ryandewolfe33 Aug 31, 2026
feec9cd
Add more params to abcd tests
ryandewolfe33 Sep 1, 2026
8eba604
Refactor/remove powerlaw dependency (#9)
ryandewolfe33 Sep 2, 2026
ef33880
Add benchmarks and ci workflow (#8)
ryandewolfe33 Sep 2, 2026
1d04e44
Fix degree exponent validation message
ryandewolfe33 Sep 2, 2026
f1942dc
Fix range in powerlaw fit
ryandewolfe33 Sep 2, 2026
0322890
Wrtie progress bars through logger
ryandewolfe33 Sep 2, 2026
4b348da
Feature/better fit checks (#10)
ryandewolfe33 Sep 2, 2026
3ae52a0
Add ABCDe and clean up references in README
ryandewolfe33 Sep 2, 2026
707aa0b
Update changelog
ryandewolfe33 Sep 2, 2026
133d7d2
Disable numba for coverage report
ryandewolfe33 Sep 2, 2026
b05a6fe
Rewire hashes edges as tuple (#11)
ryandewolfe33 Sep 4, 2026
1da9288
Refactor, models generate inplace (#12)
ryandewolfe33 Sep 4, 2026
83c7f0d
Refactor/degree assignment speed (#13)
ryandewolfe33 Sep 5, 2026
f2e71fd
Dynamically assign node dtype at sample time (#14)
ryandewolfe33 Sep 6, 2026
9630c66
Change job name from prek to pre-commit (#16)
ryandewolfe33 Sep 12, 2026
b82a9bb
Refactor/clean up deps (#17)
ryandewolfe33 Sep 15, 2026
643efa5
Update Changelog
ryandewolfe33 Sep 15, 2026
a37350c
Bug fixes in rewire (#18)
ryandewolfe33 Sep 16, 2026
b751770
Try moving dockerfile to us astral images (#19)
ryandewolfe33 Sep 26, 2026
c5c3842
Don't add latest packages
ryandewolfe33 Sep 26, 2026
0824833
Add trivy version
ryandewolfe33 Sep 26, 2026
5d6e714
Add to gitignore
ryandewolfe33 Sep 26, 2026
229508f
Add ty type checker to pre-commit workflow (#20)
ryandewolfe33 Sep 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions .github/actions/build/action.yml

This file was deleted.

15 changes: 0 additions & 15 deletions .github/actions/test/action.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Performance Regression Check
on:
pull_request:
branches:
- 'main'
- 'release/**'

jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v7

- name: Install uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
python-version: "3.12"
enable-cache: true

- name: Install package
run: uv sync --frozen

- name: Benchmark
run: uv run pytest --benchmark-compare=ci_baseline.json
--benchmark-compare-fail=mean:100%
--benchmark-warmup=on
--benchmark-min-rounds=10
benchmarks
27 changes: 19 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
name: unit tests
on: [push]
on:
push:
branches:
- 'main'
- 'release/**'
pull_request:
branches:
- 'main'
- 'release/**'
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.12"]
python-version: ["3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- name: Checkout Repository
uses: actions/checkout@v7

- uses: actions/setup-python@v5
- name: Install uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
python-version: ${{ matrix.python-version }}
enable-cache: true

- name: Build
uses: ./.github/actions/build
- name: Install package
run: uv sync --frozen --extra all

- name: Test
uses: ./.github/actions/test
- name: Run Tests
run: uv run pytest tests
39 changes: 23 additions & 16 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
name: coverage
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
if: github.repository == 'AleksanderWWW/abcd-graph'
test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v7

- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Setup uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
python-version: "3.12"
enable-cache: true

- name: Build
uses: ./.github/actions/build
- name: Install package
run: uv sync --frozen --extra all

- name: Test
uses: ./.github/actions/test
- name: Run tests
run: NUMBA_DISABLE_JIT=1 uv run pytest --junitxml=pytest.xml
--cov-report=term-missing:skip-covered
--cov=abcd_graph
tests | tee pytest-coverage.txt

- name: Pytest coverage comment
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./pytest.xml
- name: Pytest coverage comment
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./pytest.xml
22 changes: 14 additions & 8 deletions .github/workflows/docker-in-ci.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
name: docker

on:
pull_request:
push:
branches:
- main
- 'main'
- 'release/**'
pull_request:
branches:
- 'main'
- 'release/**'

jobs:
docker-basic:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Build docker basic image
run: |
Expand All @@ -22,26 +26,27 @@ jobs:
docker image inspect abcd-graph

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.31.0
uses: aquasecurity/trivy-action@v0.36.0
with:
image-ref: 'abcd-graph'
format: 'table'
exit-code: '1'
ignore-unfixed: true
vuln-type: 'os,library'
severity: 'CRITICAL,HIGH'
version: 'v0.74.0'

- name: Run basic docker image
run: |
docker run --rm abcd-graph -c "from abcd_graph import ABCDGraph, ABCDParams"
docker run --rm abcd-graph -c "from abcd_graph import ABCD, ABCDSample"

docker-full:
needs:
- docker-basic
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Build docker full image
run: |
Expand All @@ -52,15 +57,16 @@ jobs:
docker image inspect abcd-graph-full

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.31.0
uses: aquasecurity/trivy-action@v0.36.0
with:
image-ref: 'abcd-graph-full'
format: 'table'
exit-code: '1'
ignore-unfixed: true
vuln-type: 'os,library'
severity: 'CRITICAL,HIGH'
version: 'v0.74.0'

- name: Run full docker image
run: |
docker run --rm abcd-graph-full -c "import abcd_graph, igraph, networkx, scipy"
docker run --rm abcd-graph-full -c "from abcd_graph import ABCD, ABCDSample; import igraph; import networkx"
26 changes: 0 additions & 26 deletions .github/workflows/pr-title.yml

This file was deleted.

20 changes: 8 additions & 12 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
name: pre-commit

on:
pull_request:
push:
branches:
- main
- 'main'
- 'release/**'
pull_request:
branches:
- 'main'
- 'release/**'

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Run pre-commit
uses: pre-commit/action@v3.0.1
- uses: actions/checkout@v7
- uses: j178/prek-action@v3.0.0
24 changes: 0 additions & 24 deletions .github/workflows/profiling.yml

This file was deleted.

11 changes: 7 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Checkout Repository
uses: actions/checkout@v7

- name: Setup uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
python-version: "3.12"
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
enable-cache: true

- name: Publish
run: ./publish.sh ${{ secrets.PYPI_TOKEN }} ${{ secrets.GHCR_TOKEN }}
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ __pycache__/
.coverage
dist/
.python-version
.DS_store
docs/_build
.venv
.ruff_cache
.pytest_cache
.benchmarks
Loading
Loading