You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@burr.apache.org by eb...@apache.org on 2026/02/02 05:19:29 UTC
(burr) branch burr-0.42.0 created (now 7c6329c8)
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a change to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
at 7c6329c8 Bump version to 0.42.0
This branch includes the following new commits:
new 44719962 Replace non-standard license headers in 6 notebooks
new cbfb0aeb Add Apache license headers to 33 notebooks
new 9fb724fe Add twine verification to wheel build process
new 3b1b3ab2 Document twine requirement in release process
new 3a4ff070 Add twine-check command for voter verification
new 8ca0e490 Truncate pyproject.toml description to single line
new dd01b30e Improve twine validation error messages
new 7c6329c8 Bump version to 0.42.0
The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(burr) 04/08: Document twine requirement in release process
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 3b1b3ab2535a23cf12ce52497dc75d87a96a9813
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 20:44:18 2026 -0800
Document twine requirement in release process
Add twine to prerequisites and update build documentation to reflect
the new metadata validation step. Release managers need to know about
this dependency before attempting a release.
---
scripts/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/README.md b/scripts/README.md
index 867c58f1..5d9e79a0 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -54,6 +54,7 @@ Specifically, we set the following guidelines:
Prerequisites:
- Python 3.9+
- `flit` for building (`pip install flit`)
+- `twine` for package validation (`pip install twine`)
- GPG key configured for signing
- Node.js + npm for UI builds
- Apache RAT jar for license checking (optional)
@@ -97,7 +98,7 @@ python scripts/apache_release.py verify 0.41.0 0
python scripts/apache_release.py all 0.41.0 0 your_apache_id --no-upload
```
-Output: `dist/` directory with tar.gz (archive + sdist), whl, plus .asc and .sha512 files. Install from the whl file to test it out after runnig the `wheel` subcommand.
+Output: `dist/` directory with tar.gz (archive + sdist), whl, plus .asc and .sha512 files. The wheel is validated with `twine check` to ensure metadata correctness before signing. Install from the whl file to test it out after running the `wheel` subcommand.
## For Voters: Verifying a Release
(burr) 06/08: Truncate pyproject.toml description to single line
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 8ca0e490f16cfd574475951a45b609900b085a88
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 21:10:23 2026 -0800
Truncate pyproject.toml description to single line
---
pyproject.toml | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 7b8da0fa..2c8a7976 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -32,22 +32,7 @@ maintainers = [
{name = "Elijah ben Izzy", email = "elijah@dagworks.io"},
{name = "Stefan Krawczyk", email = "stefan@dagworks.io"},
]
-description = """Apache Burr (incubating) makes it easy to develop applications that make decisions (chatbots, agents, simulations, etc...) from simple python building blocks.
-
-Apache Burr works well for any application that uses LLMs, and can integrate with any of your favorite frameworks. Burr includes a UI that can track/monitor/trace your system in real time, along with
-pluggable persisters (e.g. for memory) to save & load application state.
-
-Apache Burr (incubating) is an effort undergoing incubation at the Apache
-Software Foundation (ASF), sponsored by the Apache Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness
-or stability of the code, it does indicate that the project has yet to be
-fully endorsed by the ASF.
-"""
+description = "Apache Burr (incubating) makes it easy to develop applications that make decisions (chatbots, agents, simulations, etc...) from simple python building blocks."
readme = "README.md"
license-files = ["LICENSE", "NOTICE", "DISCLAIMER"]
keywords = ["mlops", "data", "state-machine", "llmops"]
(burr) 07/08: Improve twine validation error messages
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit dd01b30e226980e6aa4ba9517d790912d76a0533
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 21:11:57 2026 -0800
Improve twine validation error messages
Show actual twine output when wheel metadata validation fails. This
helps release managers quickly diagnose and fix packaging issues
without needing to manually re-run twine.
---
scripts/apache_release.py | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/scripts/apache_release.py b/scripts/apache_release.py
index 3df879dc..a33a7ab7 100644
--- a/scripts/apache_release.py
+++ b/scripts/apache_release.py
@@ -622,15 +622,24 @@ def _verify_wheel_with_twine(wheel_path: str) -> bool:
"""Verify wheel metadata and package validity using twine."""
print(f" Verifying wheel with twine: {os.path.basename(wheel_path)}")
- _run_command(
- ["twine", "check", wheel_path],
- description="",
- error_message="Twine metadata validation failed",
- success_message="Twine check passed",
- )
-
- print(" ✓ Wheel metadata is valid")
- return True
+ try:
+ subprocess.run(
+ ["twine", "check", wheel_path],
+ check=True,
+ capture_output=True,
+ text=True,
+ )
+ print(" ✓ Twine check passed")
+ print(" ✓ Wheel metadata is valid")
+ return True
+ except subprocess.CalledProcessError as e:
+ print("\n❌ Twine metadata validation failed\n")
+ print("Twine output:")
+ if e.stdout:
+ print(e.stdout)
+ if e.stderr:
+ print(e.stderr)
+ _fail("Wheel failed twine validation - see output above for details")
# ============================================================================
(burr) 03/08: Add twine verification to wheel build process
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 9fb724fe640b1536fd509934ed01cf3762d8c9b1
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 20:43:40 2026 -0800
Add twine verification to wheel build process
Add twine check to validate wheel metadata before signing and release.
This catches packaging issues like malformed metadata, missing long
descriptions, or invalid entry points early in the release process.
---
scripts/apache_release.py | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/scripts/apache_release.py b/scripts/apache_release.py
index d4c28afc..3df879dc 100644
--- a/scripts/apache_release.py
+++ b/scripts/apache_release.py
@@ -134,10 +134,10 @@ def _validate_environment_for_command(args) -> None:
command_requirements = {
"archive": ["git", "gpg"],
"sdist": ["git", "gpg", "flit"],
- "wheel": ["git", "gpg", "flit", "node", "npm"],
+ "wheel": ["git", "gpg", "flit", "node", "npm", "twine"],
"upload": ["git", "gpg", "svn"],
- "all": ["git", "gpg", "flit", "node", "npm", "svn"],
- "verify": ["git", "gpg"],
+ "all": ["git", "gpg", "flit", "node", "npm", "svn", "twine"],
+ "verify": ["git", "gpg", "twine"],
}
required_tools = command_requirements.get(args.command, ["git", "gpg"])
@@ -165,6 +165,8 @@ def _validate_environment_for_command(args) -> None:
for tool in missing_tools:
if tool == "flit":
print(f" • {tool}: Install with 'pip install flit'")
+ elif tool == "twine":
+ print(f" • {tool}: Install with 'pip install twine'")
elif tool in ["node", "npm"]:
print(f" • {tool}: Install from https://nodejs.org/")
else:
@@ -616,6 +618,21 @@ def _verify_wheel(wheel_path: str) -> bool:
return False
+def _verify_wheel_with_twine(wheel_path: str) -> bool:
+ """Verify wheel metadata and package validity using twine."""
+ print(f" Verifying wheel with twine: {os.path.basename(wheel_path)}")
+
+ _run_command(
+ ["twine", "check", wheel_path],
+ description="",
+ error_message="Twine metadata validation failed",
+ success_message="Twine check passed",
+ )
+
+ print(" ✓ Wheel metadata is valid")
+ return True
+
+
# ============================================================================
# Upload to Apache SVN
# ============================================================================
@@ -786,13 +803,17 @@ def cmd_wheel(args) -> bool:
wheel_path = _build_wheel_from_current_dir(args.version, args.output_dir)
- print("\nSigning wheel...")
- _sign_artifact(wheel_path)
+ print("\nVerifying wheel with twine...")
+ if not _verify_wheel_with_twine(wheel_path):
+ _fail("Twine verification failed!")
- print("\nVerifying wheel...")
+ print("\nVerifying wheel contents...")
if not _verify_wheel(wheel_path):
_fail("Wheel verification failed!")
+ print("\nSigning wheel...")
+ _sign_artifact(wheel_path)
+
if not _verify_artifact_complete(wheel_path):
_fail("Wheel signature/checksum verification failed!")
@@ -872,6 +893,8 @@ def cmd_all(args) -> bool:
# Step 3: Build wheel
_print_step(3, 4, "Building wheel")
wheel_path = _build_wheel_from_current_dir(args.version, args.output_dir)
+ if not _verify_wheel_with_twine(wheel_path):
+ _fail("Twine verification failed!")
_sign_artifact(wheel_path)
if not _verify_wheel(wheel_path) or not _verify_artifact_complete(wheel_path):
_fail("Wheel verification failed!")
(burr) 01/08: Replace non-standard license headers in 6 notebooks
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 44719962a7b39ae82de7d1ba7d2b2eebf1317ca3
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 20:40:38 2026 -0800
Replace non-standard license headers in 6 notebooks
Replace "Copyright YEAR Apache Software Foundation" format with the
Apache-recommended "Licensed to the Apache Software Foundation" format.
The copyright year format is not standard for ASF projects.
---
examples/deep-researcher/notebook.ipynb | 28 +++++------------
examples/email-assistant/notebook.ipynb | 16 +---------
examples/hello-world-counter/notebook.ipynb | 16 +---------
examples/multi-modal-chatbot/burr_demo.ipynb | 46 ++++++++++------------------
examples/multi-modal-chatbot/notebook.ipynb | 16 +---------
examples/streaming-fastapi/notebook.ipynb | 16 +---------
6 files changed, 27 insertions(+), 111 deletions(-)
diff --git a/examples/deep-researcher/notebook.ipynb b/examples/deep-researcher/notebook.ipynb
index 6673870b..6243b2eb 100644
--- a/examples/deep-researcher/notebook.ipynb
+++ b/examples/deep-researcher/notebook.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "4d47e95ddd66c645"
},
{
@@ -114,8 +100,8 @@
"Requirement already satisfied: referencing>=0.28.4 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit->burr[start]) (0.36.2)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit->burr[start]) (0.24.0)\n",
"\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m A new release of pip is available: \u001B[0m\u001B[31;49m24.3.1\u001B[0m\u001B[39;49m -> \u001B[0m\u001B[32;49m25.1\u001B[0m\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m To update, run: \u001B[0m\u001B[32;49mpip install --upgrade pip\u001B[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: openai in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (1.75.0)\n",
"Requirement already satisfied: anyio<5,>=3.5.0 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from openai) (4.9.0)\n",
"Requirement already satisfied: distro<2,>=1.7.0 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from openai) (1.9.0)\n",
@@ -133,8 +119,8 @@
"Requirement already satisfied: pydantic-core==2.33.1 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from pydantic<3,>=1.9.0->openai) (2.33.1)\n",
"Requirement already satisfied: typing-inspection>=0.4.0 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from pydantic<3,>=1.9.0->openai) (0.4.0)\n",
"\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m A new release of pip is available: \u001B[0m\u001B[31;49m24.3.1\u001B[0m\u001B[39;49m -> \u001B[0m\u001B[32;49m25.1\u001B[0m\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m To update, run: \u001B[0m\u001B[32;49mpip install --upgrade pip\u001B[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Requirement already satisfied: tavily-python in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (0.5.4)\n",
"Requirement already satisfied: requests in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from tavily-python) (2.32.3)\n",
"Requirement already satisfied: tiktoken>=0.5.1 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from tavily-python) (0.9.0)\n",
@@ -150,8 +136,8 @@
"Requirement already satisfied: sniffio>=1.1 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from anyio->httpx->tavily-python) (1.3.1)\n",
"Requirement already satisfied: typing_extensions>=4.5 in /home/maggie/.pyenv/versions/3.12.9/lib/python3.12/site-packages (from anyio->httpx->tavily-python) (4.13.2)\n",
"\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m A new release of pip is available: \u001B[0m\u001B[31;49m24.3.1\u001B[0m\u001B[39;49m -> \u001B[0m\u001B[32;49m25.1\u001B[0m\n",
- "\u001B[1m[\u001B[0m\u001B[34;49mnotice\u001B[0m\u001B[1;39;49m]\u001B[0m\u001B[39;49m To update, run: \u001B[0m\u001B[32;49mpip install --upgrade pip\u001B[0m\n"
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1\u001b[0m\n",
+ "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
]
}
],
diff --git a/examples/email-assistant/notebook.ipynb b/examples/email-assistant/notebook.ipynb
index cbe0adfc..b8e423db 100644
--- a/examples/email-assistant/notebook.ipynb
+++ b/examples/email-assistant/notebook.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "b12d533ee9ffae9"
},
{
diff --git a/examples/hello-world-counter/notebook.ipynb b/examples/hello-world-counter/notebook.ipynb
index e9296025..2a94846f 100644
--- a/examples/hello-world-counter/notebook.ipynb
+++ b/examples/hello-world-counter/notebook.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "62688b26eff3080f"
},
{
diff --git a/examples/multi-modal-chatbot/burr_demo.ipynb b/examples/multi-modal-chatbot/burr_demo.ipynb
index 5af9f21f..5f26a6f5 100644
--- a/examples/multi-modal-chatbot/burr_demo.ipynb
+++ b/examples/multi-modal-chatbot/burr_demo.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "f19821bfb84682cd"
},
{
@@ -720,21 +706,21 @@
"evalue": "Demo error",
"output_type": "error",
"traceback": [
- "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
- "\u001B[0;31mValueError\u001B[0m Traceback (most recent call last)",
- "Cell \u001B[0;32mIn[4], line 5\u001B[0m\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mquit\u001B[39m\u001B[38;5;124m\"\u001B[39m \u001B[38;5;241m==\u001B[39m user_input\u001B[38;5;241m.\u001B[39mlower():\n\u001B[1;32m 4\u001B[0m \u001B[38;5;28;01mbreak\u001B[39;00m\n\u001B[0;32m----> 5\u001B[0m last_action, action_result, app_state \u001B[38;5;241m=\u001B[39m \u001B[43mapp\u001B[49m\u001B[38;5;241;43m.\u001B[39 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/telemetry.py:276\u001B[0m, in \u001B[0;36mcapture_function_usage.<locals>.wrapped_fn\u001B[0;34m(*args, **kwargs)\u001B[0m\n\u001B[1;32m 273\u001B[0m \u001B[38;5;129m@functools\u001B[39m\u001B[38;5;241m.\u001B[39mwraps(call_fn)\n\u001B[1;32m 274\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mwrapped_fn\u001B[39m(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[1;32m 27 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:616\u001B[0m, in \u001B[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001B[0;34m(app_self, *args, **kwargs)\u001B[0m\n\u001B[1;32m 614\u001B[0m exc \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 615\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 616\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mfn\u001B[49m\u001B[43m(\u001B[49m\u001B[43m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:1168\u001B[0m, in \u001B[0;36mApplication.run\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 1166\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[1;32m 1167\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m-> 1168\u001B[0m \u001B[38;5;28;43mnext\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mgen\u001B[49m\u001B[43m)\u001B[49m\n\u001B[ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:1111\u001B[0m, in \u001B[0;36mApplication.iterate\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 1108\u001B[0m prior_action: Optional[Action] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 1109\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mhas_next_action():\n\u001B[1;32m 1110\u001B[0m \u001B[38;5;66;0 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:616\u001B[0m, in \u001B[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001B[0;34m(app_self, *args, **kwargs)\u001B[0m\n\u001B[1;32m 614\u001B[0m exc \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 615\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 616\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mfn\u001B[49m\u001B[43m(\u001B[49m\u001B[43m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:773\u001B[0m, in \u001B[0;36mApplication.step\u001B[0;34m(self, inputs)\u001B[0m\n\u001B[1;32m 770\u001B[0m \u001B[38;5;66;03m# we need to increment the sequence before we start computing\u001B[39;00m\n\u001B[1;32m 771\u001B[0m \u001B[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001B[39;00m\n\u001B[1;32m 772\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_increment_sequ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:826\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 824\u001B[0m exc \u001B[38;5;241m=\u001B[39m e\n\u001B[1;32m 825\u001B[0m logger\u001B[38;5;241m.\u001B[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_state, inputs))\n\u001B[0;32m--> 826\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m e\n\ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:812\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 810\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 811\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m next_action\u001B[38;5;241m.\u001B[39msingle_step:\n\u001B[0;32m--> 812\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m \u001B[43m_run_single_step_action\u001B[49m\u001B[43m(\u001B[49m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:252\u001B[0m, in \u001B[0;36m_run_single_step_action\u001B[0;34m(action, state, inputs)\u001B[0m\n\u001B[1;32m 249\u001B[0m \u001B[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001B[39;00m\n\u001B[1;32m 250\u001B[0m action\u001B[38;5;241m.\u001B[39mvalidate_inputs(inputs)\n\u001B[1;32m 251\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m _adjust_single_step_output(\n\u001B[0;32m--> 2 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/action.py:639\u001B[0m, in \u001B[0;36mFunctionBasedAction.run_and_update\u001B[0;34m(self, state, **run_kwargs)\u001B[0m\n\u001B[1;32m 638\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mrun_and_update\u001B[39m(\u001B[38;5;28mself\u001B[39m, state: State, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mrun_kwargs) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28mtuple\u001B[39m[\u001B[38;5;28mdic [...]
- "Cell \u001B[0;32mIn[1], line 94\u001B[0m, in \u001B[0;36mimage_response\u001B[0;34m(state, model)\u001B[0m\n\u001B[1;32m 91\u001B[0m \u001B[38;5;129m@action\u001B[39m(reads\u001B[38;5;241m=\u001B[39m[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mprompt\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mchat_history\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mmode\u001B[39m\u001B[38;5;124m\"\u001B[39m], writes [...]
- "\u001B[0;31mValueError\u001B[0m: Demo error"
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[4], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquit\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m==\u001b[39m user_input\u001b[38;5;241m.\u001b[39mlower():\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m last_action, action_result, app_state \u001b[38;5;241m=\u001b[39m \u001b[43mapp\u001b[49m\u001b[38;5;241;43m.\u001b[39 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/telemetry.py:276\u001b[0m, in \u001b[0;36mcapture_function_usage.<locals>.wrapped_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 273\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(call_fn)\n\u001b[1;32m 274\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapped_fn\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 27 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:616\u001b[0m, in \u001b[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001b[0;34m(app_self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 614\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 615\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 616\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:1168\u001b[0m, in \u001b[0;36mApplication.run\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 1166\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 1167\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1168\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:1111\u001b[0m, in \u001b[0;36mApplication.iterate\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 1108\u001b[0m prior_action: Optional[Action] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1109\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhas_next_action():\n\u001b[1;32m 1110\u001b[0m \u001b[38;5;66;0 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:616\u001b[0m, in \u001b[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001b[0;34m(app_self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 614\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 615\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 616\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:773\u001b[0m, in \u001b[0;36mApplication.step\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 770\u001b[0m \u001b[38;5;66;03m# we need to increment the sequence before we start computing\u001b[39;00m\n\u001b[1;32m 771\u001b[0m \u001b[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001b[39;00m\n\u001b[1;32m 772\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_increment_sequ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:826\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 824\u001b[0m exc \u001b[38;5;241m=\u001b[39m e\n\u001b[1;32m 825\u001b[0m logger\u001b[38;5;241m.\u001b[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state, inputs))\n\u001b[0;32m--> 826\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:812\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 810\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 811\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m next_action\u001b[38;5;241m.\u001b[39msingle_step:\n\u001b[0;32m--> 812\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m \u001b[43m_run_single_step_action\u001b[49m\u001b[43m(\u001b[49m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:252\u001b[0m, in \u001b[0;36m_run_single_step_action\u001b[0;34m(action, state, inputs)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001b[39;00m\n\u001b[1;32m 250\u001b[0m action\u001b[38;5;241m.\u001b[39mvalidate_inputs(inputs)\n\u001b[1;32m 251\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m _adjust_single_step_output(\n\u001b[0;32m--> 2 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/action.py:639\u001b[0m, in \u001b[0;36mFunctionBasedAction.run_and_update\u001b[0;34m(self, state, **run_kwargs)\u001b[0m\n\u001b[1;32m 638\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrun_and_update\u001b[39m(\u001b[38;5;28mself\u001b[39m, state: State, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mrun_kwargs) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mdic [...]
+ "Cell \u001b[0;32mIn[1], line 94\u001b[0m, in \u001b[0;36mimage_response\u001b[0;34m(state, model)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;129m@action\u001b[39m(reads\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprompt\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchat_history\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode\u001b[39m\u001b[38;5;124m\"\u001b[39m], writes [...]
+ "\u001b[0;31mValueError\u001b[0m: Demo error"
]
}
],
diff --git a/examples/multi-modal-chatbot/notebook.ipynb b/examples/multi-modal-chatbot/notebook.ipynb
index 53753899..87c0084a 100644
--- a/examples/multi-modal-chatbot/notebook.ipynb
+++ b/examples/multi-modal-chatbot/notebook.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "d1d5e86fb8bcd92f"
},
{
diff --git a/examples/streaming-fastapi/notebook.ipynb b/examples/streaming-fastapi/notebook.ipynb
index a4a813ee..fcb411c4 100644
--- a/examples/streaming-fastapi/notebook.ipynb
+++ b/examples/streaming-fastapi/notebook.ipynb
@@ -5,21 +5,7 @@
"cell_type": "code",
"outputs": [],
"execution_count": null,
- "source": [
- "# Copyright 2026 Apache Software Foundation\n",
- "#\n",
- "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
- "# you may not use this file except in compliance with the License.\n",
- "# You may obtain a copy of the License at\n",
- "#\n",
- "# http://www.apache.org/licenses/LICENSE-2.0\n",
- "#\n",
- "# Unless required by applicable law or agreed to in writing, software\n",
- "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
- "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
- "# See the License for the specific language governing permissions and\n",
- "# limitations under the License."
- ],
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
"id": "8b8a0b32aa99226c"
},
{
(burr) 05/08: Add twine-check command for voter verification
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 3a4ff0702a69eaea682017f1c420c30bed4adff5
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 20:44:53 2026 -0800
Add twine-check command for voter verification
Add twine-check subcommand to allow voters to independently verify wheel
metadata during release voting. This gives voters an additional tool to
validate package quality beyond signature and license checks.
---
scripts/verify_apache_artifacts.py | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/scripts/verify_apache_artifacts.py b/scripts/verify_apache_artifacts.py
index f4861d32..61228e7a 100755
--- a/scripts/verify_apache_artifacts.py
+++ b/scripts/verify_apache_artifacts.py
@@ -40,6 +40,7 @@ Usage:
"""
import argparse
+import glob
import hashlib
import os
import shutil
@@ -610,6 +611,35 @@ def cmd_list_contents(args) -> None:
list_contents(args.artifact)
+def cmd_twine_check(args) -> bool:
+ """Verify wheel metadata with twine."""
+ _print_section("Verifying Wheel Metadata with Twine")
+
+ wheel_pattern = f"{args.artifacts_dir}/apache_burr-*.whl"
+ wheel_files = glob.glob(wheel_pattern)
+
+ if not wheel_files:
+ print(f"❌ No wheel found matching: {wheel_pattern}")
+ return False
+
+ for wheel_path in wheel_files:
+ print(f"\nChecking {os.path.basename(wheel_path)}...")
+ try:
+ subprocess.run(
+ ["twine", "check", wheel_path],
+ check=True,
+ capture_output=True,
+ text=True,
+ )
+ print(f" ✓ {os.path.basename(wheel_path)} metadata is valid")
+ except subprocess.CalledProcessError as e:
+ print(f" ✗ Twine check failed: {e.stderr}")
+ return False
+
+ print("\n✅ All wheels passed twine validation")
+ return True
+
+
# ============================================================================
# CLI Entry Point
# ============================================================================
@@ -683,6 +713,12 @@ Examples:
help="Generate report but don't fail on license issues",
)
+ # twine-check subcommand
+ twine_parser = subparsers.add_parser("twine-check", help="Verify wheel metadata with twine")
+ twine_parser.add_argument(
+ "--artifacts-dir", default="dist", help="Directory containing artifacts (default: dist)"
+ )
+
args = parser.parse_args()
# Dispatch to command handler
@@ -697,6 +733,8 @@ Examples:
success = cmd_licenses(args)
elif args.command == "all":
success = cmd_all(args)
+ elif args.command == "twine-check":
+ success = cmd_twine_check(args)
else:
_fail(f"Unknown command: {args.command}")
except KeyboardInterrupt:
(burr) 02/08: Add Apache license headers to 33 notebooks
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit cbfb0aeb05337a362ba7c3345a27fe54a2efc0cf
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 20:42:55 2026 -0800
Add Apache license headers to 33 notebooks
Add standard Apache license headers as first code cell to all notebooks
that were missing them. Apache releases require proper license headers
in all distributed files for IP compliance.
---
docs/examples/chatbots/basic-chatbot.ipynb | 8 +++++
docs/examples/chatbots/gpt-like-chatbot.ipynb | 34 +++++++++++--------
docs/examples/chatbots/rag-chatbot-hamilton.ipynb | 8 +++++
.../simple/choose-your-own-adventure.ipynb | 39 +++++++++++++---------
docs/examples/simple/counter.ipynb | 8 +++++
docs/examples/simple/cowsay.ipynb | 8 +++++
examples/adaptive-crag/notebook.ipynb | 7 ++++
.../graph_db_example/ingest_notebook.ipynb | 8 +++++
.../graph_db_example/notebook.ipynb | 8 +++++
.../simple_example/notebook.ipynb | 8 +++++
examples/custom-serde/notebook.ipynb | 8 +++++
examples/hamilton-integration/notebook.ipynb | 7 ++++
examples/haystack-integration/notebook.ipynb | 7 ++++
examples/image-telephone/notebook.ipynb | 8 +++++
examples/instructor-gemini-flash/notebook.ipynb | 7 ++++
examples/llm-adventure-game/notebook.ipynb | 8 +++++
.../hamilton/notebook.ipynb | 8 +++++
.../multi-agent-collaboration/lcel/notebook.ipynb | 8 +++++
examples/opentelemetry/notebook.ipynb | 8 +++++
examples/other-examples/cowsay/notebook.ipynb | 8 +++++
examples/parallelism/notebook.ipynb | 8 +++++
examples/rag-lancedb-ingestion/notebook.ipynb | 7 ++++
examples/ray/notebook.ipynb | 8 +++++
examples/recursive/notebook.ipynb | 8 +++++
examples/simple-chatbot-intro/notebook.ipynb | 8 +++++
examples/streaming-overview/notebook.ipynb | 8 +++++
examples/talks/data_for_ai_oct_2024.ipynb | 8 +++++
examples/test-case-creation/notebook.ipynb | 8 +++++
examples/tool-calling/notebook.ipynb | 8 +++++
examples/tracing-and-spans/burr_otel_demo.ipynb | 8 +++++
examples/tracing-and-spans/notebook.ipynb | 8 +++++
examples/typed-state/notebook.ipynb | 8 +++++
.../youtube-to-social-media-post/notebook.ipynb | 7 ++++
33 files changed, 286 insertions(+), 29 deletions(-)
diff --git a/docs/examples/chatbots/basic-chatbot.ipynb b/docs/examples/chatbots/basic-chatbot.ipynb
index db959573..1688a5af 100644
--- a/docs/examples/chatbots/basic-chatbot.ipynb
+++ b/docs/examples/chatbots/basic-chatbot.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "72xar2zywy",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "61278d3e-958b-49ee-94b8-2ee1f5e58773",
diff --git a/docs/examples/chatbots/gpt-like-chatbot.ipynb b/docs/examples/chatbots/gpt-like-chatbot.ipynb
index dd875bc6..7a4351b1 100644
--- a/docs/examples/chatbots/gpt-like-chatbot.ipynb
+++ b/docs/examples/chatbots/gpt-like-chatbot.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "y14cel7pcg",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "f63df3e4b8d4fdba",
@@ -680,19 +688,19 @@
"evalue": "Demo error",
"output_type": "error",
"traceback": [
- "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
- "\u001B[0;31mValueError\u001B[0m Traceback (most recent call last)",
- "Cell \u001B[0;32mIn[12], line 5\u001B[0m\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mquit\u001B[39m\u001B[38;5;124m\"\u001B[39m \u001B[38;5;241m==\u001B[39m user_input\u001B[38;5;241m.\u001B[39mlower():\n\u001B[1;32m 4\u001B[0m \u001B[38;5;28;01mbreak\u001B[39;00m\n\u001B[0;32m----> 5\u001B[0m last_action, action_result, app_state \u001B[38;5;241m=\u001B[39m \u001B[43mapp\u001B[49m\u001B[38;5;241;43m.\u001B[3 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/telemetry.py:273\u001B[0m, in \u001B[0;36mcapture_function_usage.<locals>.wrapped_fn\u001B[0;34m(*args, **kwargs)\u001B[0m\n\u001B[1;32m 270\u001B[0m \u001B[38;5;129m@functools\u001B[39m\u001B[38;5;241m.\u001B[39mwraps(call_fn)\n\u001B[1;32m 271\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mwrapped_fn\u001B[39m(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[1;32m 27 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:878\u001B[0m, in \u001B[0;36mApplication.run\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 876\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[1;32m 877\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 878\u001B[0m \u001B[38;5;28;43mnext\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mgen\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:823\u001B[0m, in \u001B[0;36mApplication.iterate\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 820\u001B[0m prior_action: Optional[Action] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 821\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mhas_next_action():\n\u001B[1;32m 822\u001B[0m \u001B[38;5;66;03 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:495\u001B[0m, in \u001B[0;36mApplication.step\u001B[0;34m(self, inputs)\u001B[0m\n\u001B[1;32m 492\u001B[0m \u001B[38;5;66;03m# we need to increment the sequence before we start computing\u001B[39;00m\n\u001B[1;32m 493\u001B[0m \u001B[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001B[39;00m\n\u001B[1;32m 494\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_increment_sequ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:548\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 546\u001B[0m exc \u001B[38;5;241m=\u001B[39m e\n\u001B[1;32m 547\u001B[0m logger\u001B[38;5;241m.\u001B[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_state, inputs))\n\u001B[0;32m--> 548\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m e\n\ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:534\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 532\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 533\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m next_action\u001B[38;5;241m.\u001B[39msingle_step:\n\u001B[0;32m--> 534\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m \u001B[43m_run_single_step_action\u001B[49m\u001B[43m(\u001B[49m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:233\u001B[0m, in \u001B[0;36m_run_single_step_action\u001B[0;34m(action, state, inputs)\u001B[0m\n\u001B[1;32m 230\u001B[0m \u001B[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001B[39;00m\n\u001B[1;32m 231\u001B[0m action\u001B[38;5;241m.\u001B[39mvalidate_inputs(inputs)\n\u001B[1;32m 232\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m _adjust_single_step_output(\n\u001B[0;32m--> 2 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/action.py:533\u001B[0m, in \u001B[0;36mFunctionBasedAction.run_and_update\u001B[0;34m(self, state, **run_kwargs)\u001B[0m\n\u001B[1;32m 532\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mrun_and_update\u001B[39m(\u001B[38;5;28mself\u001B[39m, state: State, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mrun_kwargs) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28mtuple\u001B[39m[\u001B[38;5;28mdic [...]
- "Cell \u001B[0;32mIn[8], line 94\u001B[0m, in \u001B[0;36mimage_response\u001B[0;34m(state, model)\u001B[0m\n\u001B[1;32m 91\u001B[0m \u001B[38;5;129m@action\u001B[39m(reads\u001B[38;5;241m=\u001B[39m[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mprompt\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mchat_history\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mmode\u001B[39m\u001B[38;5;124m\"\u001B[39m], writes [...]
- "\u001B[0;31mValueError\u001B[0m: Demo error"
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[12], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquit\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m==\u001b[39m user_input\u001b[38;5;241m.\u001b[39mlower():\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m last_action, action_result, app_state \u001b[38;5;241m=\u001b[39m \u001b[43mapp\u001b[49m\u001b[38;5;241;43m.\u001b[3 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/telemetry.py:273\u001b[0m, in \u001b[0;36mcapture_function_usage.<locals>.wrapped_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 270\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(call_fn)\n\u001b[1;32m 271\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapped_fn\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 27 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:878\u001b[0m, in \u001b[0;36mApplication.run\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 876\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 878\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:823\u001b[0m, in \u001b[0;36mApplication.iterate\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 820\u001b[0m prior_action: Optional[Action] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 821\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhas_next_action():\n\u001b[1;32m 822\u001b[0m \u001b[38;5;66;03 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:495\u001b[0m, in \u001b[0;36mApplication.step\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 492\u001b[0m \u001b[38;5;66;03m# we need to increment the sequence before we start computing\u001b[39;00m\n\u001b[1;32m 493\u001b[0m \u001b[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001b[39;00m\n\u001b[1;32m 494\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_increment_sequ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:548\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 546\u001b[0m exc \u001b[38;5;241m=\u001b[39m e\n\u001b[1;32m 547\u001b[0m logger\u001b[38;5;241m.\u001b[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state, inputs))\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:534\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 533\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m next_action\u001b[38;5;241m.\u001b[39msingle_step:\n\u001b[0;32m--> 534\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m \u001b[43m_run_single_step_action\u001b[49m\u001b[43m(\u001b[49m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:233\u001b[0m, in \u001b[0;36m_run_single_step_action\u001b[0;34m(action, state, inputs)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001b[39;00m\n\u001b[1;32m 231\u001b[0m action\u001b[38;5;241m.\u001b[39mvalidate_inputs(inputs)\n\u001b[1;32m 232\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m _adjust_single_step_output(\n\u001b[0;32m--> 2 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/action.py:533\u001b[0m, in \u001b[0;36mFunctionBasedAction.run_and_update\u001b[0;34m(self, state, **run_kwargs)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrun_and_update\u001b[39m(\u001b[38;5;28mself\u001b[39m, state: State, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mrun_kwargs) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mdic [...]
+ "Cell \u001b[0;32mIn[8], line 94\u001b[0m, in \u001b[0;36mimage_response\u001b[0;34m(state, model)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;129m@action\u001b[39m(reads\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprompt\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchat_history\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode\u001b[39m\u001b[38;5;124m\"\u001b[39m], writes [...]
+ "\u001b[0;31mValueError\u001b[0m: Demo error"
]
}
],
diff --git a/docs/examples/chatbots/rag-chatbot-hamilton.ipynb b/docs/examples/chatbots/rag-chatbot-hamilton.ipynb
index d8c54096..a537d1ca 100644
--- a/docs/examples/chatbots/rag-chatbot-hamilton.ipynb
+++ b/docs/examples/chatbots/rag-chatbot-hamilton.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "8gtpynaajbp",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "1622e1563a35aa32",
diff --git a/docs/examples/simple/choose-your-own-adventure.ipynb b/docs/examples/simple/choose-your-own-adventure.ipynb
index 78aab4f8..6a3bea61 100644
--- a/docs/examples/simple/choose-your-own-adventure.ipynb
+++ b/docs/examples/simple/choose-your-own-adventure.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -262,22 +269,22 @@
"evalue": "Interrupted by user",
"output_type": "error",
"traceback": [
- "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
- "\u001B[0;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)",
- "Cell \u001B[0;32mIn[15], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m action, state, result \u001B[38;5;241m=\u001B[39m \u001B[43mapp\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mrun\u001B[49m\u001B[43m(\u001B[49m\u001B[43mhalt_after\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mwin\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n",
- "File \u001B[0;32m~/dagworks/burr/burr/telemetry.py:276\u001B[0m, in \u001B[0;36mcapture_function_usage.<locals>.wrapped_fn\u001B[0;34m(*args, **kwargs)\u001B[0m\n\u001B[1;32m 273\u001B[0m \u001B[38;5;129m@functools\u001B[39m\u001B[38;5;241m.\u001B[39mwraps(call_fn)\n\u001B[1;32m 274\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mwrapped_fn\u001B[39m(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[1;32m 27 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:672\u001B[0m, in \u001B[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001B[0;34m(app_self, *args, **kwargs)\u001B[0m\n\u001B[1;32m 670\u001B[0m exc \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 671\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 672\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mfn\u001B[49m\u001B[43m(\u001B[49m\u001B[43m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:1243\u001B[0m, in \u001B[0;36mApplication.run\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 1241\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[1;32m 1242\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m-> 1243\u001B[0m \u001B[38;5;28;43mnext\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mgen\u001B[49m\u001B[43m)\u001B[49m\n\u001B[ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:1186\u001B[0m, in \u001B[0;36mApplication.iterate\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 1183\u001B[0m prior_action: Optional[Action] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 1184\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mhas_next_action():\n\u001B[1;32m 1185\u001B[0m \u001B[38;5;66;0 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:672\u001B[0m, in \u001B[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001B[0;34m(app_self, *args, **kwargs)\u001B[0m\n\u001B[1;32m 670\u001B[0m exc \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 671\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 672\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mfn\u001B[49m\u001B[43m(\u001B[49m\u001B[43m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:843\u001B[0m, in \u001B[0;36mApplication.step\u001B[0;34m(self, inputs)\u001B[0m\n\u001B[1;32m 840\u001B[0m \u001B[38;5;66;03m# we need to increment the sequence before we start computing\u001B[39;00m\n\u001B[1;32m 841\u001B[0m \u001B[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001B[39;00m\n\u001B[1;32m 842\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_increment_sequ [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:885\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 883\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 884\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m next_action\u001B[38;5;241m.\u001B[39msingle_step:\n\u001B[0;32m--> 885\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m \u001B[43m_run_single_step_action\u001B[49m\u001B[43m(\u001B[49m [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:287\u001B[0m, in \u001B[0;36m_run_single_step_action\u001B[0;34m(action, state, inputs)\u001B[0m\n\u001B[1;32m 284\u001B[0m \u001B[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001B[39;00m\n\u001B[1;32m 285\u001B[0m action\u001B[38;5;241m.\u001B[39mvalidate_inputs(inputs)\n\u001B[1;32m 286\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m _adjust_single_step_output(\n\u001B[0;32m--> 2 [...]
- "File \u001B[0;32m~/dagworks/burr/burr/core/action.py:655\u001B[0m, in \u001B[0;36mFunctionBasedAction.run_and_update\u001B[0;34m(self, state, **run_kwargs)\u001B[0m\n\u001B[1;32m 654\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mrun_and_update\u001B[39m(\u001B[38;5;28mself\u001B[39m, state: State, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mrun_kwargs) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28mtuple\u001B[39m[\u001B[38;5;28mdic [...]
- "Cell \u001B[0;32mIn[12], line 12\u001B[0m, in \u001B[0;36mprompt_for_challenge\u001B[0;34m(state)\u001B[0m\n\u001B[1;32m 10\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"Request user input to solve the current challenge\"\"\"\u001B[39;00m\n\u001B[1;32m 11\u001B[0m current_challenge \u001B[38;5;241m=\u001B[39m state[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mcurrent_challenge\u001B[39m\u001B[38;5;124m\"\u001B[39m]\n\u001B[0;32m---> 12\u001B[0m user_response \ [...]
- "File \u001B[0;32m~/.pyenv/versions/burr-py310/lib/python3.10/site-packages/ipykernel/kernelbase.py:1270\u001B[0m, in \u001B[0;36mKernel.raw_input\u001B[0;34m(self, prompt)\u001B[0m\n\u001B[1;32m 1268\u001B[0m msg \u001B[38;5;241m=\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mraw_input was called, but this frontend does not support input requests.\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m 1269\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m StdinNotImpl [...]
- "File \u001B[0;32m~/.pyenv/versions/burr-py310/lib/python3.10/site-packages/ipykernel/kernelbase.py:1313\u001B[0m, in \u001B[0;36mKernel._input_request\u001B[0;34m(self, prompt, ident, parent, password)\u001B[0m\n\u001B[1;32m 1310\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mKeyboardInterrupt\u001B[39;00m:\n\u001B[1;32m 1311\u001B[0m \u001B[38;5;66;03m# re-raise KeyboardInterrupt, to truncate traceback\u001B[39;00m\n\u001B[1;32m 1312\u001B[0m msg [...]
- "\u001B[0;31mKeyboardInterrupt\u001B[0m: Interrupted by user"
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[15], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m action, state, result \u001b[38;5;241m=\u001b[39m \u001b[43mapp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhalt_after\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwin\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/dagworks/burr/burr/telemetry.py:276\u001b[0m, in \u001b[0;36mcapture_function_usage.<locals>.wrapped_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 273\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(call_fn)\n\u001b[1;32m 274\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapped_fn\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 27 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:672\u001b[0m, in \u001b[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001b[0;34m(app_self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 670\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 671\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 672\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:1243\u001b[0m, in \u001b[0;36mApplication.run\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 1241\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 1242\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1243\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:1186\u001b[0m, in \u001b[0;36mApplication.iterate\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 1183\u001b[0m prior_action: Optional[Action] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1184\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhas_next_action():\n\u001b[1;32m 1185\u001b[0m \u001b[38;5;66;0 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:672\u001b[0m, in \u001b[0;36m_call_execute_method_pre_post.__call__.<locals>.wrapper_sync\u001b[0;34m(app_self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 670\u001b[0m exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 671\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 672\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:843\u001b[0m, in \u001b[0;36mApplication.step\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 840\u001b[0m \u001b[38;5;66;03m# we need to increment the sequence before we start computing\u001b[39;00m\n\u001b[1;32m 841\u001b[0m \u001b[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001b[39;00m\n\u001b[1;32m 842\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_increment_sequ [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:885\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 883\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 884\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m next_action\u001b[38;5;241m.\u001b[39msingle_step:\n\u001b[0;32m--> 885\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m \u001b[43m_run_single_step_action\u001b[49m\u001b[43m(\u001b[49m [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:287\u001b[0m, in \u001b[0;36m_run_single_step_action\u001b[0;34m(action, state, inputs)\u001b[0m\n\u001b[1;32m 284\u001b[0m \u001b[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001b[39;00m\n\u001b[1;32m 285\u001b[0m action\u001b[38;5;241m.\u001b[39mvalidate_inputs(inputs)\n\u001b[1;32m 286\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m _adjust_single_step_output(\n\u001b[0;32m--> 2 [...]
+ "File \u001b[0;32m~/dagworks/burr/burr/core/action.py:655\u001b[0m, in \u001b[0;36mFunctionBasedAction.run_and_update\u001b[0;34m(self, state, **run_kwargs)\u001b[0m\n\u001b[1;32m 654\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrun_and_update\u001b[39m(\u001b[38;5;28mself\u001b[39m, state: State, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mrun_kwargs) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mdic [...]
+ "Cell \u001b[0;32mIn[12], line 12\u001b[0m, in \u001b[0;36mprompt_for_challenge\u001b[0;34m(state)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Request user input to solve the current challenge\"\"\"\u001b[39;00m\n\u001b[1;32m 11\u001b[0m current_challenge \u001b[38;5;241m=\u001b[39m state[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcurrent_challenge\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m---> 12\u001b[0m user_response \ [...]
+ "File \u001b[0;32m~/.pyenv/versions/burr-py310/lib/python3.10/site-packages/ipykernel/kernelbase.py:1270\u001b[0m, in \u001b[0;36mKernel.raw_input\u001b[0;34m(self, prompt)\u001b[0m\n\u001b[1;32m 1268\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraw_input was called, but this frontend does not support input requests.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1269\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m StdinNotImpl [...]
+ "File \u001b[0;32m~/.pyenv/versions/burr-py310/lib/python3.10/site-packages/ipykernel/kernelbase.py:1313\u001b[0m, in \u001b[0;36mKernel._input_request\u001b[0;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[1;32m 1310\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m:\n\u001b[1;32m 1311\u001b[0m \u001b[38;5;66;03m# re-raise KeyboardInterrupt, to truncate traceback\u001b[39;00m\n\u001b[1;32m 1312\u001b[0m msg [...]
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m: Interrupted by user"
]
}
],
diff --git a/docs/examples/simple/counter.ipynb b/docs/examples/simple/counter.ipynb
index 838940dc..1b961c3e 100644
--- a/docs/examples/simple/counter.ipynb
+++ b/docs/examples/simple/counter.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "jgwmgsmi5z",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "49dab42f",
diff --git a/docs/examples/simple/cowsay.ipynb b/docs/examples/simple/cowsay.ipynb
index a65cb543..c54886eb 100644
--- a/docs/examples/simple/cowsay.ipynb
+++ b/docs/examples/simple/cowsay.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "fjksj6jy45q",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "23493882",
diff --git a/examples/adaptive-crag/notebook.ipynb b/examples/adaptive-crag/notebook.ipynb
index 626744c4..4306c27a 100644
--- a/examples/adaptive-crag/notebook.ipynb
+++ b/examples/adaptive-crag/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb b/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb
index a56efcdd..d18436b9 100644
--- a/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb
+++ b/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "z27s4nl744c",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/conversational-rag/graph_db_example/notebook.ipynb b/examples/conversational-rag/graph_db_example/notebook.ipynb
index 45d8ba71..13758a35 100644
--- a/examples/conversational-rag/graph_db_example/notebook.ipynb
+++ b/examples/conversational-rag/graph_db_example/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "d5w7n7aa8lk",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/conversational-rag/simple_example/notebook.ipynb b/examples/conversational-rag/simple_example/notebook.ipynb
index c1256ffa..fa0d4d66 100644
--- a/examples/conversational-rag/simple_example/notebook.ipynb
+++ b/examples/conversational-rag/simple_example/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "oq9sb8jkotm",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "1622e1563a35aa32",
diff --git a/examples/custom-serde/notebook.ipynb b/examples/custom-serde/notebook.ipynb
index fbe4a9b3..825a044a 100644
--- a/examples/custom-serde/notebook.ipynb
+++ b/examples/custom-serde/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "apns7ccbyf",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/hamilton-integration/notebook.ipynb b/examples/hamilton-integration/notebook.ipynb
index f7f02164..763542b0 100644
--- a/examples/hamilton-integration/notebook.ipynb
+++ b/examples/hamilton-integration/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": 1,
diff --git a/examples/haystack-integration/notebook.ipynb b/examples/haystack-integration/notebook.ipynb
index d1067287..a96e78e5 100644
--- a/examples/haystack-integration/notebook.ipynb
+++ b/examples/haystack-integration/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/examples/image-telephone/notebook.ipynb b/examples/image-telephone/notebook.ipynb
index c6bf5d63..edf305f5 100644
--- a/examples/image-telephone/notebook.ipynb
+++ b/examples/image-telephone/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "r7i3uy9vk7",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/instructor-gemini-flash/notebook.ipynb b/examples/instructor-gemini-flash/notebook.ipynb
index 111eaa4d..580e0c8c 100644
--- a/examples/instructor-gemini-flash/notebook.ipynb
+++ b/examples/instructor-gemini-flash/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/examples/llm-adventure-game/notebook.ipynb b/examples/llm-adventure-game/notebook.ipynb
index 79285703..1a29a223 100644
--- a/examples/llm-adventure-game/notebook.ipynb
+++ b/examples/llm-adventure-game/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "tg4hpkvciy",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/multi-agent-collaboration/hamilton/notebook.ipynb b/examples/multi-agent-collaboration/hamilton/notebook.ipynb
index e0977df8..e91d2d5f 100644
--- a/examples/multi-agent-collaboration/hamilton/notebook.ipynb
+++ b/examples/multi-agent-collaboration/hamilton/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "6sjcd7v1klw",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "a80d8df22739b896",
diff --git a/examples/multi-agent-collaboration/lcel/notebook.ipynb b/examples/multi-agent-collaboration/lcel/notebook.ipynb
index 506b0327..93e8d003 100644
--- a/examples/multi-agent-collaboration/lcel/notebook.ipynb
+++ b/examples/multi-agent-collaboration/lcel/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "ggdb8jqi277",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "a80d8df22739b896",
diff --git a/examples/opentelemetry/notebook.ipynb b/examples/opentelemetry/notebook.ipynb
index f91424b0..d7800432 100644
--- a/examples/opentelemetry/notebook.ipynb
+++ b/examples/opentelemetry/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "xw8vgb7rav",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": 1,
diff --git a/examples/other-examples/cowsay/notebook.ipynb b/examples/other-examples/cowsay/notebook.ipynb
index 3cb4ee59..d4062c1f 100644
--- a/examples/other-examples/cowsay/notebook.ipynb
+++ b/examples/other-examples/cowsay/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "hm05ef0z1wg",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/parallelism/notebook.ipynb b/examples/parallelism/notebook.ipynb
index ac2f3391..5b150b22 100644
--- a/examples/parallelism/notebook.ipynb
+++ b/examples/parallelism/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "ibxhi2neov",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "f4b744ec-ce8d-4e6b-b818-d86f6a869028",
diff --git a/examples/rag-lancedb-ingestion/notebook.ipynb b/examples/rag-lancedb-ingestion/notebook.ipynb
index 06e719b1..5ee2ccae 100644
--- a/examples/rag-lancedb-ingestion/notebook.ipynb
+++ b/examples/rag-lancedb-ingestion/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
diff --git a/examples/ray/notebook.ipynb b/examples/ray/notebook.ipynb
index e3f94ce5..616434d9 100644
--- a/examples/ray/notebook.ipynb
+++ b/examples/ray/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "srtl3nofyb",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "a24201eb-2541-4ef1-bed2-14f34fe37ae7",
diff --git a/examples/recursive/notebook.ipynb b/examples/recursive/notebook.ipynb
index c1d33d58..e71ce7fc 100644
--- a/examples/recursive/notebook.ipynb
+++ b/examples/recursive/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "i224d87jsmn",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "4bb251de-463e-4156-bcfc-9078721f6a8b",
diff --git a/examples/simple-chatbot-intro/notebook.ipynb b/examples/simple-chatbot-intro/notebook.ipynb
index 5fa24b11..93ba520a 100644
--- a/examples/simple-chatbot-intro/notebook.ipynb
+++ b/examples/simple-chatbot-intro/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "ripueq9wwyn",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "61278d3e-958b-49ee-94b8-2ee1f5e58773",
diff --git a/examples/streaming-overview/notebook.ipynb b/examples/streaming-overview/notebook.ipynb
index 9319361b..0634b2b6 100644
--- a/examples/streaming-overview/notebook.ipynb
+++ b/examples/streaming-overview/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "j77l9jka9",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/talks/data_for_ai_oct_2024.ipynb b/examples/talks/data_for_ai_oct_2024.ipynb
index f5134928..49eb22f6 100644
--- a/examples/talks/data_for_ai_oct_2024.ipynb
+++ b/examples/talks/data_for_ai_oct_2024.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "1xkfukqa5p7",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "f27c0e174c8ee037",
diff --git a/examples/test-case-creation/notebook.ipynb b/examples/test-case-creation/notebook.ipynb
index d37d6ad0..61e1064a 100644
--- a/examples/test-case-creation/notebook.ipynb
+++ b/examples/test-case-creation/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "wj2m4qtpx1e",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/tool-calling/notebook.ipynb b/examples/tool-calling/notebook.ipynb
index 43689269..eb6b47b8 100644
--- a/examples/tool-calling/notebook.ipynb
+++ b/examples/tool-calling/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "8ps8bnh6lo3",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "5eebfc21-b54a-435d-84dc-b9de1d620e4e",
diff --git a/examples/tracing-and-spans/burr_otel_demo.ipynb b/examples/tracing-and-spans/burr_otel_demo.ipynb
index bbb87458..918acb85 100644
--- a/examples/tracing-and-spans/burr_otel_demo.ipynb
+++ b/examples/tracing-and-spans/burr_otel_demo.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "m7797lu1xm",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "f63df3e4b8d4fdba",
diff --git a/examples/tracing-and-spans/notebook.ipynb b/examples/tracing-and-spans/notebook.ipynb
index bb69850e..f4bff96d 100644
--- a/examples/tracing-and-spans/notebook.ipynb
+++ b/examples/tracing-and-spans/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "xfdmdmo8t2b",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "code",
"execution_count": null,
diff --git a/examples/typed-state/notebook.ipynb b/examples/typed-state/notebook.ipynb
index bd14801e..38cd8bba 100644
--- a/examples/typed-state/notebook.ipynb
+++ b/examples/typed-state/notebook.ipynb
@@ -1,5 +1,13 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "id": "x6ta2gzvqv",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"id": "8419f04e-f945-491d-9526-6aebbabbad6a",
diff --git a/examples/youtube-to-social-media-post/notebook.ipynb b/examples/youtube-to-social-media-post/notebook.ipynb
index cacaac34..a7aed43b 100644
--- a/examples/youtube-to-social-media-post/notebook.ipynb
+++ b/examples/youtube-to-social-media-post/notebook.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "code",
+ "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n [...]
+ "metadata": {},
+ "execution_count": null,
+ "outputs": []
+ },
{
"cell_type": "markdown",
"metadata": {},
(burr) 08/08: Bump version to 0.42.0
Posted by eb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ebenizzy pushed a commit to branch burr-0.42.0
in repository https://gitbox.apache.org/repos/asf/burr.git
commit 7c6329c8dd30503a7b8b755ae01c67d7dff09f85
Author: Elijah ben Izzy <eb...@salesforce.com>
AuthorDate: Sun Feb 1 21:13:04 2026 -0800
Bump version to 0.42.0
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index 2c8a7976..7080e567 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -21,7 +21,7 @@ build-backend = "flit_core.buildapi"
[project]
name = "apache-burr"
-version = "0.40.2"
+version = "0.42.0"
dependencies = [] # yes, there are none
requires-python = ">=3.9"
authors = [