Metadata-Version: 2.4
Name: icplot
Version: 0.3.3
Summary: Utilities for generating plots and graphics for technical reports.
Author-email: "James Grogan, Irish Centre for High End Computing" <james.grogan@ichec.ie>
Project-URL: Repository, https://git.ichec.ie/performance/toolshed/icplot
Project-URL: Homepage, https://git.ichec.ie/performance/toolshed/icplot
Keywords: Publishing,Technical Reports,Graphics
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: wand
Requires-Dist: matplotlib
Requires-Dist: vtk
Requires-Dist: moviepy
Requires-Dist: scipy
Requires-Dist: iccore==0.2.3
Requires-Dist: graphviz
Requires-Dist: Jinja2
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-sugar; extra == "test"
Requires-Dist: black; extra == "test"
Requires-Dist: isort; extra == "test"
Requires-Dist: mypy; extra == "test"
Requires-Dist: flake8; extra == "test"
Requires-Dist: pylint; extra == "test"
Provides-Extra: cairo
Requires-Dist: pycairo; extra == "cairo"
Requires-Dist: CairoSVG; extra == "cairo"
Dynamic: license-file

# icplot

This is a library used at [The Irish Centre for High End Computing (ICHEC)](https://www.ichec.ie) for generating plots, diagrams and other graphics for technical documents.

# Features #

The project has three primary modules:

`converter`: Converts between image formats, such as pdf, svg and png
`renderer`: Render text based inputs as svg, pdf or png images or videos
`theme`: Generate and apply themes from a design system


## Converter ##

To covert between image formats you can do:

``` shell
icplot convert --source my_image.svg --target my_image.png
```

Supported conversions are:

* svg -> png
* svg -> pdf
* pdf -> png

## Renderer ##

Render a range of text based formats to images or videos. For example,

``` shell
icplot render --file uml_diagram.puml
```

renders the PlantUML file to png and svg. 

Supported render inputs and targets are:

* PlantUml
  * SVG
  * PNG
* Latex/Tikz
  * PDF
  * SVG
  * PNG
* Mermaid
  * SVG
  * PNG
* Custom JSON 
  * Graph
    * Backends:
      * Matplotlib
      * VTK
    * Output formats:
      * SVG
      * PNG
      * MP4
  * Tree
    * Backends:
      * Graphviz
    * Output formats:
      * SVG
      * PNG
  * Gantt
    * Backends:
      * Cairo
      * PgfGantt
    * Output formats:
      * SVG
      * PNG
  * Scene
    * Backends:
      * Cairo
      * VTK
    * Output formats:
      * SVG
      * VTK
      
## Themes ##

The library supports themeing with an Angular Material 3 motivated design system. Plots can be themed by adapting a version of `theme.json` included in this module's source.  Currently Tikz and PlantUML support themeing.
  
# Installation #

The package is available on PyPI. For a minimal installation you can do:

``` shell
pip install icplot
```

For full functionality, particularly conversion of image formats, `imagemagick` and `cairo` are required. On Mac you can install them with:

``` shell
brew install imagemagick cairo
```

# Copyright #

Copyright 2024 Irish Centre for High End Computing

The software in this repository can be used under the conditions of the GPLv3+ license, which is available for reading in the accompanying LICENSE file.

