Metadata-Version: 2.4
Name: cfin-merge-sort
Version: 0.4.0
Summary: Pure Python external merge sort implementation
Author-email: Chris Finan <c.finan@ucl.ac.uk>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://cfinan.gitlab.io/merge-sort
Project-URL: Repository, https://gitlab.com/cfinan/merge-sort
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: <3.14,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: sortedcontainers
Requires-Dist: stdopen
Requires-Dist: cfin-pyaddons
Provides-Extra: isal
Requires-Dist: isal; extra == "isal"
Provides-Extra: zstd
Requires-Dist: zstandard; extra == "zstd"
Provides-Extra: lz4
Requires-Dist: lz4; extra == "lz4"
Provides-Extra: compression
Requires-Dist: isal; extra == "compression"
Requires-Dist: zstandard; extra == "compression"
Requires-Dist: lz4; extra == "compression"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-dependency; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: bump2version; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# merge-sort

__version__: `0.4.0`

`merge-sort` is a pure Python external merge sort implementation. It sorts
large iterables by writing sorted compressed chunks to disk, then lazily merging
those chunks with `heapq.merge`.

Full documentation is available at <https://cfinan.gitlab.io/merge-sort/>.

## Install

```bash
pip install cfin-merge-sort
```

Optional faster intermediate compression codecs:

```bash
pip install "cfin-merge-sort[compression]"
```

## Quick example

```python
import merge_sort

rows = ["gamma\n", "alpha\n", "beta\n"]
sorted_rows = list(merge_sort.sorted(rows))
```

## Development

```bash
python -m pip install -e .
python -m pytest
```
