Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
320cea4
Introduce new graph API
dmontagu Sep 11, 2025
dc64f7c
Make type-checking-compatible with 3.10
dmontagu Sep 22, 2025
fcf2e1e
Update the plan_outline_graph.py script
dmontagu Sep 22, 2025
182fef5
Allow transitioning between BaseNodes and step functions
DouweM Sep 23, 2025
ee44e04
Support step functions that return output or node
DouweM Sep 23, 2025
f70c044
Make handling of nodes downstream of a join more consistent during iter
dmontagu Sep 23, 2025
650d029
Add broken match_node method to GraphBuilder
dmontagu Sep 23, 2025
cbf6fff
Implement GraphBuilder.match_node
DouweM Sep 23, 2025
b5b5d71
Add deps to graph v2
DouweM Sep 23, 2025
8c29dc9
Make state, deps, inputs arguments optional
DouweM Sep 23, 2025
67bb49a
Use new graph in agent graph
DouweM Sep 23, 2025
54cb987
fixes
DouweM Sep 23, 2025
4cc2bae
Pass state and deps to reducer
DouweM Sep 23, 2025
9eab0c5
fix iteration nodes
DouweM Sep 23, 2025
e5ef3c8
Fix graph with temporal
DouweM Sep 24, 2025
6b021df
Remove `activity` and `parallel` attributes
dmontagu Sep 24, 2025
3e5559b
Remove docstring contents of __init__.py
dmontagu Sep 24, 2025
db223a5
Add docstrings
dmontagu Sep 24, 2025
a577427
Make GraphBuilder.edge_from(...).to take a type[BaseNode]
DouweM Sep 24, 2025
db5484d
Update the docstrings/typevars of decision.py
dmontagu Sep 24, 2025
3e443db
Fix generic base nodes
DouweM Sep 24, 2025
1f19672
Update some docstrings
dmontagu Sep 24, 2025
467b38a
Tweak automatic edge creation from step function return hints
DouweM Sep 24, 2025
2a08277
Fix auto instrumentation
DouweM Sep 24, 2025
17ca402
remove logfire
DouweM Sep 24, 2025
c842d01
remove claude generated examples
DouweM Sep 25, 2025
c0161f6
Use 3.10 in CI
DouweM Sep 25, 2025
1904333
Use 3.10 in CI
DouweM Sep 25, 2025
a9ace18
Delete plan
DouweM Sep 25, 2025
06a7883
Use 3.11 for docs in CI
DouweM Sep 25, 2025
a6f6f3f
Rename graph v2 to beta
DouweM Sep 25, 2025
e103ab9
Lint on 3.10 and 3.13
DouweM Sep 25, 2025
4da92dd
Use correct pyright python version
DouweM Sep 25, 2025
a73c781
remove old examples
DouweM Sep 25, 2025
8c9ad90
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Sep 25, 2025
346eebb
Readd infer_name=False
dmontagu Sep 25, 2025
e27c116
Merge main
dmontagu Oct 2, 2025
f7c018b
Add some tests and fix some bugs
dmontagu Oct 2, 2025
4d07089
Fix tests
dmontagu Oct 2, 2025
d5f7729
Add docs
dmontagu Oct 3, 2025
519c5d6
Rename IDs and update some docs
dmontagu Oct 3, 2025
9fc966f
Rename spread to map
dmontagu Oct 3, 2025
d38464e
Fix failing docs tests
dmontagu Oct 3, 2025
b65db2a
Merge main
dmontagu Oct 3, 2025
b1145f2
Fix failing docs test
dmontagu Oct 3, 2025
2d8de15
Fix a bug
dmontagu Oct 3, 2025
e2b4db2
WIP
dmontagu Oct 3, 2025
edd8880
WIP
dmontagu Oct 6, 2025
b515963
Get new tests passing
dmontagu Oct 6, 2025
ae3e2df
Improve typing
dmontagu Oct 6, 2025
12e8883
Merge main
dmontagu Oct 6, 2025
56f1e5a
Make StepContext a dataclass again
dmontagu Oct 7, 2025
2ed5bab
Rework and simplify joins
dmontagu Oct 7, 2025
ca3b70e
Get tests passing
dmontagu Oct 8, 2025
fab8317
Remove unnecessary ForkID from StartNode
dmontagu Oct 8, 2025
33cf7ff
Various improvements
dmontagu Oct 8, 2025
5fec736
Fix docs issues
dmontagu Oct 8, 2025
42c7222
TODO: Need to make everything covariant in deps and state as well, an…
dmontagu Oct 9, 2025
00b98db
Make compatible with 3.13 typing
dmontagu Oct 9, 2025
a949ddd
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 9, 2025
3267e69
Add TODO comments for coverage
dmontagu Oct 9, 2025
9d96281
Add more test coverage
dmontagu Oct 10, 2025
58de5c3
Add more test coverage
dmontagu Oct 10, 2025
94b2f4e
Add more coverage
dmontagu Oct 10, 2025
5f8aff8
Add more coverage
dmontagu Oct 10, 2025
6d2cccd
Add more coverage
dmontagu Oct 10, 2025
716967a
Fix some bugs and coverage
dmontagu Oct 10, 2025
0103efb
Finish fixing coverage
dmontagu Oct 13, 2025
b70fe26
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 13, 2025
be30528
Fix coverage
dmontagu Oct 13, 2025
0391387
Refactor to use anyio
dmontagu Oct 15, 2025
f710a0b
Make work with async iterable
dmontagu Oct 15, 2025
b53f627
Fix type checking
dmontagu Oct 15, 2025
5f1db51
Fix infinite recursion with errors
dmontagu Oct 16, 2025
4eb1a0b
Try fixing the failing tests
dmontagu Oct 16, 2025
dc1508b
Try to improve coverage
dmontagu Oct 16, 2025
592686d
Try to improve coverage
dmontagu Oct 16, 2025
ba68697
Fix coverage of test file
dmontagu Oct 16, 2025
b6e944b
Try fixing no-coverage
dmontagu Oct 16, 2025
cc97d06
Merge main
dmontagu Oct 16, 2025
d03f0d3
Try fixing after merging main
dmontagu Oct 16, 2025
4ff70ab
Fix coverage 😩
dmontagu Oct 16, 2025
c79db4c
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 20, 2025
933512f
Improve docs
dmontagu Oct 20, 2025
cfbf7a9
Fix coverage
dmontagu Oct 20, 2025
1903739
Make tests less flaky
dmontagu Oct 20, 2025
5c28a00
Fix some ci issues
dmontagu Oct 20, 2025
ae8f9a5
Fix some ci issues
dmontagu Oct 20, 2025
65388f6
Reduce diff of 'infra' files
dmontagu Oct 20, 2025
b8c3ae6
Make temporal test script work
dmontagu Oct 20, 2025
990f83a
Fix makefile for Marcelo
dmontagu Oct 21, 2025
beb7815
Add comment about testing temporal
dmontagu Oct 22, 2025
2f671ee
Merge main
dmontagu Oct 22, 2025
87d158a
Fix some docs comments
dmontagu Oct 22, 2025
1f32c95
Merge branch 'main' into dmontagu/new-graph-api
DouweM Oct 22, 2025
5b03a95
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 23, 2025
f9c4d84
Merge branch 'main' into dmontagu/new-graph-api
DouweM Oct 23, 2025
8991e0d
Address some TODOs
dmontagu Oct 23, 2025
55a8d42
Address some TODOs and add some coverage
dmontagu Oct 23, 2025
83e9312
WIP
dmontagu Oct 23, 2025
c478324
WIP
dmontagu Oct 23, 2025
e5a5f0e
Address more TODOs
dmontagu Oct 23, 2025
f49b999
Fix graph validation error stuff
dmontagu Oct 23, 2025
17555b4
Fix coverage
dmontagu Oct 23, 2025
7ee5d10
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 23, 2025
383ed50
Merge branch 'main' into dmontagu/new-graph-api
dmontagu Oct 24, 2025
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
9 changes: 9 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,16 @@ permissions:

