byteit 1.1.2__tar.gz → 1.2.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 (55) hide show
  1. {byteit-1.1.2 → byteit-1.2.0}/CHANGELOG.md +148 -115
  2. {byteit-1.1.2 → byteit-1.2.0}/LICENSE +200 -200
  3. {byteit-1.1.2 → byteit-1.2.0}/MANIFEST.in +6 -6
  4. byteit-1.2.0/PKG-INFO +367 -0
  5. byteit-1.2.0/README.md +329 -0
  6. byteit-1.2.0/byteit/ByteITClient.py +1407 -0
  7. {byteit-1.1.2 → byteit-1.2.0}/byteit/__init__.py +131 -121
  8. byteit-1.2.0/byteit/_http.py +166 -0
  9. byteit-1.2.0/byteit/_polling.py +140 -0
  10. byteit-1.2.0/byteit/_rate_limit.py +151 -0
  11. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/LocalFileInputConnector.py +60 -60
  12. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/LocalFileOutputConnector.py +23 -23
  13. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/S3InputConnector.py +80 -80
  14. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/S3OutputConnector.py +51 -51
  15. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/__init__.py +26 -26
  16. {byteit-1.1.2 → byteit-1.2.0}/byteit/connectors/base.py +54 -54
  17. {byteit-1.1.2 → byteit-1.2.0}/byteit/exceptions.py +119 -107
  18. byteit-1.2.0/byteit/models/CustomJob.py +96 -0
  19. byteit-1.2.0/byteit/models/CustomJobList.py +34 -0
  20. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/DocumentMetadata.py +24 -24
  21. byteit-1.2.0/byteit/models/DocumentType.py +37 -0
  22. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ExtractJob.py +77 -77
  23. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ExtractJobList.py +59 -59
  24. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ExtractionSchema.py +78 -78
  25. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ExtractionType.py +10 -10
  26. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/JobList.py +59 -59
  27. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/JobStatus.py +43 -43
  28. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/OutputFormat.py +18 -18
  29. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ParseJob.py +98 -98
  30. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/ProcessingOptions.py +110 -97
  31. byteit-1.2.0/byteit/models/SavedSchema.py +30 -0
  32. byteit-1.2.0/byteit/models/SavedSchemaList.py +26 -0
  33. {byteit-1.1.2 → byteit-1.2.0}/byteit/models/__init__.py +34 -23
  34. {byteit-1.1.2 → byteit-1.2.0}/byteit/progress.py +175 -175
  35. {byteit-1.1.2 → byteit-1.2.0}/byteit/validations.py +49 -42
  36. byteit-1.2.0/byteit.egg-info/PKG-INFO +367 -0
  37. {byteit-1.1.2 → byteit-1.2.0}/byteit.egg-info/SOURCES.txt +8 -0
  38. {byteit-1.1.2 → byteit-1.2.0}/pyproject.toml +76 -76
  39. {byteit-1.1.2 → byteit-1.2.0}/setup.cfg +4 -4
  40. {byteit-1.1.2 → byteit-1.2.0}/setup.py +8 -8
  41. {byteit-1.1.2 → byteit-1.2.0}/tests/__init__.py +1 -1
  42. {byteit-1.1.2 → byteit-1.2.0}/tests/test_client.py +1659 -1186
  43. {byteit-1.1.2 → byteit-1.2.0}/tests/test_connectors.py +129 -129
  44. {byteit-1.1.2 → byteit-1.2.0}/tests/test_exceptions.py +120 -115
  45. {byteit-1.1.2 → byteit-1.2.0}/tests/test_integration.py +97 -97
  46. {byteit-1.1.2 → byteit-1.2.0}/tests/test_models.py +258 -190
  47. {byteit-1.1.2 → byteit-1.2.0}/tests/test_package_init.py +75 -69
  48. {byteit-1.1.2 → byteit-1.2.0}/tests/test_progress.py +140 -140
  49. byteit-1.1.2/PKG-INFO +0 -201
  50. byteit-1.1.2/README.md +0 -163
  51. byteit-1.1.2/byteit/ByteITClient.py +0 -868
  52. byteit-1.1.2/byteit.egg-info/PKG-INFO +0 -201
  53. {byteit-1.1.2 → byteit-1.2.0}/byteit.egg-info/dependency_links.txt +0 -0
  54. {byteit-1.1.2 → byteit-1.2.0}/byteit.egg-info/requires.txt +0 -0
  55. {byteit-1.1.2 → byteit-1.2.0}/byteit.egg-info/top_level.txt +0 -0
