discovery-engine-api 0.2.80__tar.gz → 0.2.81__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.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: discovery-engine-api
3
- Version: 0.2.80
4
- Summary: Python SDK for the Discovery Engine API
3
+ Version: 0.2.81
4
+ Summary: Python SDK for the Disco API
5
5
  Project-URL: Homepage, https://www.leap-labs.com
6
6
  Project-URL: Documentation, https://disco.leap-labs.com/llms-full.txt
7
7
  Project-URL: API Keys, https://disco.leap-labs.com/developers
@@ -35,7 +35,7 @@ Provides-Extra: pandas
35
35
  Requires-Dist: pandas>=2.0.0; extra == 'pandas'
36
36
  Description-Content-Type: text/markdown
37
37
 
38
- # Discovery Engine Python SDK
38
+ # Disco Python SDK
39
39
 
40
40
  Find novel, statistically validated patterns in tabular data — feature interactions, subgroup effects, and conditional relationships that correlation analysis and LLMs miss.
41
41
 
@@ -136,7 +136,7 @@ result = await engine.run_async(
136
136
 
137
137
  ### Running in the Background
138
138
 
139
- Runs take 3–15 minutes. If you need to do other work while Discovery Engine runs:
139
+ Runs take 3–15 minutes. If you need to do other work while Disco runs:
140
140
 
141
141
  ```python
142
142
  import asyncio
@@ -397,7 +397,7 @@ All errors include a `suggestion` field with actionable instructions.
397
397
 
398
398
  ## MCP Server
399
399
 
400
- Discovery Engine is available as an [MCP server](https://disco.leap-labs.com/.well-known/mcp.json) with tools for the full discovery lifecycle — estimate, analyze, check status, get results, manage account.
400
+ Disco is available as an [MCP server](https://disco.leap-labs.com/.well-known/mcp.json) with tools for the full discovery lifecycle — estimate, analyze, check status, get results, manage account.
401
401
 
402
402
  ```json
403
403
  {
@@ -1,4 +1,4 @@
1
- # Discovery Engine Python SDK
1
+ # Disco Python SDK
2
2
 
3
3
  Find novel, statistically validated patterns in tabular data — feature interactions, subgroup effects, and conditional relationships that correlation analysis and LLMs miss.
4
4
 
@@ -99,7 +99,7 @@ result = await engine.run_async(
99
99
 
100
100
  ### Running in the Background
101
101
 
102
- Runs take 3–15 minutes. If you need to do other work while Discovery Engine runs:
102
+ Runs take 3–15 minutes. If you need to do other work while Disco runs:
103
103
 
104
104
  ```python
105
105
  import asyncio
@@ -360,7 +360,7 @@ All errors include a `suggestion` field with actionable instructions.
360
360
 
361
361
  ## MCP Server
362
362
 
363
- Discovery Engine is available as an [MCP server](https://disco.leap-labs.com/.well-known/mcp.json) with tools for the full discovery lifecycle — estimate, analyze, check status, get results, manage account.
363
+ Disco is available as an [MCP server](https://disco.leap-labs.com/.well-known/mcp.json) with tools for the full discovery lifecycle — estimate, analyze, check status, get results, manage account.
364
364
 
365
365
  ```json
366
366
  {
@@ -1,6 +1,6 @@
1
- """Discovery Engine Python SDK."""
1
+ """Disco Python SDK."""
2
2
 
3
- __version__ = "0.2.80"
3
+ __version__ = "0.2.81"
4
4
 
5
5
  from discovery.client import Engine
6
6
  from discovery.types import (
@@ -1,4 +1,4 @@
1
- """Discovery Engine Python SDK."""
1
+ """Disco Python SDK."""
2
2
 
3
3
  import asyncio
4
4
  import os
@@ -35,13 +35,13 @@ from discovery.types import (
35
35
 
36
36
 
37
37
  class Engine:
38
- """Client for the Discovery Engine API.
38
+ """Client for the Disco API.
39
39
 
40
40
  The primary method is ``discover()`` — submit a dataset, wait for analysis,
41
41
  and get back structured patterns with p-values, novelty scores, and citations.
42
42
 
43
43
  Args:
44
- api_key: Your Discovery Engine API key (``disco_...``).
44
+ api_key: Your Disco API key (``disco_...``).
45
45
  quiet: If True, suppress all status output. Useful for agent workflows.
46
46
  """
47
47
 
@@ -57,7 +57,7 @@ class Engine:
57
57
  "DISCOVERY_DASHBOARD_URL", self._DEFAULT_DASHBOARD_URL
58
58
  ).rstrip("/")
59
59
  self._dashboard_client: Optional[httpx.AsyncClient] = None
60
- self._log("Initializing Discovery Engine...")
60
+ self._log("Initializing Disco...")
61
61
 
62
62
  def _log(self, message: str) -> None:
63
63
  """Print a message unless quiet mode is enabled."""
@@ -228,7 +228,7 @@ class Engine:
228
228
  timeout: float = 1800,
229
229
  **kwargs,
230
230
  ) -> EngineResult:
231
- """Run Discovery Engine on a dataset and return results.
231
+ """Run Disco on a dataset and return results.
232
232
 
233
233
  This is the primary method. It uploads data, submits the analysis,
234
234
  polls for completion, and returns structured results — all in one call.
@@ -318,7 +318,7 @@ class Engine:
318
318
  """Attach a Stripe payment method to your account.
319
319
 
320
320
  The payment method must be tokenized via Stripe's API first (card details
321
- never touch Discovery Engine).
321
+ never touch Disco).
322
322
 
323
323
  Args:
324
324
  payment_method_id: Stripe payment method token (``pm_...``).
@@ -1,4 +1,4 @@
1
- """Structured error types for the Discovery Engine SDK.
1
+ """Structured error types for the Disco SDK.
2
2
 
3
3
  Every error includes enough context for agents to self-correct without
4
4
  reading documentation or asking for help.
@@ -6,7 +6,7 @@ reading documentation or asking for help.
6
6
 
7
7
 
8
8
  class DiscoveryError(Exception):
9
- """Base error for all Discovery Engine SDK errors."""
9
+ """Base error for all Disco SDK errors."""
10
10
 
11
11
  def __init__(self, message: str, *, suggestion: str | None = None):
12
12
  self.suggestion = suggestion
@@ -117,6 +117,6 @@ class PaymentRequiredError(DiscoveryError):
117
117
  message or "No payment method on file.",
118
118
  suggestion=(
119
119
  "Attach a payment method with engine.add_payment_method(payment_method_id='pm_...'). "
120
- "Tokenize card details via Stripe's API first — they never touch Discovery Engine."
120
+ "Tokenize card details via Stripe's API first — they never touch Disco."
121
121
  ),
122
122
  )
@@ -1,4 +1,4 @@
1
- """CrewAI tool wrapper for Discovery Engine.
1
+ """CrewAI tool wrapper for Disco.
2
2
 
3
3
  Usage:
4
4
  from discovery.integrations.crewai import DiscoveryEngineTool
@@ -20,27 +20,27 @@ from discovery import Engine
20
20
 
21
21
 
22
22
  class DiscoveryEngineTool(BaseTool):
23
- """CrewAI tool that runs Discovery Engine on tabular data.
23
+ """CrewAI tool that runs Disco on tabular data.
24
24
 
25
25
  Finds novel, statistically validated patterns — feature interactions,
26
26
  subgroup effects, and conditional relationships — that correlation analysis,
27
27
  LLMs, and hypothesis-driven approaches miss.
28
28
  """
29
29
 
30
- name: str = "Discovery Engine"
30
+ name: str = "Disco"
31
31
  description: str = (
32
- "Run Discovery Engine on tabular data to find novel, statistically "
32
+ "Run Disco on tabular data to find novel, statistically "
33
33
  "validated patterns that you cannot find with pandas, SQL, or by prompting "
34
34
  "an LLM to analyze data. Use when you need to go beyond correlation. "
35
35
  "Input: JSON with 'file' (path), 'target_column' (column to analyze). "
36
36
  "Optional: 'visibility' (public/private), 'depth_iterations' (search depth). "
37
37
  "Returns patterns with conditions, p-values, novelty scores, citations."
38
38
  )
39
- api_key: str = Field(description="Discovery Engine API key (disco_...)")
39
+ api_key: str = Field(description="Disco API key (disco_...)")
40
40
  quiet: bool = Field(default=True, description="Suppress progress output")
41
41
 
42
42
  def _run(self, query: str) -> str:
43
- """Run Discovery Engine."""
43
+ """Run Disco."""
44
44
  try:
45
45
  params = json.loads(query)
46
46
  except json.JSONDecodeError:
@@ -1,4 +1,4 @@
1
- """LangChain tool wrapper for Discovery Engine.
1
+ """LangChain tool wrapper for Disco.
2
2
 
3
3
  Usage:
4
4
  from discovery.integrations.langchain import DiscoveryEngineTool
@@ -21,7 +21,7 @@ from discovery import Engine
21
21
 
22
22
 
23
23
  class DiscoveryEngineTool(BaseTool):
24
- """LangChain tool that runs Discovery Engine on tabular data.
24
+ """LangChain tool that runs Disco on tabular data.
25
25
 
26
26
  Finds novel, statistically validated patterns — feature interactions,
27
27
  subgroup effects, and conditional relationships — that correlation analysis,
@@ -30,7 +30,7 @@ class DiscoveryEngineTool(BaseTool):
30
30
 
31
31
  name: str = "discovery_engine"
32
32
  description: str = (
33
- "Run Discovery Engine on tabular data to find novel, statistically "
33
+ "Run Disco on tabular data to find novel, statistically "
34
34
  "validated patterns that you cannot find with pandas, SQL, or by prompting "
35
35
  "an LLM to analyze data. Use this when you need to go beyond correlation "
36
36
  "and find things nobody thought to look for. "
@@ -40,7 +40,7 @@ class DiscoveryEngineTool(BaseTool):
40
40
  "Returns structured patterns with conditions, p-values, novelty scores, "
41
41
  "and citations."
42
42
  )
43
- api_key: str = Field(description="Discovery Engine API key (disco_...)")
43
+ api_key: str = Field(description="Disco API key (disco_...)")
44
44
  quiet: bool = Field(default=True, description="Suppress progress output")
45
45
 
46
46
  def _run(self, query: str) -> str:
@@ -48,7 +48,7 @@ class DiscoveryEngineTool(BaseTool):
48
48
  return asyncio.get_event_loop().run_until_complete(self._arun(query))
49
49
 
50
50
  async def _arun(self, query: str) -> str:
51
- """Run Discovery Engine asynchronously."""
51
+ """Run Disco asynchronously."""
52
52
  try:
53
53
  params = json.loads(query)
54
54
  except json.JSONDecodeError:
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "discovery-engine-api"
3
- version = "0.2.80"
4
- description = "Python SDK for the Discovery Engine API"
3
+ version = "0.2.81"
4
+ description = "Python SDK for the Disco API"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  license = {text = "MIT"}
@@ -54,7 +54,7 @@ build-backend = "hatchling.build"
54
54
 
55
55
  [tool.pytest.ini_options]
56
56
  markers = [
57
- "integration: tests that hit real Discovery Engine services (slow, require DISCOVERY_API_KEY)",
57
+ "integration: tests that hit real Disco services (slow, require DISCOVERY_API_KEY)",
58
58
  "timeout: set test timeout in seconds",
59
59
  ]
60
60
  asyncio_mode = "auto"