Metadata-Version: 2.4
Name: fastdicom
Version: 0.1.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Rust
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Summary: High-performance DICOM reader for ML pipelines
Author: fastdicom contributors
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# fastdicom

`fastdicom` is a Rust-backed Python extension module for high-throughput DICOM reads in ML and data processing pipelines.

It is built with PyO3 + maturin and uses `dicom-rs` for metadata parsing and pixel decoding.

## Quickstart

```bash
python3 -m maturin develop
```

```python
import fastdicom

ds = fastdicom.dcmread("study.dcm")

rows = ds.Rows
cols = ds[(0x0028, 0x0011)]
spacing = ds.get("PixelSpacing", None)
ts_uid = ds.file_meta.TransferSyntaxUID
pixels = ds.pixel_array
```

## Implemented API surface

- `fastdicom.dcmread(path, *, stop_before_pixels=False) -> Dataset`
- `Dataset` access patterns:
  - `ds.Rows`
  - `ds[(0x0028, 0x0010)]`
  - `ds["Rows"]`
- Dict-like operations:
  - `get`, `in`, iteration, `keys`, `values`, `items`
- Properties:
  - `pixel_array`
  - `file_meta`
  - `file_path`
- Exception classes:
  - `DicomError`
  - `DicomReadError`
  - `TagNotFoundError`
  - `PixelDataError`
  - `UnsupportedTransferSyntaxError`

## Compatibility notes

- Tag access returns direct values, not pydicom `DataElement` wrappers.
- Date/time VR values remain strings (no automatic datetime conversion).
- `PixelData` is not directly exposed through tag lookup; use `.pixel_array`.

## Explicit non-goals (v1)

- No write/mutation APIs (`save_as`, Dataset mutation)
- No DICOMDIR support
- No file-like object input (path-only read)
- No DIMSE/DICOMweb networking APIs
- No deferred reads / lazy file handles
- No overlay/curve/waveform features

## Development checks

```bash
cargo check
python3 -m maturin develop
pytest -q
```

