groundx 2.2.0__tar.gz → 2.2.1__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.
Files changed (86) hide show
  1. {groundx-2.2.0 → groundx-2.2.1}/PKG-INFO +1 -1
  2. {groundx-2.2.0 → groundx-2.2.1}/pyproject.toml +1 -1
  3. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/client_wrapper.py +1 -1
  4. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/http_client.py +2 -2
  5. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/pydantic_utilities.py +2 -2
  6. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/documents/client.py +164 -0
  7. groundx-2.2.1/src/groundx/types/processing_status.py +7 -0
  8. groundx-2.2.0/src/groundx/types/processing_status.py +0 -5
  9. {groundx-2.2.0 → groundx-2.2.1}/LICENSE +0 -0
  10. {groundx-2.2.0 → groundx-2.2.1}/README.md +0 -0
  11. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/__init__.py +0 -0
  12. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/buckets/__init__.py +0 -0
  13. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/buckets/client.py +0 -0
  14. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/client.py +0 -0
  15. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/__init__.py +0 -0
  16. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/api_error.py +0 -0
  17. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/datetime_utils.py +0 -0
  18. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/file.py +0 -0
  19. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/jsonable_encoder.py +0 -0
  20. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/query_encoder.py +0 -0
  21. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/remove_none_from_dict.py +0 -0
  22. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/request_options.py +0 -0
  23. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/core/serialization.py +0 -0
  24. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/customer/__init__.py +0 -0
  25. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/customer/client.py +0 -0
  26. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/documents/__init__.py +0 -0
  27. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/environment.py +0 -0
  28. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/errors/__init__.py +0 -0
  29. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/errors/bad_request_error.py +0 -0
  30. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/errors/unauthorized_error.py +0 -0
  31. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/groups/__init__.py +0 -0
  32. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/groups/client.py +0 -0
  33. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/health/__init__.py +0 -0
  34. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/health/client.py +0 -0
  35. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/ingest.py +0 -0
  36. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/py.typed +0 -0
  37. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/search/__init__.py +0 -0
  38. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/search/client.py +0 -0
  39. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/search/types/__init__.py +0 -0
  40. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/search/types/search_content_request_id.py +0 -0
  41. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/__init__.py +0 -0
  42. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bounding_box_detail.py +0 -0
  43. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bucket_detail.py +0 -0
  44. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bucket_list_response.py +0 -0
  45. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bucket_response.py +0 -0
  46. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bucket_update_detail.py +0 -0
  47. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/bucket_update_response.py +0 -0
  48. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/customer_detail.py +0 -0
  49. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/customer_response.py +0 -0
  50. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document.py +0 -0
  51. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_detail.py +0 -0
  52. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_list_response.py +0 -0
  53. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_local_ingest_request.py +0 -0
  54. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_lookup_response.py +0 -0
  55. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_response.py +0 -0
  56. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/document_type.py +0 -0
  57. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/group_detail.py +0 -0
  58. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/group_list_response.py +0 -0
  59. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/group_response.py +0 -0
  60. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/health_response.py +0 -0
  61. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/health_response_health.py +0 -0
  62. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/health_service.py +0 -0
  63. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/health_service_status.py +0 -0
  64. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/ingest_local_document.py +0 -0
  65. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/ingest_local_document_metadata.py +0 -0
  66. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/ingest_remote_document.py +0 -0
  67. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/ingest_response.py +0 -0
  68. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/ingest_response_ingest.py +0 -0
  69. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/message_response.py +0 -0
  70. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/meter_detail.py +0 -0
  71. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response.py +0 -0
  72. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest.py +0 -0
  73. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest_progress.py +0 -0
  74. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest_progress_cancelled.py +0 -0
  75. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest_progress_complete.py +0 -0
  76. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest_progress_errors.py +0 -0
  77. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/process_status_response_ingest_progress_processing.py +0 -0
  78. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/search_response.py +0 -0
  79. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/search_response_search.py +0 -0
  80. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/search_result_item.py +0 -0
  81. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/sort.py +0 -0
  82. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/sort_order.py +0 -0
  83. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/subscription_detail.py +0 -0
  84. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/subscription_detail_meters.py +0 -0
  85. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/types/website_source.py +0 -0
  86. {groundx-2.2.0 → groundx-2.2.1}/src/groundx/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: groundx
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.8,<4.0
@@ -3,7 +3,7 @@ name = "groundx"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "groundx"
6
- version = "2.2.0"
6
+ version = "2.2.1"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -16,7 +16,7 @@ class BaseClientWrapper:
16
16
  headers: typing.Dict[str, str] = {
17
17
  "X-Fern-Language": "Python",
18
18
  "X-Fern-SDK-Name": "groundx",
19
- "X-Fern-SDK-Version": "2.2.0",
19
+ "X-Fern-SDK-Version": "2.2.1",
20
20
  }
