Logging

class graphbook.logger.CallableNode(ref: DAGNodeRef, log_every: int = 1)
class graphbook.logger.DAGLogger(name: str | None = None, log_dir: str | None = 'logs')

Logs images in a directed acyclic graph (DAG) to a pyarrow format which can be read by Graphbook.

node(name: str, doc: str = '', *back_refs: List[DAGNodeRef]) DAGNodeRef

Creates a node in the DAG ready for logging

Parameters:
  • name – Name of the node

  • doc – Documentation or any description of the node

  • back_refs – List of references that are dependencies of this node

Returns:

Reference to the node

Return type:

DAGNodeRef

class graphbook.logger.DAGNodeRef(id: str, name: str, doc: str, filepath: Path, lock, *back_refs: List[DAGNodeRef])

Reference to a DAG node capable of logging images.

Parameters:
  • id – Unique identifier for the node

  • name – Name of the node

  • doc – Documentation or any description of the node

  • filepath – Path to the log file

  • lock – Lock to synchronize access to the log file

  • back_refs – List of references that are dependencies of this node

log(pil_or_tensor: Image | Tensor)

Logs an image to the DAG.

Parameters:

pil_or_tensor – PIL Image or Tensor to log

exception graphbook.logger.InvalidFileFormatError
class graphbook.logger.LogFileHandler(handler: callable, on_delete: callable)
on_created(event: FileSystemEvent)

Called when a file or directory is created.

Parameters:

event (DirCreatedEvent or FileCreatedEvent) – Event representing file/directory creation.

on_deleted(event)

Called when a file or directory is deleted.

Parameters:

event (DirDeletedEvent or FileDeletedEvent) – Event representing file/directory deletion.

on_modified(event)

Called when a file or directory is modified.

Parameters:

event (DirModifiedEvent or FileModifiedEvent) – Event representing file/directory modification.

on_moved(event)

Called when a file or a directory is moved or renamed.

Parameters:

event (DirMovedEvent or FileMovedEvent) – Event representing file/directory movement.

exception graphbook.logger.StreamUnreadyError
class graphbook.logger.TransformsLogger(name: str | None = None, log_dir: str | None = 'logs', log_every: int = 1)

A DAG logger designed specifically to log the image outputs from torchvision transforms.

Parameters:
  • name – Name of the DAG. Will randomly generate an ID if not provided

  • log_dir – Directory to store the log files. Defaults to logs/

  • log_every – Log every nth transform. Defaults to 1 (log every time).

Example

from torchvision import transforms as T
import torch
from PIL import Image
import graphbook as gb

l = gb.TransformsLogger()
transforms = T.Compose([
    T.ToTensor(),
    T.CenterCrop(600),
    T.Grayscale(),
    T.RandomHorizontalFlip(p=1),
])
transforms = l.log(transforms)

img_path = "<YOUR_IMAGE_PATH>"
img = Image.open(img_path)
img = transforms(img)
log(transform: Transform | Compose | Compose)

Sets up the transforms to log the image outputs.

Parameters:

transform – A torchvision transform or a sequence of transforms