> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.emtelligent.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.emtelligent.com/_mcp/server.

# Changelog

All notable changes to the Prep client and associated files will be documented in this file. This client follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html), although version identifiers adhere to standard Python packaging guidelines specified in [PEP 440](https://www.python.org/dev/peps/pep-0440/).

## 1.3.11 (2026-03-18)

### Added

* Added sphinx copy button extension for code blocks.
* Cleaned up formatting errors for some code blocks.
* Improved Jenkins docs build process.

### Fixed

* Fix rst errors.

## 1.3.10 (2026-03-13)

### Fixed

* Pin `emtellisplit-sdk-python` to `1.1.3`.

## 1.3.8 (2026-03-12)

### Fixed

* Fix bugs in Jenkinsfile.

## 1.3.7 (2026-03-12)

### Changed

* Fix bugs in Jenkinsfile.

## 1.3.6 (2026-03-12)

### Changed

* Get split client documentation ready for docs.emtelligent.com

## 1.3.1 (2025-07-02)

### Added

* new subcommand `retry` which takes in a statefile, attempts to retry processing for any jobs that failed in that statefile, using the same processing parameters, and client parameters.

### Changed

* jsonl collector (part of `merge-jsonl` related features) now prepends the job identifier to the collected jsonl file names whilst also semi-preserving the original input object keys (local file path). The format for the jsonl file names in the collected directory is this: `{job_id}\_\_{original_object_key_with_slashes_replaced_by_double_underscore}.jsonl`

## 1.3.0 (2025-06-27)

### Changed

* `nosplit` can now be a string or false. It can not be set false from the csv input format (bulk-process, bulk-process2).

## 1.2.12 (2025-06-24)

### Fixed

* `cancel` subcommand

### Added

* `cancel2` subcommand, which takes in the path to a statefile and cancels all jobs for that statefile

## 1.2.0 (2025-06-02)

### Changed

* client uses some parts of the emtellisplit sdk
* client outputs in tqdm format for progress bars
* client supports temporary cloud credentials
* client generate a file with suffix `.errorlog` when there are any processing related errors. this file contains the object keys and job id's for failed processing jobs.

## 1.1.1 (2025-05-08)

### Changed

* added support for `nosplit` option

## 1.1.0 (2025-04-24)

### Changed

* The `--merge-jsonl` option on processing subcommands will now also create a subdirectory collecting the merged jsonl files, using the original document stem as file name for that processing subcommand invocation, within the specified output directory.

### Added

* Two new subcommands `process2`, `bulk-process2`, that process off of local files (by uploading them to the customer's cloud storage first automatically)

## 1.0.0 (2025-04-23)

### Changed

* The client's username/password authentication route now uses IAM login instead of emtellisplit server login. `server_url` has been removed to `emtellisplit_url`. `iam_url` is now a required field when using this authentication.

### Added

* configuration file supports two new server authentication parameters: `api_key`, `profile_role`.

## 0.12.0 (2025-03-10)

### Added

* subcommand `cancel` which cancels a job
* The `process` and `bulk-process` subcommands now take in an additional optional parameter `--state`, which may be the name of a state file to be created. This state file can be used to resume the client's interaction with the server if the client crashes for any reason. If the client encounters any error, a state file will automatically be generated using an appropriate timestamp as the name.
* subcommand `resume` has been added, which takes in the path to a state file and resumes the client's interaction with the server, starting from that state file. `resume` will automatically generate another state file using an appropriate timestamp.

### Removed

* `resume-waiting` has been deleted and replaced with `resume`

### Changed

* Greatly improved client's terminal output when processing. This include seeing if a job is completed/in-progress/queued/failed, as well as the status of the individual subtasks that may compose of a job, along with timing information. Summary of the status of multiple jobs is also included.

## 0.11.0 (2025-02-13)

### Changed

* the input object key to the subcommand `process` is now a comma-separated composite of multiple keys. If there is only 1 entry, it is the document as with the previous iteration of the client. If there are 2nd and 3rd entries, they are expected to be the object keys for the splits json and the best ocr text, respectively. These 2nd and 3rd entries only do something when the operation being used also requires these files as inputs.
* the csv header names of files for the subcommand `bulk-process` have changed: `document` is now the old `object_key`, and `splits_json` is a new field for specifying the object key to a splits json, and `best_ocr` is a new field for specifying the object key to a best ocr text.

## 0.10.0 (2024-12-04)

### Changed

* The client uses a custom session that auto refreshes the login session if it expires

### Added

* subcommand `status` that returns the status JSON for a job id

## 0.9.3 (2024-10-30)

### Changed

* The cloud provider credentials is now in a subobject depending on the cloud provider type, providing more clarity to which credentials are needed for which provider type.

## 0.9.0 (2024-10-10)

### Added

* a `bulk-process` subcommand similar to the `process` command, except only accepting a csv file. The csv file specifies the object keys, and any processing options as csv column names for which to override the values found in the config.

## 0.8.0 (2024-10-01)

### Changed

* new format for configuration that separates the different areas of the config better

## 0.7.0 (2024-09-27)

### Changed

* `--version` flag is now on the base emtellisplit client instead of the subcommands
* fix bug where some prints were not in the logfile
* `check-credentials` subcommand also checks API server login now
* removed `adapter` from config, now its part of `server_url`