groundx 2.3.8__py3-none-any.whl → 2.4.1__py3-none-any.whl

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 groundx might be problematic. Click here for more details.

groundx/buckets/client.py CHANGED
@@ -62,7 +62,10 @@ class BucketsClient:
62
62
  client = GroundX(
63
63
  api_key="YOUR_API_KEY",
64
64
  )
65
- client.buckets.list()
65
+ client.buckets.list(
66
+ n=1,
67
+ next_token="nextToken",
68
+ )
66
69
  """
67
70
  _response = self._raw_client.list(n=n, next_token=next_token, request_options=request_options)
68
71
  return _response.data
@@ -250,7 +253,10 @@ class AsyncBucketsClient:
250
253
 
251
254
 
252
255
  async def main() -> None:
253
- await client.buckets.list()
256
+ await client.buckets.list(
257
+ n=1,
258
+ next_token="nextToken",
259
+ )
254
260
 
255
261
 
256
262
  asyncio.run(main())
@@ -14,10 +14,10 @@ class BaseClientWrapper:
14
14
 
15
15
  def get_headers(self) -> typing.Dict[str, str]:
16
16
  headers: typing.Dict[str, str] = {
17
- "User-Agent": "groundx/2.3.8",
17
+ "User-Agent": "groundx/2.4.1",
18
18
  "X-Fern-Language": "Python",
19
19
  "X-Fern-SDK-Name": "groundx",
20
- "X-Fern-SDK-Version": "2.3.8",
20
+ "X-Fern-SDK-Version": "2.4.1",
21
21
  }
22
22
  headers["X-API-Key"] = self.api_key
23
23
  return headers
@@ -240,7 +240,14 @@ class DocumentsClient:
240
240
  client = GroundX(
241
241
  api_key="YOUR_API_KEY",
242
242
  )
243
- client.documents.list()
243
+ client.documents.list(
244
+ n=1,
245
+ filter="filter",
246
+ sort="name",
247
+ sort_order="asc",
248
+ status="queued",
249
+ next_token="nextToken",
250
+ )
244
251
  """
245
252
  _response = self._raw_client.list(
246
253
  n=n,
@@ -377,6 +384,12 @@ class DocumentsClient:
377
384
  )
378
385
  client.documents.lookup(
379
386
  id=1,
387
+ n=1,
388
+ filter="filter",
389
+ sort="name",
390
+ sort_order="asc",
391
+ status="queued",
392
+ next_token="nextToken",
380
393
  )
381
394
  """
382
395
  _response = self._raw_client.lookup(
@@ -488,7 +501,10 @@ class DocumentsClient:
488
501
  client = GroundX(
489
502
  api_key="YOUR_API_KEY",
490
503
  )
491
- client.documents.get_processes()
504
+ client.documents.get_processes(
505
+ n=1,
506
+ status="queued",
507
+ )
492
508
  """
493
509
  _response = self._raw_client.get_processes(n=n, status=status, request_options=request_options)
494
510
  return _response.data
@@ -746,7 +762,14 @@ class AsyncDocumentsClient:
746
762
 
747
763
 
748
764
  async def main() -> None:
749
- await client.documents.list()
765
+ await client.documents.list(
766
+ n=1,
767
+ filter="filter",
768
+ sort="name",
769
+ sort_order="asc",
770
+ status="queued",
771
+ next_token="nextToken",
772
+ )
750
773
 
751
774
 
752
775
  asyncio.run(main())
@@ -907,6 +930,12 @@ class AsyncDocumentsClient:
907
930
  async def main() -> None:
908
931
  await client.documents.lookup(
909
932
  id=1,
933
+ n=1,
934
+ filter="filter",
935
+ sort="name",
936
+ sort_order="asc",
937
+ status="queued",
938
+ next_token="nextToken",
910
939
  )
911
940
 
912
941
 
@@ -1044,7 +1073,10 @@ class AsyncDocumentsClient:
1044
1073
 
1045
1074
 
1046
1075
  async def main() -> None:
1047
- await client.documents.get_processes()
1076
+ await client.documents.get_processes(
1077
+ n=1,
1078
+ status="queued",
1079
+ )
1048
1080
 
1049
1081
 
1050
1082
  asyncio.run(main())
groundx/groups/client.py CHANGED
@@ -61,7 +61,10 @@ class GroupsClient:
61
61
  client = GroundX(
62
62
  api_key="YOUR_API_KEY",
63
63
  )
