Commit Graph
29 Commits
Author SHA1 Message Date
Sydney RunkleandGitHub 2d3121a17c chore: drop Python 3.9 (and syntax) (#6289)
* `strict=False` is the default, pyupgrade to min version 3.10 adds this
to be explicit w/ behavior
2025-10-16 20:17:46 -04:00
Sydney RunkleandGitHub 36179ab1d2 fix(langgraph): handle multiple annotations w/ BaseChannel detection (#6210)
This PR ensures that even if a type has multiple annotations, we can
still detect the `BaseChannel` subclasses attached.

```py
class State(TypedDict):
    # recognized as EphemeralValue(int)
    foo: Annotated[int, EphemeralValue]

    # now recognized as EphemeralValue(int)
    bar: Annotated[int, EphemeralValue, OtherMetadata]

    # now recognized as EphemeralValue(int)
    baz: Annotated[int, SomeMetadata, EphemeralValue, OtherMetadata]
```
2025-09-26 17:22:24 -04:00
Nuno CamposandGitHub 36cf353d19 fix: Unwrap Required/NotRequired special forms before resolving channel/reducer annotations (#6080) 2025-09-05 10:27:10 +01:00
Sydney RunkleandGitHub 339de4c204 langgraph[fix]: remove deprecated pydantic logic + fix schema gen behavior for typed dicts (#5296) 2025-07-02 20:08:48 +00:00
Sydney RunkleandGitHub 0171e9a323 fix(langgraph): remove deprecated output usage in favor of output_schema (#5095)
use output_schema
2025-06-13 12:34:39 -04:00
Sydney RunkleandGitHub b735452153 deprecate input and output in favor of input_schema and output_schema (#4983) 2025-06-06 19:44:56 -04:00
Sydney RunkleandGitHub 37c215b5a2 Improve type checking on graph init and invoke/stream (#4932) 2025-06-03 15:21:51 -04:00
Nuno Campos 889b40e7a8 Remove Context channel / managed value, Remove SharedValue
- Both have been deprecated long ago, have not been present in docs for quite a while
- Removing these lets us delete some code paths that were dedicated to this, easing work on distributed runner
2025-05-24 11:05:15 -07:00
Sydney Runkle 80dca9b9a5 removing remaining v1 logic 2025-04-29 15:11:37 -04:00
Sydney Runkle 1a477e57ff upgrade to py39 standards 2025-04-21 20:43:40 -07:00
7aa9d3fd00 langgraph: use input schema from conditional edge (#2516)
Currently we ignore the input schema in the branch and instead use the
input schema from the previous node (or overall graph schema)

This change makes the input schema to branches respected. This means
that if you try to pass extra keys and they're NOT in the input schema,
you will receive an error. If you don't provide an annotation in the
router, it will fall back to the previous node's input schema / full
graph state schema

Alternative solution is to just ignore the input schema in the router
altogether (including ignoring the schema from previous node / full
graph), but personally I find it more confusing.

---------

Co-authored-by: Nuno Campos <nuno@langchain.dev>
2025-03-11 11:33:28 -04:00
Vadym BardaandGitHub f7fae7e140 langgraph: fix ismethod check in add_node (#3032)
Fixes #2893 #2965
2025-01-14 17:17:50 -05:00
Vadym BardaandGitHub 35e3276e34 langgraph: add add_sequence to StateGraph (#2352) 2024-11-07 13:16:34 -05:00
gbaian10andGitHub 0042889c31 Support read type hints from the method in add_node (#2014)
Add function to read type hints from the `__call__` method to resolve issue #1950.
2024-10-22 17:11:59 +00:00
Nuno Campos 9644525b59 Fix some deprecation warnings in tests 2024-09-17 10:19:28 -07:00
William Fu-Hinthorn 4aa28fb55f Merge 2024-09-06 13:46:16 -07:00
William Fu-Hinthorn cc55adac46 icanspell 2024-09-06 12:50:53 -07:00
William Fu-Hinthorn 1832ed46ef Assert input/output channels aren't managed 2024-09-06 12:46:12 -07:00
William Fu-Hinthorn e86330ab05 Exclude shared 2024-09-06 12:28:33 -07:00
William Fu-Hinthorn 093dab1035 Update test 2024-09-06 12:09:37 -07:00
William FHandGitHub ec4e92792d Optional types for dataclass state defs (#1557) 2024-09-06 11:50:45 -07:00
Nuno CamposandGitHub 974b6c7bf3 Merge pull request #1549 from langchain-ai/wfh/optional_types
Support optional types from typeddict
2024-09-03 09:11:14 -07:00
Nuno Campos d65d0ec665 test: Ensure that async checkpointers in tests are setup in same event loop as they are used in
- This more closely remembers the environment they're used in, so it's what we should be testing
- Remove unnecessary pytest-asyncio dependency, use anyio pytest plugin instead
- Convert remaining async tests using only memory checkpointer to use all existing ones
2024-09-02 17:24:54 -07:00
William Fu-Hinthorn 85e827ae85 Merge branch 'main' into wfh/optional_types 2024-08-30 16:40:56 -07:00
William Fu-Hinthorn 51f58279ba Update snapshot 2024-08-30 16:20:22 -07:00
William Fu-Hinthorn a07ec9d8c8 Handle total=false 2024-08-30 10:21:57 -07:00
William Fu-Hinthorn 65b64c1331 Support optional types from typeddict
In the input schema
2024-08-30 09:42:53 -07:00
gbaian10andGitHub 22f5367af7 langgraph: fix add_node input schema error (#1332) 2024-08-22 12:32:21 -04:00
vbarda 1a06d500d4 libs: add cli, sdk-py, sdk-js and move core langgraph 2024-06-17 20:37:25 -04:00