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.
@@ -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
+ [![PyPI](https://img.shields.io/pypi/v/getterdone)](https://pypi.org/project/getterdone/)
37
+ [![Python 3.9+](https://img.shields.io/pypi/pyversions/getterdone)](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
+ [![PyPI](https://img.shields.io/pypi/v/getterdone)](https://pypi.org/project/getterdone/)
4
+ [![Python 3.9+](https://img.shields.io/pypi/pyversions/getterdone)](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"