64
- client.groups.list()
64
+ client.groups.list(
65
+ n=1,
66
+ next_token="nextToken",
67
+ )
65
68
  """
66
69
  _response = self._raw_client.list(n=n, next_token=next_token, request_options=request_options)
67
70
  return _response.data
@@ -333,7 +336,10 @@ class AsyncGroupsClient:
333
336
 
334
337
 
335
338
  async def main() -> None:
336
- await client.groups.list()
339
+ await client.groups.list(
340
+ n=1,
341
+ next_token="nextToken",
342
+ )
337
343
 
338
344
 
339
345
  asyncio.run(main())
groundx/ingest.py CHANGED
@@ -125,7 +125,7 @@ def prep_documents(
125
125
  return remote_documents, local_documents
126
126
 
127
127
 
128
- def split_doc(file):
128
+ def split_doc(file: Path) -> typing.List[Path]:
129
129
  if file.is_file() and (
130
130
  file.suffix.lower() in ALLOWED_SUFFIXES
131
131
  or file.suffix.lower() in SUFFIX_ALIASES
@@ -142,9 +142,11 @@ class GroundX(GroundXBase):
142
142
  self,
143
143
  *,
144
144
  documents: typing.Sequence[Document],
145
- batch_size: typing.Optional[int] = 10,
146
- wait_for_complete: typing.Optional[bool] = False,
147
- upload_api: typing.Optional[str] = "https://api.eyelevel.ai/upload/file",
145
+ batch_size: int = 10,
146
+ wait_for_complete: bool = False,
147
+ upload_api: str = "https://api.eyelevel.ai/upload/file",
148
+ callback_url: typing.Optional[str] = None,
149
+ callback_data: typing.Optional[str] = None,
148
150
  request_options: typing.Optional[RequestOptions] = None,
149
151
  ) -> IngestResponse:
150
152
  """
@@ -165,6 +167,13 @@ class GroundX(GroundXBase):
165
167
  # and returns a presigned URL in a JSON dictionary with key 'URL'
166
168
  upload_api : typing.Optional[str]
167
169
 
170
+ # an endpoint that will receive processing event updates as POST
171
+ callback_url : typing.Optional[str]
172
+
173
+ # a string that is returned, along with processing event updates,
174
+ # to the callback URL.
175
+ callback_data : typing.Optional[str]
176
+
168
177
  request_options : typing.Optional[RequestOptions]
169
178
  Request-specific configuration.
170
179
 
@@ -209,6 +218,8 @@ class GroundX(GroundXBase):
209
218
  if len(remote_batch) >= n:
210
219
  ingest = self.documents.ingest_remote(
211
220
  documents=remote_batch,
221
+ callback_url=callback_url,
222
+ callback_data=callback_data,
212
223
  request_options=request_options,
213
224
  )
214
225
  ingest, progress = self._monitor_batch(ingest, progress, pbar)
@@ -222,6 +233,8 @@ class GroundX(GroundXBase):
222
233
  if remote_batch:
223
234
  ingest = self.documents.ingest_remote(
224
235
  documents=remote_batch,
236
+ callback_data=callback_data,
237
+ callback_url=callback_url,
225
238
  request_options=request_options,
226
239
  )
227
240
  ingest, progress = self._monitor_batch(ingest, progress, pbar)
@@ -243,6 +256,8 @@ class GroundX(GroundXBase):
243
256
 
244
257
  ingest = self.documents.ingest_remote(
245
258
  documents=up_docs,
259
+ callback_url=callback_url,
260
+ callback_data=callback_data,
246
261
  request_options=request_options,
247
262
  )
248
263
  ingest, progress = self._monitor_batch(ingest, progress, pbar)
@@ -258,6 +273,8 @@ class GroundX(GroundXBase):
258
273
 
259
274
  ingest = self.documents.ingest_remote(
260
275
  documents=up_docs,
276
+ callback_data=callback_data,
277
+ callback_url=callback_url,
261
278
  request_options=request_options,
262
279
  )
263
280
  ingest, progress = self._monitor_batch(ingest, progress, pbar)
@@ -270,11 +287,13 @@ class GroundX(GroundXBase):
270
287
  raise ValueError("You have sent too many documents in this request")
271
288
 
272
289
 
273
- up_docs, _ = self._process_local(local_documents, upload_api)
290
+ up_docs, _ = self._process_local(local_documents, upload_api, 0, None)
274
291
  remote_documents.extend(up_docs)
275
292
 
276
293
  return self.documents.ingest_remote(
277
294
  documents=remote_documents,
295
+ callback_url=callback_url,
296
+ callback_data=callback_data,
278
297
  request_options=request_options,
279
298
  )
