smarta2a 0.1.0__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smarta2a-0.1.0 → smarta2a-0.2.0}/PKG-INFO +9 -9
- {smarta2a-0.1.0 → smarta2a-0.2.0}/README.md +6 -6
- {smarta2a-0.1.0 → smarta2a-0.2.0}/pyproject.toml +4 -4
- {smarta2a-0.1.0 → smarta2a-0.2.0}/requirements.txt +1 -1
- {smarta2a-0.1.0/fasta2a → smarta2a-0.2.0/smarta2a}/__init__.py +3 -2
- {smarta2a-0.1.0/fasta2a → smarta2a-0.2.0/smarta2a}/server.py +2 -2
- {smarta2a-0.1.0 → smarta2a-0.2.0}/tests/test_server.py +4 -4
- smarta2a-0.1.0/setup.py +0 -25
- {smarta2a-0.1.0 → smarta2a-0.2.0}/.gitignore +0 -0
- {smarta2a-0.1.0 → smarta2a-0.2.0}/LICENSE +0 -0
- {smarta2a-0.1.0/fasta2a → smarta2a-0.2.0/smarta2a}/types.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: smarta2a
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.2.0
|
4
4
|
Summary: A Python package for creating servers and clients following Google's Agent2Agent protocol
|
5
|
-
Project-URL: Homepage, https://github.com/siddharthsma/
|
6
|
-
Project-URL: Bug Tracker, https://github.com/siddharthsma/
|
5
|
+
Project-URL: Homepage, https://github.com/siddharthsma/smarta2a
|
6
|
+
Project-URL: Bug Tracker, https://github.com/siddharthsma/smarta2a/issues
|
7
7
|
Author-email: Siddharth Ambegaonkar <siddharthsma@gmail.com>
|
8
8
|
License-File: LICENSE
|
9
9
|
Classifier: License :: OSI Approved :: MIT License
|
@@ -16,7 +16,7 @@ Requires-Dist: sse-starlette
|
|
16
16
|
Requires-Dist: uvicorn
|
17
17
|
Description-Content-Type: text/markdown
|
18
18
|
|
19
|
-
#
|
19
|
+
# SmartA2A
|
20
20
|
|
21
21
|
A Python package for creating a server following Google's Agent2Agent protocol
|
22
22
|
|
@@ -39,15 +39,15 @@ A Python package for creating a server following Google's Agent2Agent protocol
|
|
39
39
|
## Installation
|
40
40
|
|
41
41
|
```bash
|
42
|
-
pip install
|
42
|
+
pip install smarta2a
|
43
43
|
```
|
44
44
|
|
45
45
|
## Simple Echo Server Implementation
|
46
46
|
|
47
47
|
```python
|
48
|
-
from
|
48
|
+
from smarta2a import SmartA2A
|
49
49
|
|
50
|
-
app =
|
50
|
+
app = SmartA2A("EchoServer")
|
51
51
|
|
52
52
|
@app.on_send_task()
|
53
53
|
def handle_task(request):
|
@@ -81,8 +81,8 @@ To set up the development environment:
|
|
81
81
|
|
82
82
|
```bash
|
83
83
|
# Clone the repository
|
84
|
-
git clone https://github.com/siddharthsma/
|
85
|
-
cd
|
84
|
+
git clone https://github.com/siddharthsma/smarta2a.git
|
85
|
+
cd smarta2a
|
86
86
|
|
87
87
|
# Create and activate virtual environment
|
88
88
|
python -m venv venv
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# SmartA2A
|
2
2
|
|
3
3
|
A Python package for creating a server following Google's Agent2Agent protocol
|
4
4
|
|
@@ -21,15 +21,15 @@ A Python package for creating a server following Google's Agent2Agent protocol
|
|
21
21
|
## Installation
|
22
22
|
|
23
23
|
```bash
|
24
|
-
pip install
|
24
|
+
pip install smarta2a
|
25
25
|
```
|
26
26
|
|
27
27
|
## Simple Echo Server Implementation
|
28
28
|
|
29
29
|
```python
|
30
|
-
from
|
30
|
+
from smarta2a import SmartA2A
|
31
31
|
|
32
|
-
app =
|
32
|
+
app = SmartA2A("EchoServer")
|
33
33
|
|
34
34
|
@app.on_send_task()
|
35
35
|
def handle_task(request):
|
@@ -63,8 +63,8 @@ To set up the development environment:
|
|
63
63
|
|
64
64
|
```bash
|
65
65
|
# Clone the repository
|
66
|
-
git clone https://github.com/siddharthsma/
|
67
|
-
cd
|
66
|
+
git clone https://github.com/siddharthsma/smarta2a.git
|
67
|
+
cd smarta2a
|
68
68
|
|
69
69
|
# Create and activate virtual environment
|
70
70
|
python -m venv venv
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "smarta2a"
|
7
|
-
version = "0.
|
7
|
+
version = "0.2.0"
|
8
8
|
authors = [
|
9
9
|
{ name = "Siddharth Ambegaonkar", email = "siddharthsma@gmail.com" },
|
10
10
|
]
|
@@ -24,11 +24,11 @@ dependencies = [
|
|
24
24
|
]
|
25
25
|
|
26
26
|
[project.urls]
|
27
|
-
"Homepage" = "https://github.com/siddharthsma/
|
28
|
-
"Bug Tracker" = "https://github.com/siddharthsma/
|
27
|
+
"Homepage" = "https://github.com/siddharthsma/smarta2a"
|
28
|
+
"Bug Tracker" = "https://github.com/siddharthsma/smarta2a/issues"
|
29
29
|
|
30
30
|
[tool.hatch.build.targets.wheel]
|
31
|
-
packages = ["
|
31
|
+
packages = ["smarta2a"]
|
32
32
|
|
33
33
|
[tool.pytest.ini_options]
|
34
34
|
testpaths = ["tests"]
|
@@ -3,7 +3,7 @@ anyio==4.9.0
|
|
3
3
|
certifi==2025.1.31
|
4
4
|
charset-normalizer==3.4.1
|
5
5
|
click==8.1.8
|
6
|
-
-e git+https://github.com/siddharthsma/
|
6
|
+
-e git+https://github.com/siddharthsma/smarta2a.git@main#egg=smarta2a
|
7
7
|
fastapi==0.115.12
|
8
8
|
h11==0.14.0
|
9
9
|
httpcore==1.0.8
|
@@ -50,7 +50,7 @@ from .types import (
|
|
50
50
|
TaskSendParams,
|
51
51
|
)
|
52
52
|
|
53
|
-
class
|
53
|
+
class SmartA2A:
|
54
54
|
def __init__(self, name: str, **fastapi_kwargs):
|
55
55
|
self.name = name
|
56
56
|
self.handlers: Dict[str, Callable] = {}
|
@@ -96,7 +96,7 @@ class FastA2A:
|
|
96
96
|
if method in self._registered_decorators:
|
97
97
|
raise RuntimeError(
|
98
98
|
f"@{handler_name} decorator for method '{method}' "
|
99
|
-
f"can only be used once per
|
99
|
+
f"can only be used once per SmartA2A instance"
|
100
100
|
)
|
101
101
|
|
102
102
|
if handler_type == "handler":
|
@@ -2,8 +2,8 @@ import pytest
|
|
2
2
|
import json
|
3
3
|
import requests
|
4
4
|
from fastapi.testclient import TestClient
|
5
|
-
from
|
6
|
-
from
|
5
|
+
from smarta2a import SmartA2A
|
6
|
+
from smarta2a.types import (
|
7
7
|
TaskSendParams,
|
8
8
|
SendTaskRequest,
|
9
9
|
GetTaskRequest,
|
@@ -29,7 +29,7 @@ from fasta2a.types import (
|
|
29
29
|
|
30
30
|
@pytest.fixture
|
31
31
|
def a2a_server():
|
32
|
-
server =
|
32
|
+
server = SmartA2A("test-server")
|
33
33
|
return server
|
34
34
|
|
35
35
|
@pytest.fixture
|
@@ -448,7 +448,7 @@ def test_send_subscribe_task(client, a2a_server):
|
|
448
448
|
|
449
449
|
def test_duplicate_on_send_task_registration():
|
450
450
|
"""Test that @on_send_task can only be registered once"""
|
451
|
-
app =
|
451
|
+
app = SmartA2A("test-app")
|
452
452
|
|
453
453
|
# First registration should work
|
454
454
|
@app.on_send_task()
|
smarta2a-0.1.0/setup.py
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
from setuptools import setup, find_packages
|
2
|
-
|
3
|
-
with open("README.md", "r", encoding="utf-8") as fh:
|
4
|
-
long_description = fh.read()
|
5
|
-
|
6
|
-
setup(
|
7
|
-
name="fasta2a",
|
8
|
-
version="0.1.0",
|
9
|
-
author="Siddharth Ambegaonkar",
|
10
|
-
author_email="sid.ambegaonkar@gmail.com",
|
11
|
-
description="A Python package for implementing an A2A server",
|
12
|
-
long_description=long_description,
|
13
|
-
long_description_content_type="text/markdown",
|
14
|
-
url="https://github.com/sambegaonkar/py-a2a",
|
15
|
-
packages=find_packages(),
|
16
|
-
classifiers=[
|
17
|
-
"Programming Language :: Python :: 3",
|
18
|
-
"License :: OSI Approved :: MIT License",
|
19
|
-
"Operating System :: OS Independent",
|
20
|
-
],
|
21
|
-
python_requires=">=3.7",
|
22
|
-
install_requires=[
|
23
|
-
# Add your dependencies here
|
24
|
-
],
|
25
|
-
)
|
File without changes
|
File without changes
|
File without changes
|