jobs:
lint:
name: lint on ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Typecheck both Python 3.10 and 3.13. We've had issues due to not checking against both.
python-version: ["3.10", "3.13"]
env:
UV_PYTHON: ${{ matrix.python-version }}
PYRIGHT_PYTHON: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4

Expand Down
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ lint: ## Lint the code

.PHONY: typecheck-pyright
typecheck-pyright:
@# To typecheck for a specific version of python, run 'make install-all-python' then set environment variable PYRIGHT_PYTHON=3.10 or similar
@# PYRIGHT_PYTHON_IGNORE_WARNINGS avoids the overhead of making a request to github on every invocation
PYRIGHT_PYTHON_IGNORE_WARNINGS=1 uv run pyright
PYRIGHT_PYTHON_IGNORE_WARNINGS=1 uv run pyright $(if $(PYRIGHT_PYTHON),--pythonversion $(PYRIGHT_PYTHON))

.PHONY: typecheck-mypy
typecheck-mypy:
Expand All @@ -51,7 +52,8 @@ typecheck-both: typecheck-pyright typecheck-mypy

.PHONY: test
test: ## Run tests and collect coverage data
uv run coverage run -m pytest -n auto --dist=loadgroup --durations=20
@# To test using a specific version of python, run 'make install-all-python' then set environment variable PYTEST_PYTHON=3.10 or similar
$(if $(PYTEST_PYTHON),UV_PROJECT_ENVIRONMENT=.venv$(subst .,,$(PYTEST_PYTHON))) uv run $(if $(PYTEST_PYTHON),--python $(PYTEST_PYTHON)) coverage run -m pytest -n auto --dist=loadgroup --durations=20
@uv run coverage combine
@uv run coverage report

Expand Down
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta`

::: pydantic_graph.beta
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_decision.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.decision`

::: pydantic_graph.beta.decision
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_graph.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.graph`

::: pydantic_graph.beta.graph
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_graph_builder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.graph_builder`

::: pydantic_graph.beta.graph_builder
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_join.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.join`

::: pydantic_graph.beta.join
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_node.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.node`

::: pydantic_graph.beta.node
3 changes: 3 additions & 0 deletions docs/api/pydantic_graph/beta_step.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `pydantic_graph.beta.step`

::: pydantic_graph.beta.step
Loading