280
299
 
@@ -283,8 +302,10 @@ class GroundX(GroundXBase):
283
302
  *,
284
303
  bucket_id: int,
285
304
  path: str,
286
- batch_size: typing.Optional[int] = 10,
287
- upload_api: typing.Optional[str] = "https://api.eyelevel.ai/upload/file",
305
+ batch_size: int = 10,
306
+ upload_api: str = "https://api.eyelevel.ai/upload/file",
307
+ callback_url: typing.Optional[str] = None,
308
+ callback_data: typing.Optional[str] = None,
288
309
  request_options: typing.Optional[RequestOptions] = None,
289
310
  ):
290
311
  """
@@ -300,6 +321,13 @@ class GroundX(GroundXBase):
300
321
  # and returns a presigned URL in a JSON dictionary with key 'URL'
301
322
  upload_api : typing.Optional[str]
302
323
 
324
+ # an endpoint that will receive processing event updates as POST
325
+ callback_url : typing.Optional[str]
326
+
327
+ # a string that is returned, along with processing event updates,
328
+ # to the callback URL.
329
+ callback_data : typing.Optional[str]
330
+
303
331
  request_options : typing.Optional[RequestOptions]
304
332
  Request-specific configuration.
305
333
 
@@ -357,7 +385,7 @@ class GroundX(GroundXBase):
357
385
  file_size = file.stat().st_size
358
386
 
359
387
  if (current_batch_size + file_size > MAX_BATCH_SIZE_BYTES) or (len(current_batch) >= n):
360
- self._upload_file_batch(bucket_id, current_batch, upload_api, request_options, pbar)
388
+ self._upload_file_batch(bucket_id, current_batch, upload_api, callback_url, callback_data, request_options, pbar)
361
389
  current_batch = []
362
390
  current_batch_size = 0
363
391
 
@@ -365,13 +393,13 @@ class GroundX(GroundXBase):
365
393
  current_batch_size += file_size
366
394
 
367
395
  if current_batch:
368
- self._upload_file_batch(bucket_id, current_batch, upload_api, request_options, pbar)
396
+ self._upload_file_batch(bucket_id, current_batch, upload_api, callback_url, callback_data, request_options, pbar)
369
397
 
370
398
  def _upload_file(
371
399
  self,
372
- endpoint,
373
- file_path,
374
- ):
400
+ endpoint: str,
401
+ file_path: Path,
402
+ ) -> str:
375
403
  file_name = os.path.basename(file_path)
376
404
  file_extension = os.path.splitext(file_name)[1][1:].lower()
377
405
  if f".{file_extension}" in SUFFIX_ALIASES:
@@ -407,12 +435,12 @@ class GroundX(GroundXBase):
407
435
 
408
436
  def _process_local(
409
437
  self,
410
- local_docs,
411
- upload_api,
412
- progress = None,
413
- pbar = None,
414
- ):
415
- remote_docs = []
438
+ local_docs: typing.List[Document],
439
+ upload_api: str,
440
+ progress: float,
441
+ pbar: typing.Optional[typing.Any] = None,
442
+ ) -> typing.Tuple[typing.List[IngestRemoteDocument], float]:
443
+ remote_docs: typing.List[IngestRemoteDocument] = []
416
444
  for d in local_docs:
417
445
  splits = split_doc(Path(os.path.expanduser(d.file_path)))
418
446
 
@@ -439,23 +467,22 @@ class GroundX(GroundXBase):
439
467
  )
440
468
  )
441
469
 
442
- if progress is not None and pbar is not None and pbar.update is not None:
470
+ progress -= 0.25
471
+ if pbar is not None and pbar.update is not None:
443
472
  pbar.update(0.25)
444
- progress -= 0.25
445
473
 
446
474
  return remote_docs, progress
447
475
 
448
476
  def _monitor_batch(
449
477
  self,
450
- ingest,
451
- progress,
452
- pbar,
453
- ):
454
- completed_files = set()
478
+ ingest: IngestResponse,
479
+ progress: float,
480
+ pbar: typing.Any,
481
+ ) -> typing.Tuple[IngestResponse, float]:
482
+ completed_files: typing.Set[str] = set()
455
483
 
456
484
  while (
457
- ingest is not None
458
- and ingest.ingest.status not in ["complete", "error", "cancelled"]
485
+ ingest.ingest.status not in ["complete", "error", "cancelled"]
459
486
  ):
460
487
  time.sleep(3)
461
488
  ingest = self.documents.get_processing_status_by_id(ingest.ingest.process_id)
@@ -494,13 +521,15 @@ class GroundX(GroundXBase):
494
521
 
495
522
  def _upload_file_batch(
496
523
  self,
497
- bucket_id,
498
- batch,
499
- upload_api,
500
- request_options,
501
- pbar,
502
- ):
503
- docs = []
524
+ bucket_id: int,
525
+ batch: typing.List[Path],
526
+ upload_api: str,
527
+ callback_url: typing.Optional[str],
528
+ callback_data: typing.Optional[str],
529
+ request_options: typing.Optional[RequestOptions],
530
+ pbar: typing.Any,
531
+ ) -> None:
532
+ docs: typing.List[Document] = []
504
533
 
505
534
  progress = float(len(batch))
506
535
  for file in batch:
@@ -526,7 +555,12 @@ class GroundX(GroundXBase):
526
555
  progress -= 0.25
527
556
 
528
557
  if docs:
529
- ingest = self.ingest(documents=docs, request_options=request_options)
558
+ ingest = self.ingest(
559
+ documents=docs,
560
+ callback_data=callback_data,
561
+ callback_url=callback_url,
562
+ request_options=request_options,
563
+ )
530
564
  ingest, progress = self._monitor_batch(ingest, progress, pbar)
531
565
 
532
566
  if progress > 0:
@@ -540,6 +574,8 @@ class AsyncGroundX(AsyncGroundXBase):
540
574
  *,
541
575
  documents: typing.Sequence[Document],
542
576
  upload_api: str = "https://api.eyelevel.ai/upload/file",
577
+ callback_url: typing.Optional[str] = None,
578
+ callback_data: typing.Optional[str] = None,
543
579
  request_options: typing.Optional[RequestOptions] = None,
544
580
  ) -> IngestResponse:
545
581
  """
