Skip to main content

icreports

icreports is a tool for generating e-books and technical documents. It is used at the Irish Centre for High End Computing (ICHEC) to build the ICHEC handbook and others.

Features

The project is a Jupyter Book wrapper that can build multiple configurations of a book based on tags in document frontmatter, allowing the concept of 'public', 'private' or 'draft' versions.

In particular, it allows:

  • Rendering of different book versions (e.g. public, private, draft) based on document frontmatter tags
  • Automatic conversion of image formats (including TIKZ and mermaid) to best suit the output format (web, PDF etc).
  • Named build configurations specified in YAML, allowing rendering of multiple versions in the same build job.
  • Book version numbering

Usage

Assuming a repository has been set up for a standard Jupyter Book build, to use icreports you can add some additional build configurations to the existing _config.yml under an icreports key, for example:

title: Mock Book
author: Mock Book Author
exclude_patterns: [/src/media, infra/, infra/README.md, _build, .venv]
only_build_toc_files: true
sphinx:
  config:
    myst_heading_anchors: 3
latex:
  latex_documents:
     targetname: book.tex
icreports:
  project_name: mock_book
  version: 0.0.0
  builds:
    - name: "internal"
      outputs:
        - "pdf"
        - "html"
        - "src"
    - name: "public"
      outputs:
        - "pdf"
        - "html"
        - "src"
      include_tags:
        - "public"

here the book is given a version and two builds 'internal' and 'public' are specified. The public build will only include documents that have the tag 'public' in their frontmatter, through the use of the 'include_tags' attribute. All supported output formats 'pdf', 'html' and 'src' (just copy all sources) are requested in this case. This will lead to four invocations of Jupyter Book (and two custom copy operations for 'src').

To do the builds run:

icreports book --source_dir $SOURCE_DIR 

where SOURCE_DIR is the location of the book sources.

Installation

If you are only using this project to build books, the container approach is strongly recommended due to complex runtime dependencies. You can follow the container guide in infra.

If you want a full native version, you first need to install the project dependencies. First, imagemagick and cairo for image format conversion:

brew install imagemagick cairo

Next, a full Latex environment, on Mac you can use MacTeX

Finally you need a working version of the Mermaid CLI.

After installing dependencies you can install the project with:

pip install icreports

Contact

For further information you can contact james.grogan@ichec.ie.

Copyright

Copyright 2025 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.

If you are an ICHEC collaborator or National Service user and hope to use this library under different terms please get in touch.

Release files for icreports 0.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for icreports 0.0.16
File Size Uploaded
icreports-0.0.16.tar.gz 29.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for icreports 0.0.16
File Interpreter ABI Platform
icreports-0.0.16-py3-none-any.whl Python 3 none any Details

Total release size: 61.6 kB

Release files / icreports-0.0.16.tar.gz

Download URL icreports-0.0.16.tar.gz
Size 29.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6ae9612cf92f0a52f5430cafb2820c388a7b5b4b7e80a4de8283bb42e59d0c97
BLAKE2b-256 checksum
How to use checksums
48c5953e71af25530f729bc9bdcfcae844f4a1cb7fdd6cdc4a2966871d4cb63c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / icreports-0.0.16-py3-none-any.whl

Download URL icreports-0.0.16-py3-none-any.whl
Size 32.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58223d5da2cae119046648ede6d7d3e21e6fe28ec37660abb4feccd61b679ffa
BLAKE2b-256 checksum
How to use checksums
4ec0252929596ed3c3515781aef07bf5e7b1c2c90906d92d903dec1b5539e21c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.0.16 This release

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page