docforge-sdk 0.2.0__tar.gz → 0.3.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.
Files changed (58) hide show
  1. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/PKG-INFO +1 -1
  2. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_version.py +1 -1
  3. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/collections.py +30 -0
  4. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/openapi_snapshot.json +1 -1
  5. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/.gitignore +0 -0
  6. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/.python-version +0 -0
  7. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/LICENSE +0 -0
  8. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/README.md +0 -0
  9. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/__init__.py +0 -0
  10. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_exceptions.py +0 -0
  11. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_requestspec.py +0 -0
  12. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_transport_async.py +0 -0
  13. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_transport_base.py +0 -0
  14. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/_transport_sync.py +0 -0
  15. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/client.py +0 -0
  16. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/__init__.py +0 -0
  17. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/_shared.py +0 -0
  18. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/auth.py +0 -0
  19. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/blobs.py +0 -0
  20. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/documents.py +0 -0
  21. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/explorer.py +0 -0
  22. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/health.py +0 -0
  23. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/ir.py +0 -0
  24. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/jobs.py +0 -0
  25. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/pipelines.py +0 -0
  26. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/models/search.py +0 -0
  27. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/py.typed +0 -0
  28. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/__init__.py +0 -0
  29. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/_base.py +0 -0
  30. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/auth.py +0 -0
  31. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/blobs.py +0 -0
  32. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/collections.py +0 -0
  33. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/documents.py +0 -0
  34. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/explorer.py +0 -0
  35. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/health.py +0 -0
  36. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/jobs.py +0 -0
  37. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/pipelines.py +0 -0
  38. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/docforge_sdk/resources/search.py +0 -0
  39. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/pyproject.toml +0 -0
  40. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/__init__.py +0 -0
  41. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/check_schema_drift.py +0 -0
  42. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/live/__init__.py +0 -0
  43. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/live/test_openapi_parity_live.py +0 -0
  44. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/parity_map.py +0 -0
  45. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/__init__.py +0 -0
  46. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_auth.py +0 -0
  47. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_blobs.py +0 -0
  48. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_collections.py +0 -0
  49. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_documents.py +0 -0
  50. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_explorer.py +0 -0
  51. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_health.py +0 -0
  52. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_jobs.py +0 -0
  53. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_models_offline_parity.py +0 -0
  54. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_pipelines.py +0 -0
  55. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_resource_parity.py +0 -0
  56. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_search.py +0 -0
  57. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/tests/unit/test_transport.py +0 -0
  58. {docforge_sdk-0.2.0 → docforge_sdk-0.3.0}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docforge-sdk
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Typed async + sync Python client for the DocForge REST API (standalone, zero server deps).
5
5
  Project-URL: Homepage, https://github.com/Florian-BARRE/docforge
6
6
  Project-URL: Repository, https://github.com/Florian-BARRE/docforge
@@ -2,4 +2,4 @@
2
2
  # Single source of truth for the package version. Hatchling reads ``__version__`` from this file to
3
3
  # populate the distribution metadata (see ``[tool.hatch.version]`` in pyproject.toml).
4
4
 
5
- __version__ = "0.2.0"
5
+ __version__ = "0.3.0"
@@ -56,6 +56,8 @@ class CollectionModel(BaseModel):
56
56
  name (str): Unique human name.
57
57
  supported_formats (list[str]): Accepted upload extensions (e.g. pdf).
58
58
  max_file_size_bytes (int): Upload size ceiling, bytes.
59
+ job_timeout_seconds (float | None): Per-collection whole-ingest-job wall-clock budget,
60
+ seconds. None = inherit the worker's global WORKER_JOB_TIMEOUT_SECONDS default.
59
61
  needs_reindex (bool): True when a config change requires reindexing.
60
62
  created_at (datetime | None): Creation timestamp.
61
63
  pipeline (dict[str, Any]): The ingestion pipeline blob (the graph).
@@ -67,6 +69,14 @@ class CollectionModel(BaseModel):
67
69
  name: str = Field(description="Unique human name.")