@@ -553,6 +589,13 @@ class AsyncGroundX(AsyncGroundXBase):
553
589
  # and returns a presigned URL in a JSON dictionary with key 'URL'
554
590
  upload_api : typing.Optional[str]
555
591
 
592
+ # an endpoint that will receive processing event updates as POST
593
+ callback_url : typing.Optional[str]
594
+
595
+ # a string that is returned, along with processing event updates,
596
+ # to the callback URL.
597
+ callback_data : typing.Optional[str]
598
+
556
599
  request_options : typing.Optional[RequestOptions]
557
600
  Request-specific configuration.
558
601
 
@@ -621,14 +664,16 @@ class AsyncGroundX(AsyncGroundXBase):
621
664
 
622
665
  return await self.documents.ingest_remote(
623
666
  documents=remote_documents,
667
+ callback_url=callback_url,
668
+ callback_data=callback_data,
624
669
  request_options=request_options,
625
670
  )
626
671
 
627
672
  def _upload_file(
628
673
  self,
629
- endpoint,
630
- file_path,
631
- ):
674
+ endpoint: str,
675
+ file_path: Path,
676
+ ) -> str:
632
677
  file_name = os.path.basename(file_path)
633
678
  file_extension = os.path.splitext(file_name)[1][1:].lower()
634
679
  if f".{file_extension}" in SUFFIX_ALIASES:
groundx/search/client.py CHANGED
@@ -83,7 +83,9 @@ class SearchClient:
83
83
  )
84
84
  client.search.content(
85
85
  id=1,
86
+ n=1,
86
87
  next_token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
88
+ verbosity=1,
87
89
  query="my search query",
88
90
  )
