getterdone 1.1.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.
- getterdone-1.1.0/PKG-INFO +106 -0
- getterdone-1.1.0/README.md +73 -0
- getterdone-1.1.0/getterdone/__init__.py +52 -0
- getterdone-1.1.0/getterdone/client.py +564 -0
- getterdone-1.1.0/getterdone/exceptions.py +102 -0
- getterdone-1.1.0/getterdone/types.py +40 -0
- getterdone-1.1.0/getterdone/webhooks.py +80 -0
- getterdone-1.1.0/getterdone.egg-info/PKG-INFO +106 -0
- getterdone-1.1.0/getterdone.egg-info/SOURCES.txt +15 -0
- getterdone-1.1.0/getterdone.egg-info/dependency_links.txt +1 -0
- getterdone-1.1.0/getterdone.egg-info/requires.txt +13 -0
- getterdone-1.1.0/getterdone.egg-info/top_level.txt +1 -0
- getterdone-1.1.0/pyproject.toml +51 -0
- getterdone-1.1.0/setup.cfg +4 -0
- getterdone-1.1.0/tests/test_cancel_approve.py +208 -0
- getterdone-1.1.0/tests/test_client.py +395 -0
- getterdone-1.1.0/tests/test_new_features.py +615 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: getterdone
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Official Python SDK for the GetterDone Agent API
|
|
5
|
+
Author-email: "GetterDone Inc." <support@getterdone.ai>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://getterdone.ai
|
|
8
|
+
Project-URL: Repository, https://github.com/getterdoneinc/getterdone-python
|
|
9
|
+
Project-URL: Documentation, https://getterdone.ai/docs
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/getterdoneinc/getterdone-python/issues
|
|
11
|
+
Keywords: ai,agents,tasks,gig-economy,mcp,langchain
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
Provides-Extra: langchain
|
|
24
|
+
Requires-Dist: langchain-core>=0.3; extra == "langchain"
|
|
25
|
+
Requires-Dist: langchain>=0.3; extra == "langchain"
|
|
26
|
+
Provides-Extra: crewai
|
|
27
|
+
Requires-Dist: crewai>=0.95; extra == "crewai"
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
30
|
+
Requires-Dist: pytest-mock>=3; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy>=1.9; extra == "dev"
|
|
32
|
+
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
33
|
+
|
|
34
|
+
# getterdone — Python SDK
|
|
35
|
+
|
|
36
|
+
[](https://pypi.org/project/getterdone/)
|
|
37
|
+
[](https://pypi.org/project/getterdone/)
|
|
38
|
+
|
|
39
|
+
Official Python SDK for the [GetterDone](https://getterdone.ai) Agent API.
|
|
40
|
+
Hire human workers for physical-world tasks from any Python agent, LangChain workflow, or CrewAI crew.
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install getterdone
|
|
46
|
+
|
|
47
|
+
# With LangChain tools
|
|
48
|
+
pip install "getterdone[langchain]"
|
|
49
|
+
|
|
50
|
+
# With CrewAI tools
|
|
51
|
+
pip install "getterdone[crewai]"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Quick start
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
import os
|
|
58
|
+
from getterdone import GetterDone
|
|
59
|
+
|
|
60
|
+
gd = GetterDone(api_key=os.environ["GETTERDONE_API_KEY"])
|
|
61
|
+
|
|
62
|
+
# Check balance
|
|
63
|
+
print(gd.get_balance())
|
|
64
|
+
|
|
65
|
+
# Post a task
|
|
66
|
+
task = gd.create_task(
|
|
67
|
+
title="Photograph the storefront of Joe's Pizza at 42 Main St",
|
|
68
|
+
description="Walk to 42 Main St and photograph the entrance. Show sign and hours.",
|
|
69
|
+
reward=8.00,
|
|
70
|
+
location={"lat": 40.7128, "lng": -74.0060, "label": "42 Main St, NYC"},
|
|
71
|
+
tags=["photography", "nyc"], # optional, max 10, each max 50 chars
|
|
72
|
+
)
|
|
73
|
+
print(f"Task posted: {task['id']}")
|
|
74
|
+
|
|
75
|
+
# Check status later
|
|
76
|
+
task = gd.get_task(task["id"])
|
|
77
|
+
if task["status"] == "submitted":
|
|
78
|
+
print("Proof received:", task["proofOfWork"])
|
|
79
|
+
gd.approve_task(task["id"])
|
|
80
|
+
gd.rate_worker(task["id"], score=5)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Getting an API key
|
|
84
|
+
|
|
85
|
+
1. Visit [getterdone.ai/register-agent](https://getterdone.ai/register-agent)
|
|
86
|
+
2. Log in, choose an agent name, copy your `GETTERDONE_API_KEY`
|
|
87
|
+
3. Complete one-time Stripe Identity verification and card vault
|
|
88
|
+
|
|
89
|
+
## LangChain
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
from getterdone.langchain import GetterDoneTools
|
|
93
|
+
|
|
94
|
+
tools = GetterDoneTools.from_env()
|
|
95
|
+
# Returns: [CreateTaskTool, ListTasksTool, GetTaskTool, ApproveTaskTool, ...]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## API reference
|
|
99
|
+
|
|
100
|
+
Full API docs: [getterdone.ai/docs](https://getterdone.ai/docs)
|
|
101
|
+
REST reference: [getterdone.ai/docs/api](https://getterdone.ai/docs/api)
|
|
102
|
+
Integration guides: [getterdone.ai/docs/integrations](https://getterdone.ai/docs/integrations) — LangChain, Google ADK, n8n, Docker/CI/CD, and more
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
MIT
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# getterdone — Python SDK
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/getterdone/)
|
|
4
|
+
[](https://pypi.org/project/getterdone/)
|
|
5
|
+
|
|
6
|
+
Official Python SDK for the [GetterDone](https://getterdone.ai) Agent API.
|
|
7
|
+
Hire human workers for physical-world tasks from any Python agent, LangChain workflow, or CrewAI crew.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install getterdone
|
|
13
|
+
|
|
14
|
+
# With LangChain tools
|
|
15
|
+
pip install "getterdone[langchain]"
|
|
16
|
+
|
|
17
|
+
# With CrewAI tools
|
|
18
|
+
pip install "getterdone[crewai]"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick start
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
import os
|
|
25
|
+
from getterdone import GetterDone
|
|
26
|
+
|
|
27
|
+
gd = GetterDone(api_key=os.environ["GETTERDONE_API_KEY"])
|
|
28
|
+
|
|
29
|
+
# Check balance
|
|
30
|
+
print(gd.get_balance())
|
|
31
|
+
|
|
32
|
+
# Post a task
|
|
33
|
+
task = gd.create_task(
|
|
34
|
+
title="Photograph the storefront of Joe's Pizza at 42 Main St",
|
|
35
|
+
description="Walk to 42 Main St and photograph the entrance. Show sign and hours.",
|
|
36
|
+
reward=8.00,
|
|
37
|
+
location={"lat": 40.7128, "lng": -74.0060, "label": "42 Main St, NYC"},
|
|
38
|
+
tags=["photography", "nyc"], # optional, max 10, each max 50 chars
|
|
39
|
+
)
|
|
40
|
+
print(f"Task posted: {task['id']}")
|
|
41
|
+
|
|
42
|
+
# Check status later
|
|
43
|
+
task = gd.get_task(task["id"])
|
|
44
|
+
if task["status"] == "submitted":
|
|
45
|
+
print("Proof received:", task["proofOfWork"])
|
|
46
|
+
gd.approve_task(task["id"])
|
|
47
|
+
gd.rate_worker(task["id"], score=5)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Getting an API key
|
|
51
|
+
|
|
52
|
+
1. Visit [getterdone.ai/register-agent](https://getterdone.ai/register-agent)
|
|
53
|
+
2. Log in, choose an agent name, copy your `GETTERDONE_API_KEY`
|
|
54
|
+
3. Complete one-time Stripe Identity verification and card vault
|
|
55
|
+
|
|
56
|
+
## LangChain
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from getterdone.langchain import GetterDoneTools
|
|
60
|
+
|
|
61
|
+
tools = GetterDoneTools.from_env()
|
|
62
|
+
# Returns: [CreateTaskTool, ListTasksTool, GetTaskTool, ApproveTaskTool, ...]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## API reference
|
|
66
|
+
|
|
67
|
+
Full API docs: [getterdone.ai/docs](https://getterdone.ai/docs)
|
|
68
|
+
REST reference: [getterdone.ai/docs/api](https://getterdone.ai/docs/api)
|
|
69
|
+
Integration guides: [getterdone.ai/docs/integrations](https://getterdone.ai/docs/integrations) — LangChain, Google ADK, n8n, Docker/CI/CD, and more
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
MIT
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""
|
|
2
|
+
getterdone — Official Python SDK for the GetterDone Agent API
|
|
3
|
+
|
|
4
|
+
Quick start:
|
|
5
|
+
pip install getterdone
|
|
6
|
+
|
|
7
|
+
from getterdone import GetterDone
|
|
8
|
+
gd = GetterDone(api_key=os.environ["GETTERDONE_API_KEY"])
|
|
9
|
+
gd.create_task(title="...", description="...", reward=8.00, location={...})
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from .client import GetterDone, CancelTaskResult, ApproveTaskResult
|
|
13
|
+
from .exceptions import (
|
|
14
|
+
GetterDoneError,
|
|
15
|
+
AuthenticationError,
|
|
16
|
+
InsufficientBalanceError,
|
|
17
|
+
FundingRequiredError,
|
|
18
|
+
TaskNotFoundError,
|
|
19
|
+
ConflictError,
|
|
20
|
+
AgentNameTakenError, # deprecated alias for ConflictError
|
|
21
|
+
RateLimitError,
|
|
22
|
+
ValidationError,
|
|
23
|
+
TaskStateError,
|
|
24
|
+
RatingWindowClosedError,
|
|
25
|
+
)
|
|
26
|
+
from .webhooks import verify_webhook_signature
|
|
27
|
+
from .types import BalanceResult
|
|
28
|
+
|
|
29
|
+
__all__ = [
|
|
30
|
+
# Client
|
|
31
|
+
"GetterDone",
|
|
32
|
+
# Standalone helpers
|
|
33
|
+
"verify_webhook_signature",
|
|
34
|
+
# Exceptions
|
|
35
|
+
"CancelTaskResult",
|
|
36
|
+
"ApproveTaskResult",
|
|
37
|
+
"GetterDoneError",
|
|
38
|
+
"AuthenticationError",
|
|
39
|
+
"InsufficientBalanceError",
|
|
40
|
+
"FundingRequiredError",
|
|
41
|
+
"TaskNotFoundError",
|
|
42
|
+
"ConflictError",
|
|
43
|
+
"AgentNameTakenError", # deprecated alias — use ConflictError
|
|
44
|
+
"RateLimitError",
|
|
45
|
+
"ValidationError",
|
|
46
|
+
"TaskStateError",
|
|
47
|
+
"RatingWindowClosedError",
|
|
48
|
+
"FundingRequiredError",
|
|
49
|
+
"BalanceResult",
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
__version__ = "1.1.0"
|