68
70
  supported_formats: list[str] = Field(description="Accepted upload extensions (e.g. pdf).")
69
71
  max_file_size_bytes: int = Field(description="Upload size ceiling, bytes.")
72
+ job_timeout_seconds: float | None = Field(
73
+ default=None,
74
+ gt=0,
75
+ description=(
76
+ "Per-collection whole-ingest-job wall-clock budget, seconds. None = inherit the "
77
+ "worker's global WORKER_JOB_TIMEOUT_SECONDS default."
78
+ ),
79
+ )
70
80
  needs_reindex: bool = Field(description="True when a config change requires reindexing.")
71
81
  created_at: datetime | None = Field(default=None, description="Creation timestamp.")
72
82
  pipeline: dict[str, Any] = Field(description="The ingestion pipeline blob (the graph).")
@@ -84,6 +94,8 @@ class CreateCollectionRequest(BaseModel):
84
94
  name (str): Unique human name.
85
95
  supported_formats (list[str]): Accepted upload extensions (e.g. pdf).
86
96
  max_file_size_bytes (int): Upload size ceiling, bytes.
97
+ job_timeout_seconds (float | None): Per-collection whole-ingest-job wall-clock budget,
98
+ seconds. None = inherit the worker's global WORKER_JOB_TIMEOUT_SECONDS default.
87
99
  fields (list[FieldSpec]): The FULL schema, declared up front (vector space is fixed).
88
100
  pipeline (dict[str, Any] | None): The pipeline blob; omitted → the product default.
89
101
  """
@@ -91,6 +103,14 @@ class CreateCollectionRequest(BaseModel):
91
103
  name: str = Field(description="Unique human name.")
92
104
  supported_formats: list[str] = Field(description="Accepted upload extensions (e.g. pdf).")
93
105
  max_file_size_bytes: int = Field(description="Upload size ceiling, bytes.")
106
+ job_timeout_seconds: float | None = Field(
107
+ default=None,
108
+ gt=0,
109
+ description=(
110
+ "Per-collection whole-ingest-job wall-clock budget, seconds. None = inherit the "
111
+ "worker's global WORKER_JOB_TIMEOUT_SECONDS default."
112
+ ),
113
+ )
94
114
  fields: list[FieldSpec] = Field(
95
115
  default_factory=list,
96
116
  description="The FULL schema, declared up front (vector space is fixed at creation).",
@@ -114,6 +134,8 @@ class UpdateCollectionRequest(BaseModel):
114
134
  name (str | None): New unique name.
115
135
  supported_formats (list[str] | None): New accepted upload extensions.
116
136
  max_file_size_bytes (int | None): New size ceiling, bytes.
137
+ job_timeout_seconds (float | None): New per-collection whole-ingest-job wall-clock
138
+ budget, seconds. Omitted = leave the current value unchanged.
117
139
  fields (list[FieldSpec] | None): The TARGET schema (diffed by field name).
118
140
  pipeline (dict[str, Any] | None): New pipeline blob (validated before storage).
119
141
  search (dict[str, Any] | None): New search graph blob ({} = stock default).
@@ -125,6 +147,14 @@ class UpdateCollectionRequest(BaseModel):
125
147
  default=None, description="New accepted upload extensions."
126
148
  )
127
149
  max_file_size_bytes: int | None = Field(default=None, description="New size ceiling, bytes.")
150
+ job_timeout_seconds: float | None = Field(
151
+ default=None,
152
+ gt=0,
153
+ description=(
154
+ "New per-collection whole-ingest-job wall-clock budget, seconds. Omitted = leave the "
155
+ "current value unchanged; a set value overrides the global WORKER_JOB_TIMEOUT_SECONDS."
156
+ ),
157
+ )
128
158
  fields: list[FieldSpec] | None = Field(
129
159
  default=None,
130
160
  description="The TARGET schema (diffed by field name; omitted fields are removed).",