Metadata-Version: 2.4
Name: exdrf-util
Version: 0.1.18
Summary: Utilities for Ex-DRF.
Author-email: Nicu Tofan <nicu.tofan@gmail.com>
License-Expression: MIT
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Development Status :: 3 - Alpha
Classifier: Typing :: Typed
Requires-Python: >=3.12.2
Description-Content-Type: text/markdown
Requires-Dist: exdrf>=0.1.17
Provides-Extra: dev
Requires-Dist: autoflake; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pyproject-flake8; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: openpyxl-stubs; extra == "dev"
Requires-Dist: reportlab-stubs; extra == "dev"

# Utilities for Ex-DRF

**exdrf-util** is a grab bag of **small, optional helpers** built on **exdrf**
types and attrs. It is useful for desktop or back-office scripts that already
depend on **exdrf** and need shared table/export or task scaffolding. It is not
a required dependency for minimal API or ORM-only stacks.

## Contents (high level)

Modules under **`exdrf_util`** include:

- **Tabular export**: turn **openpyxl** cell ranges into **PDF** or **Word**
  documents (`table2pdf`, `table2doc`, `table_writer`, `table2base`) using
  **reportlab** / **python-docx** when those libraries are available in the
  environment.
- **PDF utilities**: merge and manipulate PDFs (`merge_pdfs`), backup rotation
  (`rotate_backups`).
- **Tasks**: attrs-based **`Task`** state machine tied to **`ExFieldBase`** for
  form-like workflows (`task`).
- **Misc**: verbose checking helpers, shared typedefs for translation/context
  protocols.

Runtime **`dependencies`** in `pyproject.toml` list only **exdrf**; features
that import **openpyxl**, **reportlab**, or **docx** expect you to install those
packages next to **exdrf-util** when you use the corresponding modules.

Python **3.12.2+** is required.
