Metadata-Version: 2.4
Name: docma
Version: 2.2.0
Summary: Document manufacturer
Home-page: https://github.com/jin-gizmo/docma
Author: Murray Andrews
License: BSD-3-Clause
Platform: macOS
Platform: Linux
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Documentation
Classifier: Topic :: Text Processing
Requires-Python: >=3.11.0
Description-Content-Type: text/markdown
License-File: LICENCE.txt
Requires-Dist: altair
Requires-Dist: babel
Requires-Dist: beautifulsoup4
Requires-Dist: boto3
Requires-Dist: cachetools
Requires-Dist: colorama
Requires-Dist: cookiecutter
Requires-Dist: duckdb
Requires-Dist: jinja2
Requires-Dist: jsonschema[format-nongpl]
Requires-Dist: markdown
Requires-Dist: pg8000
Requires-Dist: phonenumbers
Requires-Dist: pillow
Requires-Dist: pydantic
Requires-Dist: pypdf
Requires-Dist: python-dotenv
Requires-Dist: pyyaml
Requires-Dist: qrcode[pil]
Requires-Dist: referencing
Requires-Dist: requests
Requires-Dist: tqdm
Requires-Dist: vl-convert-python
Requires-Dist: weasyprint
Provides-Extra: all
Requires-Dist: duckdb; extra == "all"
Requires-Dist: jinlava>=8.0.0; extra == "all"
Provides-Extra: duckdb
Requires-Dist: duckdb; extra == "duckdb"
Provides-Extra: lava
Requires-Dist: jinlava>=8.0.0; extra == "lava"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary


# Docma -- Document Manufacturing for Fun and Profit

**Docma** is a document generator that can assemble and compose PDF and HTML
documents from document templates with dynamic, data driven content.

[![PyPI version](https://img.shields.io/pypi/v/docma)](https://pypi.org/project/docma/)
[![Python versions](https://img.shields.io/pypi/pyversions/docma)](https://pypi.org/project/docma/)
![PyPI - Format](https://img.shields.io/pypi/format/docma)
[![GitHub License](https://img.shields.io/github/license/jin-gizmo/docma)](https://github.com/jin-gizmo/docma/blob/master/LICENCE.txt)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

## Genesis

**Docma** was developed at [Origin Energy](https://www.originenergy.com.au)
as part of the *Jindabyne* initiative. While not part of our core IP, it proved
valuable internally, and we're sharing it in the hope it's useful to others.

Kudos to Origin for fostering a culture that empowers its people
to build complex technology solutions in-house.

[![Jin Gizmo Home](https://img.shields.io/badge/Jin_Gizmo_Home-d30000?logo=GitHub&color=d30000)](https://jin-gizmo.github.io)

## Features

**Docma** features include:

*   Document content can be defined in any combination of HTML and PDF.

*   Content can also be defined in other formats that are compiled to HTML
    (e.g. Markdown, CSV).

*   Dynamic content preparation (conditionals, loops, transformation etc.) based
    on structured data parameters fed to the rendering process at run-time.

*   Composition of multiple source documents into a single output document.

*   Conditional inclusion of component documents based on parameter based 
    conditions evaluated at run-time.

*   Deep schema validation of structured data parameters at run-time.

*   Watermarking / stamping of PDF output.

*   Support for charts via the Vega-lite specification with multiple data
    sources, including live database connections.

*   Readily extensible to add new data sources and content types.

## Installation and Usage

See the [user guide](https://jin-gizmo.github.io/docma/) for details.
