langgraph-runtime-inmem 0.16.0__py3-none-any.whl → 0.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ from langgraph_runtime_inmem import (
9
9
  store,
10
10
  )
11
11
 
12
- __version__ = "0.16.0"
12
+ __version__ = "0.17.0"
13
13
  __all__ = [
14
14
  "ops",
15
15
  "database",
@@ -1947,38 +1947,37 @@ class Runs(Authenticated):
1947
1947
  if not pending_runs and not running_runs:
1948
1948
  return {
1949
1949
  "n_pending": 0,
1950
- "max_age_secs": None,
1951
- "med_age_secs": None,
1950
+ "pending_runs_wait_time_max_secs": None,
1951
+ "pending_runs_wait_time_med_secs": None,
1952
1952
  "n_running": 0,
1953
1953
  }
1954
1954
 
1955
- # Get all creation timestamps
1956
- created_times = [run.get("created_at") for run in (pending_runs + running_runs)]
1957
- created_times = [
1958
- t for t in created_times if t is not None
1959
- ] # Filter out None values
1960
-
1961
- if not created_times:
1962
- return {
1963
- "n_pending": len(pending_runs),
1964
- "n_running": len(running_runs),
1965
- "max_age_secs": None,
1966
- "med_age_secs": None,
1967
- }
1968
-
1969
- # Find oldest (max age)
1970
- oldest_time = min(created_times) # Earliest timestamp = oldest run
1971
-
1972
- # Find median age
1973
- sorted_times = sorted(created_times)
1974
- median_idx = len(sorted_times) // 2
1975
- median_time = sorted_times[median_idx]
1955
+ now = datetime.now(UTC)
1956
+ pending_waits: list[float] = []
1957
+ for run in pending_runs:
1958
+ created_at = run.get("created_at")
1959
+ if not isinstance(created_at, datetime):
1960
+ continue
1961
+ if created_at.tzinfo is None:
1962
+ created_at = created_at.replace(tzinfo=UTC)
1963
+ pending_waits.append((now - created_at).total_seconds())
1964
+
1965
+ max_pending_wait = max(pending_waits) if pending_waits else None
1966
+ if pending_waits:
1967
+ sorted_waits = sorted(pending_waits)
1968
+ half = len(sorted_waits) // 2
1969
+ if len(sorted_waits) % 2 == 1:
1970
+ med_pending_wait = sorted_waits[half]
1971
+ else:
1972
+ med_pending_wait = (sorted_waits[half - 1] + sorted_waits[half]) / 2
1973
+ else:
1974
+ med_pending_wait = None
1976
1975
 
1977
1976
  return {
1978
1977
  "n_pending": len(pending_runs),
1979
1978
  "n_running": len(running_runs),
1980
- "max_age_secs": oldest_time,
1981
- "med_age_secs": median_time,
1979
+ "pending_runs_wait_time_max_secs": max_pending_wait,
1980
+ "pending_runs_wait_time_med_secs": med_pending_wait,
1982
1981
  }
1983
1982
 
1984
1983
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-runtime-inmem
3
- Version: 0.16.0
3
+ Version: 0.17.0
4
4
  Summary: Inmem implementation for the LangGraph API server.
5
5
  Author-email: Will Fu-Hinthorn <will@langchain.dev>
6
6
  License: Elastic-2.0
@@ -1,13 +1,13 @@
1
- langgraph_runtime_inmem/__init__.py,sha256=IkyoATWYXVtBdbjGxIAAKNHoHzXa-_xZWmgeHQiG_90,311
1
+ langgraph_runtime_inmem/__init__.py,sha256=JHK5o7GR1hY1R4dqdV2cSGwXFa-JFQeQ6RB3e8-9M6U,311
2
2
  langgraph_runtime_inmem/checkpoint.py,sha256=nc1G8DqVdIu-ibjKTqXfbPfMbAsKjPObKqegrSzo6Po,4432
3
3
  langgraph_runtime_inmem/database.py,sha256=g2XYa5KN-T8MbDeFH9sfUApDG62Wp4BACumVnDtxYhI,6403
4
4
  langgraph_runtime_inmem/inmem_stream.py,sha256=PFLWbsxU8RqbT5mYJgNk6v5q6TWJRIY1hkZWhJF8nkI,9094
5
5
  langgraph_runtime_inmem/lifespan.py,sha256=fCoYcN_h0cxmj6-muC-f0csPdSpyepZuGRD1yBrq4XM,4755
6
6
  langgraph_runtime_inmem/metrics.py,sha256=_YiSkLnhQvHpMktk38SZo0abyL-5GihfVAtBo0-lFIc,403
7
- langgraph_runtime_inmem/ops.py,sha256=CDFNnyXtypH5yTexgaMAtZwtldc1tjvlFo-BiB-1oeQ,107861
7
+ langgraph_runtime_inmem/ops.py,sha256=niaZnC5Q7Mk6A1Edr9bC-TusBlvqMx_jvf2-md8aEAw,108036
8
8
  langgraph_runtime_inmem/queue.py,sha256=yV781CDjlsKNvkJ3puHyiHNnJpIIdB1G_gTY9dg6mys,9994
9
9
  langgraph_runtime_inmem/retry.py,sha256=XmldOP4e_H5s264CagJRVnQMDFcEJR_dldVR1Hm5XvM,763
10
10
  langgraph_runtime_inmem/store.py,sha256=rTfL1JJvd-j4xjTrL8qDcynaWF6gUJ9-GDVwH0NBD_I,3506
11
- langgraph_runtime_inmem-0.16.0.dist-info/METADATA,sha256=jU48sen13rzbOAMFoSke5jtWtgyAdOk38N4pbhVSQx0,570
12
- langgraph_runtime_inmem-0.16.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
13
- langgraph_runtime_inmem-0.16.0.dist-info/RECORD,,
11
+ langgraph_runtime_inmem-0.17.0.dist-info/METADATA,sha256=u8rDo2LJnO4kUWjhiaU2ZGAYljKVO1JjqhdYHBJZE2c,570
12
+ langgraph_runtime_inmem-0.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
13
+ langgraph_runtime_inmem-0.17.0.dist-info/RECORD,,