@@ -1,115 +1,148 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [1.1.2] - 2026-07-08
11
- - Fixed pruning of title fields in byteit schemas
12
- - Improved error handling for downloading result
13
-
14
- ## [1.1.2] - 2026-06-08
15
- - Improved error handling for downloading result
16
-
17
- ## [1.1.1] - 2026-06-05
18
-
19
- ### Fixed
20
- - Restored `result_format` support for synchronous `parse()` so callers can
21
- explicitly choose the returned output format.
22
-
23
-
24
- ## [1.1.0] - 2026-05-06
25
-
26
- ### Breaking Changes
27
- - Renamed parse-job public methods to explicit parse naming:
28
- - `get_jobs()` -> `get_parse_jobs()`
29
- - `get_job_details(job_id)` -> `get_parse_job_details(job_id)`
30
- - `get_job_result(job_id)` -> `get_parse_job_result(job_id)`
31
- - Removed `result_format` parameter from `parse()` and `parse_async()`.
32
- Parse job submission now defaults to JSON internally.
33
-
34
- ### Added
35
- - Structured extraction workflow for completed parse jobs:
36
- - `extract(parse_job_id, schema, output=None, extraction_complexity="medium")`
37
- - `extract_async(parse_job_id, schema, extraction_complexity="medium")`
38
- - `get_extract_jobs()`, `get_extract_job_details(job_id)`,
39
- `get_extract_job_result(job_id)`
40
- - Optional download-time output selection for async parse results via
41
- `get_parse_job_result(job_id, result_format=...)`.
42
- - New extraction domain models and schema support:
43
- - `ExtractJob`, `ExtractJobList`, `ExtractionSchema`
44
- - `ExtractionSchema` export via package `__init__` when available
45
-
46
- ### Changed
47
- - Parse and extract operations now use dedicated endpoints under `/v1/jobs/`:
48
- - parse jobs under `parse-jobs`
49
- - extract jobs under `extract-jobs`
50
- - `get_job_status(job_id)` continues using the generic lightweight status path
51
- while detail and result operations route to parse/extract-specific endpoints.
52
- - `result_format` validation accepts both enum names and backend value tokens
53
- (for example `"excel"` and `"zip"`).
54
- - Dependency set now includes `pydantic` for extraction schema flows.
55
-
56
-
57
- ## [1.0.1] - 2026-04-29
58
-
59
- ### Added
60
- - Local release preflight checks for version consistency, changelog presence, and package integrity.
61
- - Commit-title validation for release commits (`chore(release): X.Y.Z`) through pre-commit hooks.
62
- - Release checklist skill document to standardize pre-commit and pre-publish verification.
63
-
64
-
65
- ## [1.0.0] - 2026-03-25
66
-
67
- ### Added
68
- - `parse_async()` method for non-blocking document submission.
69
- - `_submit_job()` internal helper to eliminate duplication between `parse()` and `parse_async()`.
70
-
71
-
72
- ## [1.0.0] - 2026-03-25
73
-
74
- ### Added
75
- - `parse_async()` method for non-blocking document submission.
76
- - `_submit_job()` internal helper to eliminate duplication between `parse()` and `parse_async()`.
77
-
78
-
79
- ## [0.1.2] - 2026-01-31
80
-
81
- ### Changed
82
- - Processing migrated to top-enhanced production servers, reducing processing time by ~50%.
83
-
84
- - Adaptive polling improved for smoother operation.
85
-
86
- - Progress bar and output display enhanced for notebooks.
87
-
88
- - Increased `DEFAULT_TIMEOUT` from 10 minutes to 30 minutes for large documents
89
-
90
- ## [0.1.1] - 2026-01-24
91
-
92
- ### Changed
93
- - Increased `DEFAULT_TIMEOUT` from 30 seconds to 10 minutes for large documents
94
- - Adaptive polling in `_wait_for_completion`: starts at 2s, increases to max 10s
95
-
96
- ### Added
97
- - Progress logging during document parsing
98
-
99
- ## [0.1.0] - 2026-01-18
100
-
101
- ### Added
102
- - Initial release of the ByteIT Python SDK
103
- - `ByteITClient` for AI-powered document parsing
104
- - Multiple output formats: text, JSON, Markdown, HTML
105
- - Input connectors:
106
- - `LocalFileInputConnector`
107
- - `S3InputConnector`
108
- - Output connector:
109
- - `LocalFileOutputConnector`
110
- - Job management (list jobs, check status, download results)
111
- - Support for PDF, Word, Excel, and other common document formats
112
- - Batch processing support
113
- - Environment variable configuration
114
- - Custom base URL support (testing & staging)
115
- - Python 3.8+ support
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.2.0] - 2026-07-28
11
+
12
+ ### Added
13
+ - Custom processing jobs: `custom_job()`, `custom_job_async()`,
14
+ `get_custom_jobs()`, `get_custom_job_result()` and `CustomJob`, `CustomJobList`
15
+ models.
16
+ - Saved schema management: `save_schema()`, `get_schemas()`, `delete_schema()`
17
+ and `SavedSchema`, `SavedSchemaList` models.
18
+ - `parse_async()` now accepts a list of file paths (`list[str | Path]`) for
19
+ multi-file batch submission with automatic packing and per-file failure
20
+ reporting.
21
+ - `force_image_annotations` option on `ProcessingOptions`.
22
+ - `batch_request_delay` parameter on `ByteITClient` to pace consecutive uploads.
23
+ - `DocumentType` model with `is_supported_extension()` for file-type filtering.
24
+ - Internal modules extracted: `_http.py` (HTTP helpers), `_polling.py` (shared
25
+ adaptive polling), `_rate_limit.py` (rate-limited submitter with backoff).
26
+ - CI: standalone `pytest-unit.yml` workflow; AdolfoBOT failure notification on
27
+ publish.
28
+ - HTTP API examples in `docs/api-curl-typescript-examples.md`.
29
+
30
+ ### Changed
31
+ - CI/CD workflows consolidated to call `scripts/release_preflight.py --ci` for
32
+ all validation, removing inline release checks.
33
+ - Release preflight script refactored with shared helpers and clearer error
34
+ messages.
35
+ - Rate-limit handling and polling logic extracted from `ByteITClient` into
36
+ dedicated modules.
37
+
38
+ ### Fixed
39
+ - `RateLimitError` now carries `retry_after_seconds` attribute from response
40
+ headers.
41
+
42
+ ### Removed
43
+ - `queue_for_batch` parameter from synchronous `parse()` (was async-only).
44
+ - Inline release validation logic from CI/CD workflows.
45
+ - Stale test file `rate_limit_test/run_batch_async_test.py`.
46
+
47
+ ## [1.1.2] - 2026-07-08
48
+ - Fixed pruning of title fields in byteit schemas
49
+ - Improved error handling for downloading result
50
+
51
+ ## [1.1.1] - 2026-06-05
52
+
53
+ ### Fixed
54
+ - Restored `result_format` support for synchronous `parse()` so callers can
55
+ explicitly choose the returned output format.
56
+
57
+ ## [1.1.0] - 2026-05-06
58
+
59
+ ### Breaking Changes
60
+ - Renamed parse-job public methods to explicit parse naming:
61
+ - `get_jobs()` -> `get_parse_jobs()`
62
+ - `get_job_details(job_id)` -> `get_parse_job_details(job_id)`
63
+ - `get_job_result(job_id)` -> `get_parse_job_result(job_id)`
64
+ - Removed `result_format` parameter from `parse()` and `parse_async()`.
65
+ Parse job submission now defaults to JSON internally.
66
+
67
+ ### Added
68
+ - Structured extraction workflow for completed parse jobs:
69
+ - `extract(parse_job_id, schema, output=None, extraction_complexity="medium")`
70
+ - `extract_async(parse_job_id, schema, extraction_complexity="medium")`
71
+ - `get_extract_jobs()`, `get_extract_job_details(job_id)`,
72
+ `get_extract_job_result(job_id)`
73
+ - Optional download-time output selection for async parse results via
74
+ `get_parse_job_result(job_id, result_format=...)`.
75
+ - New extraction domain models and schema support:
76
+ - `ExtractJob`, `ExtractJobList`, `ExtractionSchema`
77
+ - `ExtractionSchema` export via package `__init__` when available
78
+
79
+ ### Changed
80
+ - Parse and extract operations now use dedicated endpoints under `/v1/jobs/`:
81
+ - parse jobs under `parse-jobs`
82
+ - extract jobs under `extract-jobs`
83
+ - `get_job_status(job_id)` continues using the generic lightweight status path
84
+ while detail and result operations route to parse/extract-specific endpoints.
85
+ - `result_format` validation accepts both enum names and backend value tokens
86
+ (for example `"excel"` and `"zip"`).
87
+ - Dependency set now includes `pydantic` for extraction schema flows.
88
+
89
+
90
+ ## [1.0.1] - 2026-04-29
91
+
92
+ ### Added
93
+ - Local release preflight checks for version consistency, changelog presence, and package integrity.
94
+ - Commit-title validation for release commits (`chore(release): X.Y.Z`) through pre-commit hooks.
95
+ - Release checklist skill document to standardize pre-commit and pre-publish verification.
96
+
97
+
98
+ ## [1.0.0] - 2026-03-25
99
+
100
+ ### Added
101
+ - `parse_async()` method for non-blocking document submission.
102
+ - `_submit_job()` internal helper to eliminate duplication between `parse()` and `parse_async()`.
103
+
104
+
105
+ ## [1.0.0] - 2026-03-25
106
+
107
+ ### Added
108
+ - `parse_async()` method for non-blocking document submission.
109
+ - `_submit_job()` internal helper to eliminate duplication between `parse()` and `parse_async()`.
110
+
111
+
112
+ ## [0.1.2] - 2026-01-31
113
+
114
+ ### Changed
115
+ - Processing migrated to top-enhanced production servers, reducing processing time by ~50%.
116
+
117
+ - Adaptive polling improved for smoother operation.
118
+
119
+ - Progress bar and output display enhanced for notebooks.
120
+
121
+ - Increased `DEFAULT_TIMEOUT` from 10 minutes to 30 minutes for large documents
122
+
123
+ ## [0.1.1] - 2026-01-24
124
+
125
+ ### Changed
126
+ - Increased `DEFAULT_TIMEOUT` from 30 seconds to 10 minutes for large documents
127
+ - Adaptive polling in `_wait_for_completion`: starts at 2s, increases to max 10s
128
+
129
+ ### Added
130
+ - Progress logging during document parsing
131
+
132
+ ## [0.1.0] - 2026-01-18
133
+
134
+ ### Added
135
+ - Initial release of the ByteIT Python SDK
136
+ - `ByteITClient` for AI-powered document parsing
137
+ - Multiple output formats: text, JSON, Markdown, HTML
138
+ - Input connectors:
139
+ - `LocalFileInputConnector`
140
+ - `S3InputConnector`
141
+ - Output connector:
142
+ - `LocalFileOutputConnector`
143
+ - Job management (list jobs, check status, download results)
144
+ - Support for PDF, Word, Excel, and other common document formats
145
+ - Batch processing support
146
+ - Environment variable configuration
147
+ - Custom base URL support (testing & staging)
148
+ - Python 3.8+ support