exa-py 1.15.6__tar.gz → 1.16.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.

Potentially problematic release.


This version of exa-py might be problematic. Click here for more details.

Files changed (37) hide show
  1. {exa_py-1.15.6 → exa_py-1.16.0}/PKG-INFO +3 -1
  2. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/api.py +19 -6
  3. {exa_py-1.15.6 → exa_py-1.16.0}/pyproject.toml +10 -7
  4. {exa_py-1.15.6 → exa_py-1.16.0}/README.md +0 -0
  5. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/__init__.py +0 -0
  6. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/py.typed +0 -0
  7. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/__init__.py +0 -0
  8. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/async_client.py +0 -0
  9. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/base.py +0 -0
  10. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/models.py +0 -0
  11. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/sync_client.py +0 -0
  12. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/research/utils.py +0 -0
  13. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/utils.py +0 -0
  14. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/__init__.py +0 -0
  15. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/_generator/pydantic/BaseModel.jinja2 +0 -0
  16. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/async_client.py +0 -0
  17. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/client.py +0 -0
  18. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/core/__init__.py +0 -0
  19. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/core/async_base.py +0 -0
  20. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/core/base.py +0 -0
  21. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/enrichments/__init__.py +0 -0
  22. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/enrichments/client.py +0 -0
  23. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/events/__init__.py +0 -0
  24. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/events/client.py +0 -0
  25. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/imports/__init__.py +0 -0
  26. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/imports/client.py +0 -0
  27. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/items/__init__.py +0 -0
  28. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/items/client.py +0 -0
  29. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/monitors/__init__.py +0 -0
  30. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/monitors/client.py +0 -0
  31. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/monitors/runs/__init__.py +0 -0
  32. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/monitors/runs/client.py +0 -0
  33. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/searches/__init__.py +0 -0
  34. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/searches/client.py +0 -0
  35. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/types.py +0 -0
  36. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/webhooks/__init__.py +0 -0
  37. {exa_py-1.15.6 → exa_py-1.16.0}/exa_py/websets/webhooks/client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: exa-py
3
- Version: 1.15.6
3
+ Version: 1.16.0
4
4
  Summary: Python SDK for Exa API.
5
5
  License: MIT
6
6
  Author: Exa AI
@@ -13,9 +13,11 @@ Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Dist: httpcore (>=1.0.9)
16
17
  Requires-Dist: httpx (>=0.28.1)
17
18
  Requires-Dist: openai (>=1.48)
18
19
  Requires-Dist: pydantic (>=2.10.6)
20
+ Requires-Dist: python-dotenv (>=1.0.1)
19
21
  Requires-Dist: requests (>=2.32.3)
20
22
  Requires-Dist: typing-extensions (>=4.12.2)
21
23
  Description-Content-Type: text/markdown
@@ -142,7 +142,9 @@ SEARCH_OPTIONS_TYPES = {
142
142
  list
143
143
  ], # Must not be present in webpage text. (One string, up to 5 words)
144
144
  "use_autoprompt": [bool], # Convert query to Exa. (Default: false)
145
- "type": [str], # 'keyword', 'neural', 'hybrid', 'fast', or 'auto' (Default: auto)
145
+ "type": [
146
+ str
147
+ ], # 'keyword', 'neural', 'hybrid', 'fast', 'deep', or 'auto' (Default: auto)
146
148
  "category": [
147
149
  str
148
150
  ], # A data category to focus on: 'company', 'research paper', 'news', 'pdf', 'github', 'tweet', 'personal site', 'linkedin profile', 'financial report'
@@ -260,6 +262,10 @@ class HighlightsContentsOptions(TypedDict, total=False):
260
262
  query (str): The query string for the highlights.
261
263
  num_sentences (int): Size of highlights to return, in sentences. Default: 5
262
264
  highlights_per_url (int): Number of highlights to return per URL. Default: 1
