Source: http://www.poma-ai.com/docs/sdk/migration/poma-to-primecut

# Migrate from Poma to PrimeCut

> `Poma` is deprecated and will be removed in a future SDK version. Use `PrimeCut` for all new code.

The migration is mostly a method rename plus a return-type improvement.

## Method mapping

| Legacy `Poma` | Recommended `PrimeCut` |
| --- | --- |
| `Poma.start_chunk_file(...)` | `PrimeCut.submit(...)` |
| `Poma.get_chunk_result(...)` | `PrimeCut.collect(...)` |
| `Poma.unpack_poma_archive(...)` | `unpack(...)` or `PomaArchive.unpack()` |
| `Poma.extract_chunks_and_chunksets_from_poma_archive(...)` | `unpack(...)` or `PomaArchive.unpack()` |
| `Poma.create_cheatsheet(...)` | `generate_cheatsheets(...)[0]["content"]` |
| `Poma.create_cheatsheets(...)` | `generate_cheatsheets(...)` |

## Before

```python
from poma import Poma

client = Poma()
job = client.start_chunk_file("example.pdf")
result = client.get_chunk_result(job["job_id"], show_progress=True)
```

## After

```python
from poma import PrimeCut

client = PrimeCut()
job_id = client.submit("example.pdf")
result = client.collect(job_id, show_progress=True)
```

## Main behavior change

`Poma.get_chunk_result(...)` returns dictionaries that contain chunk and chunkset data.

`PrimeCut.collect(...)` and `PrimeCut.ingest(...)` return typed objects through `PomaResult`.

`PrimeCut.collect(...)` also prefers SSE status streaming before falling back to polling.