From f0f2875735e757418899199d176778ad44ce0b3c Mon Sep 17 00:00:00 2001 From: Tyler Hutcherson Date: Wed, 6 May 2026 12:43:38 -0400 Subject: [PATCH] remove local NAT sources --- .github/workflows/ci.yml | 12 +-- .github/workflows/publish.yml | 4 +- CONTRIBUTING.md | 7 -- Makefile | 7 +- README.md | 13 +--- pyproject.toml | 4 - src/nvidia_nat_redis/__init__.py | 2 +- uv.lock | 127 ++++++------------------------- 8 files changed, 37 insertions(+), 139 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 512ae42..045420e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: Ruff run: uv run ruff check . @@ -35,7 +35,7 @@ jobs: python-version: ${{ matrix.python-version }} - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: Pytest run: uv run python -m pytest @@ -48,7 +48,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: Validate tool-based-memory config run: uv run nat validate --config_file examples/tool_based_memory/configs/config.yml - name: Validate agent-auto-memory config @@ -67,7 +67,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: Docker Info run: docker info - name: Integration Tests @@ -84,7 +84,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: OpenAI-Backed Integration Tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} @@ -105,7 +105,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Build - run: uv build --no-sources + run: uv build - uses: actions/upload-artifact@v4 with: name: dist diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8bef9a6..9857e93 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Sync - run: uv sync --no-sources --group dev --extra test + run: uv sync --group dev --extra test - name: Verify run: make check - name: Docker Info @@ -38,7 +38,7 @@ jobs: python-version: "3.12" - uses: astral-sh/setup-uv@v6 - name: Build - run: uv build --no-sources + run: uv build - uses: actions/upload-artifact@v4 with: name: dist diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e6736a..2399b7a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,13 +8,6 @@ For a clean standalone environment: make setup ``` -If you are developing next to a sibling `NeMo-Agent-Toolkit` checkout and want -to use local editable NAT packages: - -```bash -make setup-local -``` - ## Development Workflow 1. Create a branch for your change. diff --git a/Makefile b/Makefile index b81634c..db573b1 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,6 @@ -.PHONY: setup setup-local lint test test-integration test-integration-api validate build check clean +.PHONY: setup lint test test-integration test-integration-api validate build check clean setup: - uv sync --no-sources --group dev --extra test - -setup-local: uv sync --group dev --extra test lint: @@ -25,7 +22,7 @@ validate: uv run python examples/agent_auto_memory/run_agent.py --help build: - uv build --no-sources + uv build check: lint test validate diff --git a/README.md b/README.md index f6e7562..bc9a556 100644 --- a/README.md +++ b/README.md @@ -26,19 +26,10 @@ cd nvidia-nat-redis uv sync --group dev --extra test ``` -If you want a dependency-resolved install without sibling source overrides: - -```bash -uv sync --no-sources --group dev --extra test -``` - -Local development expects a sibling `../NeMo-Agent-Toolkit` checkout because -`tool.uv.sources` points at NAT source packages directly. - ## Choose A Surface - Use `_type: redis_agent_memory_backend` when your workflow already uses NAT memory tools and you want Redis Agent Memory behind the standard `MemoryEditor` contract. -- Use `_type: redis_agent_memory_auto_memory` when you want Redis Agent Memory to own working-memory continuity, prompt hydration, and turn capture on every request. This exposes the richness of Redis Agent Memory in it's fullest form. +- Use `_type: redis_agent_memory_auto_memory` when you want Redis Agent Memory to own working-memory continuity, prompt hydration, and turn capture on every request. This exposes the richness of Redis Agent Memory in its fullest form. ## Integration Modes @@ -105,7 +96,7 @@ README. ## Development ```bash -make setup-local +make setup make lint make test make validate diff --git a/pyproject.toml b/pyproject.toml index 30260c7..57c952c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,10 +56,6 @@ git_describe_command = "git describe --long --first-parent" managed = true package = true -[tool.uv.sources] -nvidia-nat-core = { path = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core", editable = true } -nvidia-nat-langchain = { path = "../NeMo-Agent-Toolkit/packages/nvidia_nat_langchain", editable = true } - [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] diff --git a/src/nvidia_nat_redis/__init__.py b/src/nvidia_nat_redis/__init__.py index e1c4ca6..e5daacf 100644 --- a/src/nvidia_nat_redis/__init__.py +++ b/src/nvidia_nat_redis/__init__.py @@ -7,5 +7,5 @@ try: __version__ = version("nvidia-nat-redis") -except (PackageNotFoundError, TypeError): # pragma: no cover - local editable installs can have partial metadata +except PackageNotFoundError: # pragma: no cover - source-tree usage before installation __version__ = "0.0.0" diff --git a/uv.lock b/uv.lock index c60573b..eb89976 100644 --- a/uv.lock +++ b/uv.lock @@ -1655,17 +1655,19 @@ wheels = [ [[package]] name = "nvidia-nat-atif" -source = { editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_atif" } +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, ] - -[package.metadata] -requires-dist = [{ name = "pydantic", specifier = "~=2.11" }] +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/61/13a83863c9cc75b18cfbe891118e1021d79bd7349fadcb04a53dec7d6f75/nvidia_nat_atif-1.6.0-py3-none-any.whl", hash = "sha256:0753b8b5f5eb5b01b0818a96697afed9e75fce6a266f6b06fa2dcff28c8d7b0f", size = 20635 }, +] [[package]] name = "nvidia-nat-core" -source = { editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" } +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aioboto3" }, { name = "authlib" }, @@ -1704,80 +1706,25 @@ dependencies = [ { name = "uvicorn", extra = ["standard"] }, { name = "wikipedia" }, ] - -[package.metadata] -requires-dist = [ - { name = "aioboto3", specifier = ">=11.0.0" }, - { name = "aiosqlite", marker = "extra == 'async-endpoints'", specifier = "~=0.21" }, - { name = "authlib", specifier = ">=1.6.5,<2.0.0" }, - { name = "click", specifier = "~=8.1" }, - { name = "colorama", specifier = ">=0.4.6,<1.0.0" }, - { name = "dask", marker = "extra == 'async-endpoints'", specifier = "~=2026.1" }, - { name = "distributed", marker = "extra == 'async-endpoints'", specifier = "~=2026.1" }, - { name = "expandvars", specifier = "~=1.0" }, - { name = "fastapi", specifier = "~=0.119" }, - { name = "flask", specifier = ">=3.0.0" }, - { name = "gunicorn", marker = "extra == 'gunicorn'", specifier = "~=23.0" }, - { name = "httpx", specifier = "~=0.27" }, - { name = "huggingface-hub", specifier = ">=0.33.4,<1.0.0" }, - { name = "jinja2", specifier = "~=3.1" }, - { name = "jsonpath-ng", specifier = "~=1.7" }, - { name = "nest-asyncio2", specifier = "~=1.7" }, - { name = "networkx", specifier = "~=3.4" }, - { name = "numpy", specifier = "~=2.3" }, - { name = "nvidia-nat-atif", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_atif" }, - { name = "nvidia-nat-eval", extras = ["profiling"], marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_eval" }, - { name = "nvidia-nat-test", marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_test" }, - { name = "openinference-semantic-conventions", specifier = ">=0.1.14,<1.0.0" }, - { name = "optuna", specifier = "~=4.4" }, - { name = "pandas", specifier = "~=2.2" }, - { name = "pip", specifier = ">=24.3.1" }, - { name = "pkce", specifier = "==1.0.3" }, - { name = "pkginfo", specifier = "~=1.12" }, - { name = "platformdirs", specifier = "~=4.3" }, - { name = "plotly", specifier = "~=6.0" }, - { name = "presidio-analyzer", marker = "extra == 'pii-defense'" }, - { name = "presidio-anonymizer", marker = "extra == 'pii-defense'" }, - { name = "pydantic", specifier = "~=2.11" }, - { name = "pyjwt", specifier = "~=2.11" }, - { name = "pymilvus", specifier = "~=2.6" }, - { name = "python-dotenv", specifier = ">=1.1.1,<2.0.0" }, - { name = "python-multipart", specifier = ">=0.0.21" }, - { name = "pyyaml", specifier = "~=6.0" }, - { name = "rich", specifier = "~=14.0" }, - { name = "sqlalchemy", extras = ["asyncio"], marker = "extra == 'async-endpoints'", specifier = "~=2.0" }, - { name = "starlette", specifier = "~=0.51" }, - { name = "tabulate", specifier = "~=0.9" }, - { name = "tzlocal", specifier = "~=5.3" }, - { name = "urllib3", specifier = ">=2.6.3,<3.0.0" }, - { name = "uvicorn", extras = ["standard"], specifier = "~=0.38" }, - { name = "wikipedia", specifier = "~=1.4" }, -] -provides-extras = ["async-endpoints", "gunicorn", "pii-defense", "test"] +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/40/0c96cc52df85696d9c32653b984c3d782cebb1136609aab8456d936d1ecb/nvidia_nat_core-1.6.0-py3-none-any.whl", hash = "sha256:0b13c7289a31c401c208451683f47b9a16e052a315bd7782e22c50482ecfe355", size = 780358 }, +] [[package]] name = "nvidia-nat-eval" -source = { editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_eval" } +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nvidia-nat-atif" }, ] - -[package.metadata] -requires-dist = [ - { name = "datasets", marker = "extra == 'full'", specifier = "~=4.4" }, - { name = "datasets", marker = "extra == 'test'", specifier = "~=4.4" }, - { name = "nvidia-nat-atif", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_atif" }, - { name = "nvidia-nat-core", marker = "extra == 'full'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" }, - { name = "nvidia-nat-core", extras = ["async-endpoints"], marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" }, - { name = "nvidia-nat-test", marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_test" }, - { name = "openpyxl", marker = "extra == 'full'", specifier = "~=3.1" }, - { name = "openpyxl", marker = "extra == 'test'", specifier = "~=3.1" }, +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/6f/ba0b59062e42ea604d91addf98cf74900feffc8bd865609fee6db27b1629/nvidia_nat_eval-1.6.0-py3-none-any.whl", hash = "sha256:8f68dffeb472d07ef218234e619bedf50a1ef589cdee77b7004c2ae151774ac0", size = 68288 }, ] -provides-extras = ["full", "test"] [[package]] name = "nvidia-nat-langchain" -source = { editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_langchain" } +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain" }, { name = "langchain-aws" }, @@ -1796,49 +1743,23 @@ dependencies = [ { name = "nvidia-nat-opentelemetry" }, { name = "openevals" }, ] - -[package.metadata] -requires-dist = [ - { name = "langchain", specifier = ">=1.2.3,<2.0.0" }, - { name = "langchain-aws", specifier = ">=1.1.0,<2.0.0" }, - { name = "langchain-classic", specifier = ">=1.0.1,<2.0.0" }, - { name = "langchain-community", specifier = "~=0.3" }, - { name = "langchain-core", specifier = ">=1.2.6,<2.0.0" }, - { name = "langchain-huggingface", specifier = ">=1.2.0,<2.0.0" }, - { name = "langchain-litellm", specifier = ">=0.3.5,<1.0.0" }, - { name = "langchain-milvus", specifier = ">=0.3.3,<1.0.0" }, - { name = "langchain-nvidia-ai-endpoints", specifier = ">=1.0.2,<2.0.0" }, - { name = "langchain-openai", specifier = ">=1.1.6,<2.0.0" }, - { name = "langchain-tavily", specifier = ">=0.2.16,<1.0.0" }, - { name = "langgraph", specifier = ">=1.0.5,<2.0.0" }, - { name = "nvidia-nat-core", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" }, - { name = "nvidia-nat-eval", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_eval" }, - { name = "nvidia-nat-eval", extras = ["profiling"], marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_eval" }, - { name = "nvidia-nat-opentelemetry", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_opentelemetry" }, - { name = "nvidia-nat-test", marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_test" }, - { name = "openevals", specifier = ">=0.1.3,<1.0.0" }, +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/1c/bfa3ebcc9409e66198eb64869c88503b587f0a2dff11df41d01621852854/nvidia_nat_langchain-1.6.0-py3-none-any.whl", hash = "sha256:26026f82abe4b1e736e43200d46110049a8cc09ca17c17236882a158316c5e84", size = 193316 }, ] -provides-extras = ["test"] [[package]] name = "nvidia-nat-opentelemetry" -source = { editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_opentelemetry" } +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nvidia-nat-core" }, { name = "opentelemetry-api" }, { name = "opentelemetry-exporter-otlp" }, { name = "opentelemetry-sdk" }, ] - -[package.metadata] -requires-dist = [ - { name = "nvidia-nat-core", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" }, - { name = "nvidia-nat-test", marker = "extra == 'test'", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_test" }, - { name = "opentelemetry-api", specifier = "~=1.2" }, - { name = "opentelemetry-exporter-otlp", specifier = "~=1.3" }, - { name = "opentelemetry-sdk", specifier = "~=1.3" }, +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/b4/54c29f536b498cfdfe00ebf4a52bdbc78db9af6b84c011c1c6ed4b647352/nvidia_nat_opentelemetry-1.6.0-py3-none-any.whl", hash = "sha256:5ae11e4acfc08e04bf3040a4cd69241f1c2c096b83061be15ee459d7c7c1b73d", size = 67843 }, ] -provides-extras = ["test"] [[package]] name = "nvidia-nat-redis" @@ -1864,7 +1785,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "agent-memory-client", specifier = ">=0.14.0,<1.0.0" }, - { name = "nvidia-nat-core", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_core" }, + { name = "nvidia-nat-core", specifier = ">=1.5.0,<2.0.0" }, { name = "pytest", marker = "extra == 'test'", specifier = ">=8.3,<9.0" }, { name = "pytest-asyncio", marker = "extra == 'test'", specifier = ">=0.24,<1.0" }, { name = "testcontainers", marker = "extra == 'test'", specifier = ">=4.3.1,<5" }, @@ -1873,7 +1794,7 @@ provides-extras = ["test"] [package.metadata.requires-dev] dev = [ - { name = "nvidia-nat-langchain", editable = "../NeMo-Agent-Toolkit/packages/nvidia_nat_langchain" }, + { name = "nvidia-nat-langchain", specifier = ">=1.5.0,<2.0.0" }, { name = "ruff", specifier = ">=0.15.0,<0.16.0" }, ]