265
+
266
+ NOTE: When using the "deep" search type, only the default highlights=True is supported.
267
+ These options will NOT be respected. Highlights will always be based on the user's query,
268
+ and the number and length may vary.
263
269
  """
264
270
 
265
271
  query: str
@@ -1275,7 +1281,7 @@ class Exa:
1275
1281
  include_text (List[str], optional): Strings that must appear in the page text.
1276
1282
  exclude_text (List[str], optional): Strings that must not appear in the page text.
1277
1283
  use_autoprompt (bool, optional): Convert query to Exa (default False).
1278
- type (str, optional): 'keyword', 'neural', 'hybrid', 'fast', or 'auto' (default 'auto').
1284
+ type (str, optional): 'keyword', 'neural', 'hybrid', 'fast', 'deep', or 'auto' (default 'auto').
1279
1285
  category (str, optional): e.g. 'company'
1280
1286
  flags (List[str], optional): Experimental flags for Exa usage.
1281
1287
  moderation (bool, optional): If True, the search results will be moderated for safety.
@@ -2438,8 +2444,12 @@ class AsyncExa(Exa):
2438
2444
  return self._client
2439
2445
 
2440
2446
  async def async_request(
2441
- self, endpoint: str, data=None, method: str = "POST", params=None,
2442
- headers: Optional[Dict[str, str]] = None
2447
+ self,
2448
+ endpoint: str,
2449
+ data=None,
2450
+ method: str = "POST",
2451
+ params=None,
2452
+ headers: Optional[Dict[str, str]] = None,
2443
2453
  ):
2444
2454
  """Send a request to the Exa API, optionally streaming if data['stream'] is True.
2445
2455
 
@@ -2470,7 +2480,10 @@ class AsyncExa(Exa):
2470
2480
  if method.upper() == "GET":
2471
2481
  if needs_streaming:
2472
2482
  request = httpx.Request(
2473
- "GET", self.base_url + endpoint, params=params, headers=request_headers
2483
+ "GET",
2484
+ self.base_url + endpoint,
2485
+ params=params,
2486
+ headers=request_headers,
2474
2487
  )
2475
2488
  res = await self.client.send(request, stream=True)
2476
2489
  return res
@@ -2529,7 +2542,7 @@ class AsyncExa(Exa):
2529
2542
  include_text (List[str], optional): Strings that must appear in the page text.
2530
2543
  exclude_text (List[str], optional): Strings that must not appear in the page text.
2531
2544
  use_autoprompt (bool, optional): Convert query to Exa (default False).
2532
- type (str, optional): 'keyword', 'neural', 'hybrid', 'fast', or 'auto' (default 'auto').
2545
+ type (str, optional): 'keyword', 'neural', 'hybrid', 'fast', 'deep', or 'auto' (default 'auto').
2533
2546
  category (str, optional): e.g. 'company'
2534
2547
  flags (List[str], optional): Experimental flags for Exa usage.
2535
2548
  moderation (bool, optional): If True, the search results will be moderated for safety.
@@ -5,17 +5,18 @@ typing-extensions = "^4.12.2"
5
5
  openai = "^1.48"
6
6
  pydantic = "^2.10.6"
7
7
  httpx = "^0.28.1"
8
+ httpcore = "^1.0.9"
9
+ python-dotenv = "^1.0.1"
8
10
 
9
11
  [tool.poetry.group.dev.dependencies]
10
- python-dotenv = "^1.0.1"
11
- setuptools = "^74.0.0"
12
+ setuptools = "^78.1.1"
12
13
  docutils = "^0.21.2"
13
14
  twine = "^5.1.1"
14
15
  datamodel-code-generator = "^0.28.4"
15
- pytest = "^8.3.5"
16
- pytest-cov = "^6.0.0"
17
- pytest-mock = "^3.14.0"
18
- pytest-asyncio = "^0.24.0"
16
+ pytest = "^8.4.1"
17
+ pytest-cov = "^6.2.1"
18
+ pytest-mock = "^3.14.1"
19
+ pytest-asyncio = "^1.0.0"
19
20
 
20
21
  [build-system]
21
22
  requires = ["poetry-core"]
@@ -23,7 +24,7 @@ build-backend = "poetry.core.masonry.api"
23
24
 
24
25
  [project]
25
26
  name = "exa-py"
26
- version = "1.15.6"
27
+ version = "1.16.0"
27
28
  description = "Python SDK for Exa API."
28
29
  readme = "README.md"
29
30
  requires-python = ">=3.9"
@@ -35,6 +36,8 @@ dependencies = [
35
36
  "openai>=1.48",
36
37
  "pydantic>=2.10.6",
37
38
  "httpx>=0.28.1",
39
+ "httpcore>=1.0.9",
40
+ "python-dotenv>=1.0.1",
38
41
  ]
39
42
 
40
43
  [dependency-groups]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes