Skip to main content

Utilities for generating technical reports.

Project description

icreports

icreports is a configuration management 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.

Features

The project is based on the Jupyter Book toolchain and formats, providing a wrapper that allows building 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 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

The project is available on PyPi, you can install it with:

pip install icreports

Some features rely on converting images between various formats. For full image format support imagemagick, cairo and a full LaTeX environment are required. On Mac you can install the former with brew, with MacTeX used to install the LaTeX environment.

Using a container

Follow the guide in infra to use a container to build with.

Contact

For further information you can contact james.grogan@ichec.ie. Due to our current Gitlab hosting setup we can't easily accept contributions or defect reports via that platform. We may in future set up a mirror if of interest - please get in touch by email with any defect reports or other feedback in the meantime.

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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

icreports-0.0.13.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icreports-0.0.13-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file icreports-0.0.13.tar.gz.

File metadata

  • Download URL: icreports-0.0.13.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for icreports-0.0.13.tar.gz
Algorithm Hash digest
SHA256 26992b457cdc242ed6ae07925934b92a9d6510a014e372a82567f58b689742d0
MD5 8f6eecfbabab49e41d9a50140b6248ef
BLAKE2b-256 bd5749d4a6b568f2f1382d3808365a78997b11115884ce8c31c6297a73f210fc

See more details on using hashes here.

File details

Details for the file icreports-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: icreports-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for icreports-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 8e3a2083a64644fcdb39c7a82234fac32e32ffa8e7e9ae7d540f288cc2463840
MD5 9dda1956485bd6fbaf1465abe899555b
BLAKE2b-256 bbfe273f21d9fed86e568e5d7e3587a781ce87f065ff9d231f2fc007f0c29f41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page