89
91
  """
@@ -154,7 +156,9 @@ class SearchClient:
154
156
  api_key="YOUR_API_KEY",
155
157
  )
156
158
  client.search.documents(
159
+ n=1,
157
160
  next_token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
161
+ verbosity=1,
158
162
  query="my search query",
159
163
  document_ids=["docUUID1", "docUUID2"],
160
164
  )
@@ -248,7 +252,9 @@ class AsyncSearchClient:
248
252
  async def main() -> None:
249
253
  await client.search.content(
250
254
  id=1,
255
+ n=1,
251
256
  next_token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
257
+ verbosity=1,
252
258
  query="my search query",
253
259
  )
254
260
 
@@ -327,7 +333,9 @@ class AsyncSearchClient:
327
333
 
328
334
  async def main() -> None:
329
335
  await client.search.documents(
336
+ n=1,
330
337
  next_token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
338
+ verbosity=1,
331
339
  query="my search query",
332
340
  document_ids=["docUUID1", "docUUID2"],
333
341
  )
@@ -50,6 +50,13 @@ class DocumentDetail(UniversalBaseModel):
50
50
 
51
51
  status: typing.Optional[ProcessingStatus] = None
52
52
  status_message: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="statusMessage")] = None
53
+ text_url: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="textUrl")] = pydantic.Field(
54
+ default=None
55
+ )
56
+ """
57
+ Extracted text URL, if using the extract agent
58
+ """
59
+
53
60
  xray_url: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="xrayUrl")] = pydantic.Field(
54
61
  default=None
55
62
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: groundx
3
- Version: 2.3.8
3
+ Version: 2.4.1
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.8,<4.0
@@ -1,11 +1,11 @@
1
1
  groundx/__init__.py,sha256=0ysG1bUu9YHhB92o5bZdxvLKTLPzmYb_Lk06fDC-Dww,2945
2
2
  groundx/buckets/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
3
- groundx/buckets/client.py,sha256=OGD9D7SkaeBvS7aWDGTLmTUHt0cgnvn15eJq-5WWGoo,11324
3
+ groundx/buckets/client.py,sha256=F1tcqQoqmrC8lQtRZvmXldIdVxIp1LWfdbAfY8SB5sM,11460
4
4
  groundx/buckets/raw_client.py,sha256=T2Ty5obN7eHbaxHGAimzjM8MGOmSOQEckhciyZkzcjE,23873
5
5
  groundx/client.py,sha256=FsVhPSZ1kd70pOVv37zTbNSwBM7XdttSx4aEPobPoew,6412
6
6
  groundx/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
7
7
  groundx/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
8
- groundx/core/client_wrapper.py,sha256=6kt4UKqg0xo6rR-WTr5MysDjueo-vbjqXq2vVg_sXWs,1822
8
+ groundx/core/client_wrapper.py,sha256=7yftL5NfOHpioDHfwHdlzKnHPB2CmoFcGiwm1Fd60e4,1822
9
9
  groundx/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
10
10
  groundx/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
11
11
  groundx/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -22,22 +22,22 @@ groundx/customer/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,
22
22
  groundx/customer/client.py,sha256=OAW3fJcOjvSvmGBbQEiNRlPE-dt15yFZHYXq9qrSXnw,2710
23
23
  groundx/customer/raw_client.py,sha256=7qz8GU8Qe4G16YzeZ2Rz_cHNODPMTevOt4toPqCe0io,3403
24
24
  groundx/documents/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
25
- groundx/documents/client.py,sha256=PX6UsmF9-ISORcAjbG3Na-XCY1q1Y1H4C8r5VKBHjkY,33597
25
+ groundx/documents/client.py,sha256=hRPDQnsrr6P3jvEC6lcW3B-_npTGOhcCw_H6gsWdC0U,34453
26
26
  groundx/documents/raw_client.py,sha256=u_qX6LSVsb2HxzNGC3DguCLqSZbGvSsQcStj1PyCoDA,59355
27
27
  groundx/environment.py,sha256=CInm1_DKtZ1mrxutmKb1qqv82P33r_S87hZD3Hc1VB0,159
28
28
  groundx/errors/__init__.py,sha256=Ua3Z6OWyRhcgrq0FSXOpwmOc4RxyTgzP2LXbkzGbMhk,234
29
29
  groundx/errors/bad_request_error.py,sha256=PnE3v3kETCXm9E3LiNcHLNtjPEUvpe98-r59q-kQb78,338
30
30
  groundx/errors/unauthorized_error.py,sha256=mryinHCAaknn5St2VF17R9XybZUcWRRYWEjxg63dQSA,340
31
31
  groundx/groups/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
32
- groundx/groups/client.py,sha256=jPnFPv4FHvYBQxuFxjbQvdUWrhIB8kkKbzUkoosMUP0,16674
32
+ groundx/groups/client.py,sha256=QsZcOXVPHAdUPYPsfuFiPOkyssapSWLZYVD82NWmrSE,16810
33
33
  groundx/groups/raw_client.py,sha256=nP9yFh7MexjDUQU8TtB5j-HAmZJjQWOd78hu-KeMnRs,35111
34
34
  groundx/health/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
35
35
  groundx/health/client.py,sha256=kcGIlqCEzBl6fuwJaf3x-obOagXxyAlEFaPRH3qgdDs,4566
36
36
  groundx/health/raw_client.py,sha256=_TDa-O13PtC0RYCAq4bx5FESz1oLDLp9WExyOKjsIjs,7430
37
- groundx/ingest.py,sha256=Tg2tQXJ5WtfyktMXMIM6qXgEYlRHXiC6-mXx58-bcxQ,22521
37
+ groundx/ingest.py,sha256=yMX39sDmm0NfdojkBtPxcIBGNXn33djCJO5nlcIKX3c,24780
38
38
  groundx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  groundx/search/__init__.py,sha256=Y1EKHPBEh-ebo1YOikCHTHU9E8kBP2s7K4J_kZGzcOA,165
40
- groundx/search/client.py,sha256=P4-oektRdgtfxoi_NiGDSOrB2dDWfO9M5kVy61CnCPQ,13599
40
+ groundx/search/client.py,sha256=ArfAbcQGS6eCWuMU5Ld-AQ8nB0Vh-4Jec3tt05QJtuM,13783
41
41
  groundx/search/raw_client.py,sha256=_qO5u62e1d0rVbRUeyJFdt85v7WT_bSHcSLf8wJvfgQ,19545
42
42
  groundx/search/types/__init__.py,sha256=sy0s9qFdeT4Q3SJxK6hrulnsPirVpKkjxI29OqLTY0s,185
43
43
  groundx/search/types/search_content_request_id.py,sha256=us7mYdzR0qPur_wR5I9BhHaLEzC5nLBRna6-xq4M1ec,128
@@ -51,7 +51,7 @@ groundx/types/bucket_update_response.py,sha256=2gSJ77lwb12YPBnDXFflZTtFa6vIen1jd
51
51
  groundx/types/customer_detail.py,sha256=yvSzH-6YZviBNGgeAk3uB1Tvrpp5FW1bEI_wmKklF2c,1058
52
52
  groundx/types/customer_response.py,sha256=jIU8Q5hAFJA3Bt1-3E4p00blQLbjeNAF5-pfXSiih1w,582
53
53
  groundx/types/document.py,sha256=eO1hcklCSp8buUaqjBT6gYQsxVl85HvIEAa4iJdw4ms,2052
54
- groundx/types/document_detail.py,sha256=ENAeaf6shIHpIsDbOdDjX6DRrC6ButKfLMrgw-vANsM,2506
54
+ groundx/types/document_detail.py,sha256=jrKq3Qjp4qyX6Wx2yeDj5GGX1VKY4N6dcnvks0YBKbw,2715
55
55
  groundx/types/document_list_response.py,sha256=n8yfjEA_k-_dPmRxsOAK2vXa7HtDkPNO8FF0dB4LFI4,803
56
56
  groundx/types/document_local_ingest_request.py,sha256=y3rIqid4VXWNgb6wTis7zQmxsnKYIwOiFQwv5GLmpsQ,198
57
57
  groundx/types/document_lookup_response.py,sha256=-ZXxd5RvE980PbTu_AOiQ-cIcHCG4HVkqphRZjCCd2s,1252
@@ -90,7 +90,7 @@ groundx/types/subscription_detail.py,sha256=GEEivqyiLsZtd8Ow7mqqwF1y0m0tHD-t9r9d
90
90
  groundx/types/subscription_detail_meters.py,sha256=vGqiR2uupVh5177DfOghjoe5mwzVhoWljKzPF-twUc0,794
91
91
  groundx/types/website_source.py,sha256=53jWDBtSrJVOsBVtVbZbjhEAsd0QGkXa7IuKO4AooLs,1542
92
92
  groundx/version.py,sha256=1yVogKaq260fQfckM2RYN2144SEw0QROsZW8ICtkG4U,74
93
- groundx-2.3.8.dist-info/LICENSE,sha256=dFE6nY1bHnSn6NqmdlghlU1gQqLqYNphrceGVehSa7o,1065
94
- groundx-2.3.8.dist-info/METADATA,sha256=-QQUskjzs6nFZm4McDzrqSZKRVULQqNyNCawYRYuGk0,5173
95
- groundx-2.3.8.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
96
- groundx-2.3.8.dist-info/RECORD,,
93
+ groundx-2.4.1.dist-info/LICENSE,sha256=dFE6nY1bHnSn6NqmdlghlU1gQqLqYNphrceGVehSa7o,1065
94
+ groundx-2.4.1.dist-info/METADATA,sha256=67Zkfo0cZbaWd8kPy2OpG98Tq_CIwfJwPlGJtZrVdQY,5173
95
+ groundx-2.4.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
96
+ groundx-2.4.1.dist-info/RECORD,,