21
21
  headers["X-API-Key"] = self.api_key
22
22
  return headers
@@ -85,8 +85,8 @@ def _retry_timeout(response: httpx.Response, retries: int) -> float:
85
85
 
86
86
 
87
87
  def _should_retry(response: httpx.Response) -> bool:
88
- retriable_400s = [429, 408, 409]
89
- return response.status_code >= 500 or response.status_code in retriable_400s
88
+ retryable_400s = [429, 408, 409]
89
+ return response.status_code >= 500 or response.status_code in retryable_400s
90
90
 
91
91
 
92
92
  def remove_omit_from_dict(
@@ -79,7 +79,7 @@ def to_jsonable_with_fallback(
79
79
  class UniversalBaseModel(pydantic.BaseModel):
80
80
  if IS_PYDANTIC_V2:
81
81
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
82
- # Allow fields begining with `model_` to be used in the model
82
+ # Allow fields beginning with `model_` to be used in the model
83
83
  protected_namespaces=(),
84
84
  ) # type: ignore # Pydantic v2
85
85
 
@@ -128,7 +128,7 @@ class UniversalBaseModel(pydantic.BaseModel):
128
128
  Override the default dict method to `exclude_unset` by default. This function patches
129
129
  `exclude_unset` to work include fields within non-None default values.
130
130
  """
131
- # Note: the logic here is multi-plexed given the levers exposed in Pydantic V1 vs V2
131
+ # Note: the logic here is multiplexed given the levers exposed in Pydantic V1 vs V2
132
132
  # Pydantic V1's .dict can be extremely slow, so we do not want to call it twice.
133
133
  #
134
134
  # We'd ideally do the same for Pydantic V2, but it shells out to a library to serialize models
@@ -748,6 +748,84 @@ class DocumentsClient:
748
748
  raise ApiError(status_code=_response.status_code, body=_response.text)
749
749
  raise ApiError(status_code=_response.status_code, body=_response_json)
750
750
 
751
+ def document_get_processing_status(
752
+ self,
753
+ *,
754
+ n: typing.Optional[int] = None,
755
+ status: typing.Optional[ProcessingStatus] = None,
756
+ request_options: typing.Optional[RequestOptions] = None,
757
+ ) -> DocumentResponse:
758
+ """
759
+ Get the current status of ingest processes, sorted from most recent to least.
760
+
761
+ Parameters
762
+ ----------
763
+ n : typing.Optional[int]
764
+ The maximum number of returned processes. Accepts 1-100 with a default of 20.
765
+
766
+ status : typing.Optional[ProcessingStatus]
767
+ A status filter on the processing status. If this value is set, then only processes with this status will be returned in the results.
768
+
769
+ request_options : typing.Optional[RequestOptions]
770
+ Request-specific configuration.
771
+
772
+ Returns
773
+ -------
774
+ DocumentResponse
775
+ Look up success
776
+
777
+ Examples
778
+ --------
779
+ from groundx import GroundX
780
+
781
+ client = GroundX(
782
+ api_key="YOUR_API_KEY",
783
+ )
784
+ client.documents.document_get_processing_status()
785
+ """
786
+ _response = self._client_wrapper.httpx_client.request(
787
+ "v1/ingest",
788
+ method="GET",
789
+ params={
790
+ "n": n,
791
+ "status": status,
792
+ },
793
+ request_options=request_options,
794
+ )
795
+ try:
796
+ if 200 <= _response.status_code < 300:
797
+ return typing.cast(
798
+ DocumentResponse,
799
+ parse_obj_as(
800
+ type_=DocumentResponse, # type: ignore
801
+ object_=_response.json(),
802
+ ),
803
+ )
804
+ if _response.status_code == 400:
805
+ raise BadRequestError(
806
+ typing.cast(
807
+ typing.Optional[typing.Any],
808
+ parse_obj_as(
809
+ type_=typing.Optional[typing.Any], # type: ignore
810
+ object_=_response.json(),
811
+ ),
812
+ )
813
+ )
814
+ if _response.status_code == 401:
815
+ raise UnauthorizedError(
816
+ typing.cast(
817
+ typing.Optional[typing.Any],
818
+ parse_obj_as(
819
+ type_=typing.Optional[typing.Any], # type: ignore
820
+ object_=_response.json(),
821
+ ),
822
+ )
823
+ )
824
+ _response_json = _response.json()
825
+ except JSONDecodeError:
826
+ raise ApiError(status_code=_response.status_code, body=_response.text)
827
+ raise ApiError(status_code=_response.status_code, body=_response_json)
828
+
751
829
 
752
830
  class AsyncDocumentsClient:
753
831
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -1547,3 +1625,89 @@ class AsyncDocumentsClient:
1547
1625
  except JSONDecodeError:
1548
1626
  raise ApiError(status_code=_response.status_code, body=_response.text)
1549
1627
  raise ApiError(status_code=_response.status_code, body=_response_json)
1628
+
1629
+ async def document_get_processing_status(
1630
+ self,
1631
+ *,
1632
+ n: typing.Optional[int] = None,
1633
+ status: typing.Optional[ProcessingStatus] = None,
1634
+ request_options: typing.Optional[RequestOptions] = None,
1635
+ ) -> DocumentResponse:
1636
+ """
1637
+ Get the current status of ingest processes, sorted from most recent to least.
1638
+
1639
+ Parameters
1640
+ ----------
1641
+ n : typing.Optional[int]
1642
+ The maximum number of returned processes. Accepts 1-100 with a default of 20.
1643
+
1644
+ status : typing.Optional[ProcessingStatus]
1645
+ A status filter on the processing status. If this value is set, then only processes with this status will be returned in the results.
1646
+
1647
+ request_options : typing.Optional[RequestOptions]
1648
+ Request-specific configuration.
1649
+
1650
+ Returns
1651
+ -------
1652
+ DocumentResponse
1653
+ Look up success
1654
+
1655
+ Examples
1656
+ --------
1657
+ import asyncio
1658
+
1659
+ from groundx import AsyncGroundX
1660
+
1661
+ client = AsyncGroundX(
1662
+ api_key="YOUR_API_KEY",
1663
+ )
1664
+
1665
+
1666
+ async def main() -> None:
1667
+ await client.documents.document_get_processing_status()
1668
+
1669
+
1670
+ asyncio.run(main())
1671
+ """
1672
+ _response = await self._client_wrapper.httpx_client.request(
1673
+ "v1/ingest",
1674
+ method="GET",
1675
+ params={
1676
+ "n": n,
1677
+ "status": status,
1678
+ },
1679
+ request_options=request_options,
1680
+ )
1681
+ try:
1682
+ if 200 <= _response.status_code < 300:
1683
+ return typing.cast(
1684
+ DocumentResponse,
1685
+ parse_obj_as(
1686
+ type_=DocumentResponse, # type: ignore
1687
+ object_=_response.json(),
1688
+ ),
1689
+ )
1690
+ if _response.status_code == 400:
1691
+ raise BadRequestError(
1692
+ typing.cast(
1693
+ typing.Optional[typing.Any],
1694
+ parse_obj_as(
1695
+ type_=typing.Optional[typing.Any], # type: ignore
1696
+ object_=_response.json(),
1697
+ ),
1698
+ )
1699
+ )
1700
+ if _response.status_code == 401:
1701
+ raise UnauthorizedError(
1702
+ typing.cast(
1703
+ typing.Optional[typing.Any],
1704
+ parse_obj_as(
1705
+ type_=typing.Optional[typing.Any], # type: ignore
1706
+ object_=_response.json(),
1707
+ ),
1708
+ )
1709
+ )
1710
+ _response_json = _response.json()
1711
+ except JSONDecodeError:
1712
+ raise ApiError(status_code=_response.status_code, body=_response.text)
1713
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ProcessingStatus = typing.Union[
6
+ typing.Literal["queued", "processing", "error", "complete", "cancelled", "active", "inactive"], typing.Any
7
+ ]
@@ -1,5 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- ProcessingStatus = typing.Union[typing.Literal["queued", "processing", "error", "complete", "cancelled"], typing.Any]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes